一些背景信息:我目前正在学习英特尔 x86 汇编时以保护模式编写引导加载程序。最终结果将是一个"BootLoader ASCII snake"游戏。
我想做的是将堆栈中的值弹出到 AL 寄存器中。这给了我一个错误,因此我假设我必须将一个值弹出到 16 位寄存器中。这让我需要将 16 位寄存器中的前 8 位复制到我的 8 位寄存器?
这是我正在使用的说明参考:http://www.mathemainzel.info/files/x86asmref.html
例如,从链接的参考中,我看到了将字节转换为单词的说明。所有的转换指令似乎都从较低的寄存器转到较大的寄存器。
实际上AX
寄存器表示AH
并AL
寄存器,因此AL
表示位 0-7 和AH
位 8-15。如果你把ie。0xef80 AX
,那么AH
将是0xef,AL
将是0x80。