risposta
Nulla, per quanto ne so. Rappresenta un registro generale.
Il registro AX a 16 bit può essere indirizzato come AH (byte alto) e AL (byte basso).
Il registro EAX è la versione a 32 bit del registro AX. La E sta per esteso.
8080, 8085 e Z80 avevano registri a 8 bit A, B, ecc. L'8086 aveva i registri AX, EX ecc. A 16 bit. L'80386 e sopra ha ottenuto l'EAX.Supponevo che E e X rappresentassero entrambi "estesi", la X per l'estensione a 16 bit e la E per l'estensione a 32 bit. –
@ Jonathan: X potrebbe essere stato ispirato da "esteso" ma non ho ancora trovato quello descritto da nessuna parte. Se non c'è un significato ufficiale per la X, ciò spiegherebbe come potrebbero aggiungere un altro "esteso" senza sentirsi stupidi. Dare il nome al registro "Extended Accumulator eXtended" sembrerebbe una mancanza di immaginazione ... :) – Guffa
un po 'come "C" ha il suo nome - C per Codice. – IAbstract
Come dice Mihai, è solo una convenzione di denominazione.
Tuttavia, dato che "X" è spesso usato per "riempire il tuo valore" ed è comunemente usato dai matematici come il primo nome variabile di scelta nelle equazioni, e che quei registri particolari sono di uso generale (al contrario di dire ESP che è il puntatore di stack esteso (32 bit) o EIP il puntatore di istruzioni esteso) che è forse il motivo per cui viene scelto X invece di dire "B".
allo stesso modo, le variabili tendono a essere nomi, A B C ... ma potrebbe essere la ragione. – thecoshman
Beh, certo, alcune persone scelgono a, b, c, altre per x, y, z ... Sto solo supponendo di essere onesto. –
Una ragione plausibile a cui riesco a pensare è quella di non avere uno stato "normale". Quando si parla di comunicazione seriale in elettronica, se una delle linee di dati può essere qualsiasi cosa, si potrebbe dire che il suo stato è X come non è né/sia/0 o 1.
Si potrebbe suggerire che "X" fosse una scorciatoia per "H o L", poiché AX potrebbe essere interpretato nel senso di "tutti i registri la cui prima lettera è H, e la cui seconda lettera è H o L", ma che non ha nulla da fare con lo stato "normale". – supercat
The X significa coppia, e risale almeno al 8080. Aveva registri a 8 bit B, C, D, E, H, L (tra gli altri) che potevano essere usati anche a coppie (BC, DE e HL). Le coppie BC e DE sono state utilizzate principalmente per l'aritmetica a 16 bit; la coppia HL generalmente conteneva un indirizzo di memoria. Alcuni esempi di utilizzo di X per pair:
LXI D,12ABH ; "load pair immediate"
DCX B ; "decrement pair"
STAX D ; "store A (indirect) at pair"
avanti veloce al 8086. Ha registri AL, AH, BL, BH, CL, CH, DL, DH, che, analogamente a l'8080 può essere utilizzato in coppia: AX, BX, CX, DX.
Come altri hanno sottolineato, la E nei nomi dei registri a 32 bit significa estesa.
Fantastico! Grazie per questo. Stavo solo supponendo che 'E' si ergeva esteso prima del tuo post. – crush
Confermato: il primo processore Intel a supportare queste istruzioni era il 8080. Non torna più indietro di così. L'8008 non supportava registri associati. L'unica mnemonica di istruzioni contenente 'X' sull'8008 erano operazioni XOR. –
Sull'8086, il registro AXE era la combinazione di AH e AL. Allo stesso modo BX era BH e BL, ecc. Sull'80386, anziché combinare registri a 16 bit in registri a 32 bit, Intel aggiunse 16 bit a ciascun registro. Il nome "AL" si riferisce ancora ai bit 0-7 del primo registro con la prima lettera, "AH" ai bit 8-15 e "AX" ai bit 0-15; il nome "EAX" ora si riferisce a tutti i 32 bit del registro.
È interessante notare che molti altri processori a 16 e 32 bit non offrono alcun mezzo equivalente per accedere solo alle parti superiore o inferiore di un registro. I costi di consentire tale accesso, sia nella complessità dell'hardware che nei bit di codifica delle istruzioni, erano significativi e, ai giorni nostri, la possibilità di aggiungere una porzione di 8 bit di un registro a una porzione di 8 bit di un altro registro è lontana meno utile di molti altri usi a cui tale hardware o spazio di codifica delle istruzioni potrebbe essere messo. D'altra parte, ci sono ancora momenti in cui tali abilità possono essere utili quando esistono.
- 1. Perché GCC genera mov% eax,% eax e cosa significa?
- 2. Convert X 86 Assemblea salto Tabella C
- 3. Il binario di codice operativo in assemblea
- 4. Cosa fa il registro PIC (% ebx)?
- 5. Assemblea, ciao domanda mondiale
- 6. Perché entrambi "03 C8" e "01 c1" = aggiungere ECX, eax
- 7. Cosa significa "$ {x %% *}" in sh?
- 8. Qual è% gs in Assemblea
- 9. Cosa significa pix [x, y] in Python
- 10. Cosa significa "{x: Static}" in XAML?
- 11. Che cosa significa (? <= X) in regex?
- 12. Python: cosa significa x in A [1:] significa?
- 13. Cosa significa x [x <2] = 0 in Python?
- 14. Cosa significa: chiave = lambda x: x [1]?
- 15. Che cosa significa x = x (:) significa in MATLAB, dove x è un vettore?
- 16. "globale principale" in Assemblea
- 17. Cosa vuol dire movl $ _start,% eax?
- 18. Linux x86 NASM - Subroutine: stampa un dword da EAX
- 19. Cosa significa _ in Elm?
- 20. Cosa significa "%" in Fortran?
- 21. Che cosa significa l'istruzione "lock" nell'assemblaggio x86?
- 22. Cosa significa || = significa in Ruby?
- 23. cosa significa "@" significa in C#
- 24. Cosa significa/*! */Significa in C#?
- 25. Cosa significa: :: significa in C++?
- 26. Cosa significa = ~ significa in Perl
- 27. Cosa significa "??" significa in C#?
- 28. Cosa significa! */Significa in .gitignore
- 29. Cosa significa MOV EAX, DWORD PTR DS: [ESI] e cosa fa?
- 30. Che cosa significa "x-powered by"?
Correlato: [Quali sono i prefissi E e R per i nomi dei registri Intel a 32 e 64 bit?] (Https://stackoverflow.com/questions/43933379/what-do-the-e -e-r-prefissi-stand-per-in-the-nomi-di-intel-32-bit e 64-bit--R). Chiede anche della parte "X", ma questa domanda ha risposte migliori, quindi non si chiude come un duplicato. –