以下是给我们的(评论是我自己的):
mov edx, 1 ; moves 1 into edx register
mov eax, 7FFFh ; moves 7FFFh into eax register
cmp eax, 8000h ; compares 8000h to whatever is in the eax register (7FFFh)
jb L1 ; jump to L1 if below (if leftOp < rightOp)
mov edx, 0 ; moves 0 into edx register
L1: ; label
我们被要求在执行此代码后在EDX中给出最终值。现在,对eax的操作是否会影响edx中的值?我不认为他们这样做,而且edx的最终价值是0.我是正确还是?谢谢!
答案 0 :(得分:2)
eax
上的操作不会直接影响edx
的值,但由于它已初始化为1
,因此归零取决于eax
上的操作结果,它间接受到影响。
jb
是一个未签名的操作,按你说的做。请注意,7FFFh
低于8000h
,因此将跳转,从而跳过mov edx, 0
。因此,edx
中的最终值为1
。
您可以运行此代码并亲自查看。