【发布时间】:2013-11-03 23:42:28
【问题描述】:
我一直在研究x86汇编语言,PUSHA指令出现了一个问题。
据我所知,Pusha 与 PUSH AX、CX、DX、BX、原始 SP、BP、SI 和 DI 相同。
我想知道的是为什么在PUSHA指令中执行PUSH BX之前执行PUSH CX。
硬件架构有什么原因吗?
【问题讨论】:
标签: assembly x86 cpu cpu-registers cpu-architecture
我一直在研究x86汇编语言,PUSHA指令出现了一个问题。
据我所知,Pusha 与 PUSH AX、CX、DX、BX、原始 SP、BP、SI 和 DI 相同。
我想知道的是为什么在PUSHA指令中执行PUSH BX之前执行PUSH CX。
硬件架构有什么原因吗?
【问题讨论】:
标签: assembly x86 cpu cpu-registers cpu-architecture
通用寄存器不按字母顺序排列,字母是单词的缩写:
AX => Accumulator register
BX => Base register
CX => Counter register
DX => Data register
大多数人使用AX、BX、CX、DX,因为它更容易记住,但对于架构,顺序实际上是AX、CX、DX、@987654329 @ 这可以是指令操作码中的通知:
opcode | instruction
--------+------------------
B80000 | MOV AX,0000
B90000 | MOV CX,0000
BA0000 | MOV DX,0000
BB0000 | MOV BX,0000
50 | PUSH AX
51 | PUSH CX
52 | PUSH DX
53 | PUSH BX
【讨论】: