我正在编写一个函数来打印我的 16 位实模式汇编操作系统中的每个寄存器。我遇到了几个问题:
1 将 16 位寄存器移动到 8 位寄存器
mov al, bx
这给了我error: invalid combinations of opcodes and operands
. 无论如何我可以做到这一点吗?
2 将值移动到ax
影响ah
和/或al
?
mov ah, 0x5
mov al, 0x10
mov ax, 0x20
还会ah
持有 0x5 并al
持有 0x10 吗?
3 打印寄存器的十六进制值而不是ASCII码?
mov ah, 0x0e
mov al, 0x4d
int 0x10
这会输出字符“m”而不是 0x4d 或 77 或 1001101 等。将 4d 转换为 0x34 和 0x64 然后打印的唯一选项是什么?