2

一些背景信息:我目前正在学习 intel x86 汇编时在保护模式下编写引导加载程序。最终结果将是一个“BootLoader ASCII 蛇”游戏。

我想要做的是将堆栈中的一个值弹出到 AL 寄存器中。这给了我一个错误,因此我假设我必须将一个值弹出到一个 16 位寄存器中。这让我需要将 16 位寄存器中的前 8 位复制到我的 8 位寄存器?

这是我正在使用的指令参考:http: //www.mathemainzel.info/files/x86asmref.html

例如,从链接的参考资料中,我看到了将字节转换为字的说明。所有的转换指令似乎都从一个较低的寄存器转到一个更大的寄存器。

4

1 回答 1

6

实际上AXregister 表示AHALregister 以便AL表示位 0-7 和AH位 8-15。如果你把即。0xef80 到AX那时AH将是 0xef 并且AL将是 0x80。

于 2012-06-29T21:14:54.767 回答