我想请任何人帮助理解汇编代码。我的问题是:标签 L2 后面的代码很重要,它调用了子程序函数。但在我看来,程序永远不会到达标签 L2 之后的代码,因为根据我的说法,系统调用读取(在 L1 之后)总是读取 0,然后将其与 1 进行比较。但零永远不等于一,所以在我看来程序永远不会跳转到 L2。我想我一定是错的。我真的很感激任何帮助
jmp L1
L2:
movzbl -0x11(%ebp), %eax
movsbl %al, %eax
mov %eax, (%esp)
call SUBROUTINE_FNC
<...>
L1:
mov $0x0, %ebx
lea -0x11(%ebp), %ecx
mov $0x1, %edx
mov $0x3, %eax
int $0x80
mov %eax, -0x10(%ebp)
cmpl $0x1, -0x10(%ebp)
je L2