为什么 rbx 寄存器不影响 al 寄存器的值?
Why does the rbx register not affect the value of the al register?
我正在尝试自学 x86-84 汇编语言编程,并且正在使用名为 "x86-84 Assembly Language Programming with Ubuntu" 的 pdf。有一个部分在谈论扩大转化率,它给出了这个例子:
mov al, 50
mov rbx, 0
mov bl, al
据作者介绍。 64 位 rbx 寄存器现在的值为 50,但指令 "mov rbx, 0" 为何没有将整个寄存器的值设置为 0?
first line: al=50
second line: rbx=0
third line: set the lowest byte of rbx register to 50
result: rbx=50, as well as bx=50 and bl=50
我找到了很好的图片来解释寄存器是如何共享的:
通过更改 ah
或 al
寄存器,您还可以更改 AX、EAX 和 RAX 寄存器
我正在尝试自学 x86-84 汇编语言编程,并且正在使用名为 "x86-84 Assembly Language Programming with Ubuntu" 的 pdf。有一个部分在谈论扩大转化率,它给出了这个例子:
mov al, 50
mov rbx, 0
mov bl, al
据作者介绍。 64 位 rbx 寄存器现在的值为 50,但指令 "mov rbx, 0" 为何没有将整个寄存器的值设置为 0?
first line: al=50
second line: rbx=0
third line: set the lowest byte of rbx register to 50
result: rbx=50, as well as bx=50 and bl=50
我找到了很好的图片来解释寄存器是如何共享的:
通过更改 ah
或 al
寄存器,您还可以更改 AX、EAX 和 RAX 寄存器