为什么 x86 汇编程序寄存器以 X H 和 L 命名?
Why are x86 assembler registers named with X H and L?
我正在学习asm,我很好奇为什么寄存器的名称用这些字母指定,因为理解这一点可能有助于我在另一个层面上理解它。 IE。 AL 是最低有效字节,但是 "L" 是什么意思?
图片来源:http://www.cs.virginia.edu/~evans/cs216/guides/x86.html
当开始为“A”(累加器)演变成 16 位时 AX 仍然需要识别 L 低阶 (7-0) 和 H 高阶 (15-8) 位。因此,AL&AH。 low 和 high 的含义已经存在了很长一段时间,所以它被采用可能是因为这个原因,但它也可以很容易地成为 ah = AL = Left 8 bits 和 al = AR = right 8 bits.
然后当你进入 64 位时,这些命名约定基本上是假名,寄存器被标识为 R0 - R15。所以R2B就是CL,R2W就是CX等等。
我正在学习asm,我很好奇为什么寄存器的名称用这些字母指定,因为理解这一点可能有助于我在另一个层面上理解它。 IE。 AL 是最低有效字节,但是 "L" 是什么意思?
图片来源:http://www.cs.virginia.edu/~evans/cs216/guides/x86.html
当开始为“A”(累加器)演变成 16 位时 AX 仍然需要识别 L 低阶 (7-0) 和 H 高阶 (15-8) 位。因此,AL&AH。 low 和 high 的含义已经存在了很长一段时间,所以它被采用可能是因为这个原因,但它也可以很容易地成为 ah = AL = Left 8 bits 和 al = AR = right 8 bits.
然后当你进入 64 位时,这些命名约定基本上是假名,寄存器被标识为 R0 - R15。所以R2B就是CL,R2W就是CX等等。