gpt4 book ai didi

汇编语言 : 8 bit versions of 64 bit registers?

转载 作者:行者123 更新时间:2023-12-04 10:32:06 32 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





How do AX, AH, AL map onto EAX?

(6 个回答)


去年关闭。




所以,假设我正在使用寄存器 %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 ,因为最低 8 位将被复制两次。

没有第一条指令 movq %rdi, %rax - 将整个寄存器复制到 %rax - 只有最低的 8 位会被替换,并且值 %rax本来是 0xaaaaaaaaaaaaaaff .

关于汇编语言 : 8 bit versions of 64 bit registers?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60367325/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com