【发布时间】:2014-05-25 21:57:51
【问题描述】:
我正在编写一个函数来打印我的 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 然后打印的唯一选项吗?
【问题讨论】:
标签: assembly operating-system cpu-registers 16-bit real-mode