这个:
testl %esi, %esi
jle .L3
movl %esi, %eax
如果testl
对结果进行逻辑与esi
不能永远小于但只能等于,如果esi
是0。这样movl
就无法达到。这是真的,或者我错过了一些东西。
第二步:
f1:
pushq %rbp
movq %rsp, %rbp
testl %esi, %esi
jle .L3
movl %esi, %eax
.L2:
incb (%rdi)
incq %rdi
decq %rax
jne .L2
.L3:
popq %rbp
ret
在假设的 C 语言翻译中,如果.L3
由pop
thenret
和分支组成,是否可以确定函数返回的值?