在反汇编代码中比较两个零值 - 不必要?

时间:2015-07-27 17:45:00

标签: assembly x86-64 disassembly

反汇编了x86-64可执行文件后,反汇编程序显示了部分可执行文件的以下说明。

xor r14d, r14d                      ; zero r14d
xor ecx, ecx                        ; zero ecx
mov qword [ss:rbp+var_40], rcx      ; move rcx (now zeroed) into var_40

; … additional code that doesn't make any changes to var_40 or r14d …

mov esi, r14d                       ; move r14d into esi
mov rcx, qword [ss:rbp+var_40]      ; move var_40 back into rcx
cmp rsi, rcx                        ; compare rsi and rcx, both zero?

尽管保证它们都是零,但似乎正在比较rsircx。然后代码在比较之后分支。我在思考这个问题时是否正确?如果是这样,为什么会发生这种情况?

0 个答案:

没有答案