Na przykład akumulator ma nazwę EAX
, a wskaźnik instrukcji nosi nazwę IP
. Wiem również, że istnieją bajty o nazwie CL
i DH
. Wiem, że musi być konwencja dla wszystkich imion, ale co to jest?Dlaczego rejestry x86 są takie, jakimi są?
Odpowiedz
C i D to liczby/typy i H dla wysokich i L dla niskich części wyższego rejestru. http://en.wikipedia.org/wiki/X86
Wikipedia wyjaśnia to bardzo dobrze.
Więcej z Wikipedii:
- AX/EAX/RAX: Akumulatory
- BX/EBX/RBX: podstawy
- CX/ECX/RCX: licznik
- DX/EDX/RDX : dane/General
* EAX - Accumulator Register
* EBX - Base Register
* ECX - Counter Register
* EDX - Data Register
* ESI - Source Index
* EDI - Destination Index
* EBP - Base Pointer
* ESP - Stack Pointer
To jest historia. X86 pochodzi z 8086, który pochodzi z 8080, który pochodzi z 8008, który pochodzi z 4004. Było 16-bitowych rejestrów AX, BX, itd., A dla 80386 "rozszerzono" do 32 bitów.
Dodano: BTW, że Motorola 68K ma rejestry 32-bitowe od samego początku, więc programowanie było łatwiejsze przez pierwsze kilka dziesięcioleci. Pracowałem nad projektami, w których Intel został wybrany z powodów biznesowych, a nie technicznych.
Historia ISN 't ciągły - 8080 ma różne nazwy rejestrów i nazwy te pojawiły się w 8086. Warto zauważyć tutaj architekturę CISC, z rejestrami specjalnego przeznaczenia, zarówno w wersjach 8086, jak i 8080 - RISC pojawił się później, wraz z jej " wszystkie rejestry są bardzo podobne do tego samego podejścia (pomogły mu 32 bity na instrukcję, zamiast próbować kodować większość instrukcji na 8 bitów). – ijw
@ijw - ale jest/było 8080 do 8086 tłumaczy i istnieje mapowanie. Rejestr 8080's A stał się rejestrem AL, 8080 w rejestrze B, C - CH, CL. 8080-ta para rejestrów D, E stała się DH, DL. Para rejestrów 8080 H, L stała się BH, BL. 8086 zawiera instrukcje LAHF i SAHF, które pomagają w tłumaczeniu z 8080 na 8086. 8086 dodane rejestry, takie jak SI (indeks źródłowy), DI (indeks docelowy) i BP (wskaźnik bazowy domyślnie rejestrujący segment SS). – rcgldr
starsze procesory mają akumulatory o nazwie A, B itd. (Uporządkowane alfabetycznie). Gdy opracowano akumulatory 16 i 32-bitowe, inżynierowie dodali X (rozszerzony). A więc wszystko to dotyczy historii, ponieważ język C nazywany jest w ten sposób, ponieważ został opracowany z języka B (laboratoria Bella).
Konwencja jest tylko wewnętrzna, aby nadążyć za nazwami, które są im znane.
W rzeczywistości rejestry nie są w porządku alfabetycznym. Rzeczywista kolejność to A, C, D, B –
Kilka dobrych odpowiedzi tutaj: x86 assembly registers — Why do they work the way they do?
- 1. Dlaczego zadania Powershell są takie wolne?
- 2. Listy są takie same, ale nie są uważane za równe?
- 3. Dlaczego właściwości PropertyInfo SetValue i GetValue są takie wolne?
- 4. TSQL - NIEKTÓRE | JAKIEKOLWIEK dlaczego są takie same z różnymi nazwami?
- 5. dlaczego java's BigInteger gcd i modInverse są takie wolne?
- 6. Jakie są wady kierowania JVM zamiast x86?
- 7. Co to są rejestry cienia w MIPS i jak są używane?
- 8. Sprawdź, czy dwa elementy są takie same
- 9. wykryć, czy dwie ścieżki są takie same
- 10. Czy drools są takie same jak jrules?
- 11. Czy CDN i Cloud są takie same?
- 12. Dlaczego cechy są natychmiastowe?
- 13. W jaki sposób rejestry fs/gs są używane w systemie Linux AMD64?
- 14. Dlaczego listy słuchaczy są listami?
- 15. Czy operatory inkrementacji są w trybie atomowym na x86?
- 16. GCC: -static i -pie są niezgodne dla x86?
- 17. Android: Dlaczego Handlery są uruchamiane?
- 18. Dlaczego iteratory nie są kopiowalne?
- 19. Dlaczego standardy często są zamknięte?
- 20. Dlaczego uszczelniane typy są szybsze?
- 21. Dlaczego te szablony są niejednoznaczne?
- 22. Dlaczego maski WebSockets są maskowane?
- 23. Dlaczego zmienne blokowe są opcjonalne?
- 24. Dlaczego odradzane są ramy parasolowe?
- 25. Dlaczego dane wyjściowe są różne?
- 26. Dlaczego parametry "constexpr" są niedozwolone?
- 27. Dlaczego szablony typedef są nielegalne?
- 28. Dlaczego wektory są tak płytkie?
- 29. Dlaczego są `dane (" kendogrid ")` Undefined?
- 30. Scala: Dlaczego aktorzy są lekkością?
Więcej historii i wyjaśnienie: http://www.swansontec.com/sregisters.html – rmmh
@Daniel, Przegapiłeś ESI, EDI, EBP, itp – Pacerier