gpt4 book ai didi

assembly - x86 部分寄存器使用

转载 作者:行者123 更新时间:2023-12-03 18:31:07 25 4
gpt4 key购买 nike

如果我保存一个值,比如说 10,在 8 位寄存器 DH然后是另一个值 15,位于 8 位寄存器 DL .这会起作用还是它们会相互覆盖,因为它们都是 32 位 EDX登记?

mov $10, %DH
mov $15, %DL
cmp %DL, %DH

jle done

基本上,当我使用 8 位寄存器时,我很困惑它会如何影响 32 位寄存器,反之亦然。
谢谢。

另外,您可以将值 7 保存在 EDX 中吗?和 DHDL仍然有他们自己的值(value)观还是他们现在有 7 个?

最佳答案

DLDX 的最低有效字节, DHDX 的最高有效字节。 DX 反过来是 EDX 的最低有效字。

所以:

MOV EDX,0x12345678
; Now EDX = 0x12345678, DX = 0x5678, DH = 0x56, DL = 0x78

MOV DL,0x01
; Now EDX = 0x12345601, DX = 0x5601, DH = 0x56, DL = 0x01

MOV DH,0x99
; Now EDX = 0x12349901, DX = 0x9901, DH = 0x99, DL = 0x01

MOV DX,0x1020
; Now EDX = 0x12341020, DX = 0x1020, DH = 0x10, DL = 0x20

如您所见,您可以写入 DLDH 而不会相互影响(但您仍然会影响 DXEDX )。

Also, can you save the value 7 in EDX and DH and DL would still have their own values or will they now have 7?



从我上面的例子中可以推断出, DH 的值为 0, DL 的值为 7。

关于assembly - x86 部分寄存器使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21927000/

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