【发布时间】:2017-04-22 14:40:52
【问题描述】:
我试图在最后找出这段代码的 RAX 值。
start:
mov $1024, %rax
mov $4096, %rbx
mov $2048, %rcx
xor %rdx, %rdx
sub %rcx, %rbx
cmp %rbx, %rax
jge loopa
jmp loopb
loopa:
cmp $4, %rdx
jg end
inc %rdx
loopb:
xchg %rax, %rbx
idiv %rbx
add %rdx, %rax
imul %rcx
jmp loopa
end:
我所做的是遵循寄存器值,一开始 RAX 定义为 1024,RBX 定义为 4096,RCX 定义为 2048,但随后代码在 RDX 上使用 XOR,然后在 loopa 中进行比较,但我没有似乎不理解 RDX 初始值,因为它没有在代码中的任何地方定义,我错过了什么?
【问题讨论】:
-
xor %rdx, %rdx将寄存器归零