为什么rbx寄存器不会影响al寄存器的值?

时间:2018-04-21 18:23:33

标签: cpu-registers

我正在尝试教我自己的x86-84汇编语言编程,并且正在使用一个名为" x86-84汇编语言编程的pdf与Ubuntu"。有一部分是在谈论扩大转换,它给出了这个例子:

For i = 0 To ds.Tables(0).Columns.Count - 1
     ds.Tables(0).Rows(i).ItemArray.[Select](Function(x) x.ToString()).ToArray()
Next

据作者说。 64位rbx寄存器现在的值为50,但是为什么指令" mov rbx,0"不将整个寄存器的值设置为0?

1 个答案:

答案 0 :(得分:1)

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

我发现很好的图片解释了如何共享寄存器:

register structure

通过更改ahal个寄存器,您还可以更改AX,EAX和RAX寄存器