x86 - 低位和高位寄存器的区别

标签 x86 cpu-architecture cpu-registers

“啊-DH”
高位AH、BH、CH、DH寄存器。
“AL-DL”
低位 AL、BL、CL 和 DL 寄存器。

引用自AMD64第1卷,我也在Intel的程序员手册中看到过。
我不太明白这是什么意思。 它与字节顺序有什么关系吗?由于 amd 和 intel 微处理器都是小端顺序。

可以解释为:
啊: 0 0 0 0 0 0 1 0
从第一位读取,因此返回:2(十进制)
但在
中具有相同的值 AL: 0 0 0 0 0 0 1 0
从末尾读取并返回:64(十进制)

最佳答案

AH 是 AX 的大半部分,AL 是小半部分,B、C 和 D 寄存器也是如此。因为我们直接指定高位或低位,而不是只要求先出现的位,所以字节序并没有真正发挥作用。

         AX = 0x288
 ________|________
/                 \
0000 0010 1000 1000
\_______/ \_______/
 AH=0x2    AL=0x88

关于x86 - 低位和高位寄存器的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42448987/

相关文章:

assembly - 为什么 BIOS 中断 8(计时器)在 qemu-system-x86_64 上不起作用

assembly - 跳入保护模式时出现三重故障

assembly - Qemu 在设置 GDT 时无限重启

ios - 缺少所需的体系结构 x86_64

c++ - "Error: bad register name ` %rax '"在 64 位 Windows 7 上使用 MinGW 编译时

assembly - 哪个 x86 寄存器表示 movsb 指令中的源位置?

assembly - 为什么在xv6中gdtdesc中有sizeof(gdt)-1

operating-system - 父进程在写时复制期间会失去写能力吗?

assembly - 如何在 ARMv7 32 位上将浮点寄存器压入(和弹出)堆栈?