Gdzie mogę znaleźć zestawy instrukcji dla mikroprocesorów Intel lub AMD? [Zamknięte]

0

Przykro mi, jeśli są to głupie pytania lub jeśli nie dotyczą tej witryny. Naprawdę nie wiem, gdzie jeszcze mógłbym o to zapytać.

Po pierwsze, tak naprawdę nie rozumiem, jak działają zestawy instrukcji na mikroprocesorach. Czy są wdrażane za pomocą języka asemblera? Czy Intel używa tych samych zestawów instrukcji dla wszystkich mikroprocesorów w linii procesorów, takich jak Haswell lub Ivy Bridge, czy też każdy konkretny mikroprocesor jest inny? Zawsze myślałem, że mikroarchitektura jest tym samym co zestaw instrukcji, ale najwyraźniej tak nie jest. Czy ktoś może mi to również wyjaśnić? I ostatnia rzecz: czy jest miejsce, w którym można przeglądać zestawy instrukcji mikroprocesorów Intel lub AMD?

Z góry bardzo dziękuję.

Bum Kim
źródło
1
Spodziewam się, że wkrótce zostanie zamknięty ponownie: FAQ. Nie głosuj ode mnie.
Xavierjazz,
Jestem bardzo zdziwiony przyczyną zamknięcia. W tym pytaniu nie widzę nic, co dotyczyłoby „błędów w oprogramowaniu przedpremierowym / wersji beta lub prototypowym sprzęcie”. Lub dowolne z powyższych indywidualnie w tej sprawie.
Jamie Hanrahan

Odpowiedzi:

5

Jeśli potrzebujesz listy instrukcji dla dowolnego procesora, ogólnie potrzebujesz referencji do zestawu instrukcji CPU lub instrukcji dla programistów.

Intel: http://www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html

AMD: http://developer.amd.com/resources/documentation-articles/developer-guides-manuals/ (Podręcznik programisty architektury jest tym, czego chcesz)

Intel ma kilka architektur procesorów, z których x86 jest najbardziej popularny. x86 został (i nadal jest) przedłużany z czasem, generalnie późniejsze wersje są wstecznie kompatybilne z wcześniejszymi wersjami. Na przykład pierwszym procesorem architektury x86 Intela był 8088. Potem wyszedł 80286. Rozszerza zestaw instrukcji 8088. 80286 rozumie cały zespół 8088. I tak dalej w całej 80386, 80486, Pentium, serii Core i serii i.

Zawsze myślałem, że mikroarchitektura jest tym samym co zestaw instrukcji

Nie. Mikroarchitektura znajduje się „pod” i realizuje główną architekturę. W tym przypadku Intel ma wiele mikroarchitektur, które implementują różne wersje instrukcji x86. Mikroarchitektura nie jest czymś, o co musisz się martwić w celu nauki programowania w asemblerze. Musisz wiedzieć, której wersji x86 (lub architektury, a nie mikro architektury) używasz, ponieważ np. Pentium ma instrukcje, których nie mają procesory 80386. Możesz zacząć od książki lub czegoś, co nauczy Cię, jak zaprogramować 8088, ponieważ będzie to prostsze, a późniejsze wersje architektury (286, 386 itd.) Będą na nim bazować.

Po pierwsze, tak naprawdę nie rozumiem, jak działają zestawy instrukcji na mikroprocesorach. Czy są wdrażane za pomocą języka asemblera?

Język asemblera umożliwia programistom pisanie języka maszynowego przy użyciu czegoś przypominającego tekst czytelny dla człowieka i zazwyczaj pozwala na używanie etykiet zamiast zapamiętywania surowych pamięci RAM lub adresów I / O. Alternatywą byłoby ręczne wpisywanie kodów każdej instrukcji, co jest bardzo żmudne, biorąc pod uwagę liczbę instrukcji i trybów adresowania x86.

Każda instrukcja jest reprezentowana przez mnemonik i tłumaczy się na pojedynczą instrukcję języka maszynowego. Assembler weźmie swój kod montażowej (w pliku tekstowym) i montaż (nie skompilować) go do binarnego obrazu, że procesor może działać.

AMD skopiowało zestaw instrukcji Intela, ale zaczęło się różnić od instrukcji SSE, instrukcji VMM i ewentualnie innych rzeczy. Jednak większość wiedzy na temat montażu Intela będzie miała zastosowanie.

LawrenceC
źródło