所以,假设我正在使用寄存器%rax
和%rdi
。
作为一个基本示例,假设%rax
等效于0xaaaaaaaaaaaaaaaa
,%rdi
等效于0xbbbbccccddddeeff
。
movq %rdi, %rax
这样简单的东西对我来说足够简单。我们只需将%rdi
中的值移动到%rax
中即可。
所以,说我们有以下内容:
movq %rdi, %rax
movb %dil, %al
第一条指令的%rax
等于0xbbbbccccddddeeff
。
但是由于我们使用的是%rax
和%rdi
的8位版本,因此我不确定在执行第二条指令后如何确定%rax
的值。
我对汇编语言非常陌生,我对很多事情感到困惑。我一直在做很多研究和研究,但是我仍然很迷茫,所以我认为在这里提出一个明确的问题将对我有所帮助。任何有关如何解决此问题的解释将不胜感激!
第二条指令movb %dil, %al
仅替换%rax
的最低8位。其余的保持原样。
所以%rax
将是0xbbbbccccddddeeff
。