x86 asm将16bit值转换为8bit?

Mic*_*ael 2 x86 assembly

一些背景信息:我正在学习intel x86程序集的同时在保护模式下编写一个bootloader.最终结果将是"BootLoader ASCII蛇"游戏.

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

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

从参考链接我看到例如将字节转换为字的指令.所有转换指令似乎都从较低的寄存器变为较大的寄存器.

Kub*_*tek 6

实际上AX寄存器表示AHAL寄存器,以便AL表示位0-7和AH位8-15.如果你把ie.0xef80 AX然后AH将是0xef并且AL将是0x80.