一些背景信息: 我正在学习intel x86程序集的同时在保护模式下编写一个bootloader。最终结果将是“BootLoader ASCII蛇”游戏。
我想要做的是将堆栈中的值弹出到AL寄存器中。这给了我一个错误,因此我假设我必须将值弹出到16位寄存器中。这让我需要将16位寄存器中的前8位复制到8位寄存器?
这是我正在使用的指令参考: http://www.mathemainzel.info/files/x86asmref.html
从参考链接我看到例如将字节转换为字的指令。所有转换指令似乎都从较低的寄存器变为较大的寄存器。
答案 0 :(得分:6)
实际上AX
寄存器代表AH
和AL
寄存器,因此AL
代表0-7位和AH
位8-15。如果你把ie。 0xef80到AX
然后AH
将是0xef而AL
将是0x80。