作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在学习x86汇编语言,PUSHA指令产生了一个问题。
据我所知,Pusha和PUSH AX, CX, DX, BX, original SP, BP, SI, DI一样。
我想知道的是为什么在 PUSHA 指令中执行 PUSH BX 之前执行 PUSH CX。
有没有硬件架构方面的原因?
最佳答案
通用寄存器不按字母顺序排列,字母是单词的缩写:
AX => Accumulator register
BX => Base register
CX => Counter register
DX => Data register
大多数人使用AX
、BX
、CX
、DX
,因为它更容易记住,但对于体系结构,顺序实际上是AX
,CX
,DX
,BX
,这可以是操作码中的注释说明:
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
关于assembly - 为什么在PUSHA指令中执行PUSH BX之前先执行PUSH CX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19579949/
我是一名优秀的程序员,十分优秀!