程序收到信号SIGSEGV,分段错误。
我正在使用此汇编程序: 并且由于某种原因我遇到了分段错误,这与堆栈有关吗?该程序甚至应该输出什么?有人告诉我运行它,看看它有什么想法? 我以为这是有问题的,并为此发表了文章,但这不是问题,我尝试使用GDB对其进行调试,但这并没有真正的帮助。如果您能告诉我它输出什么,可能会更好,这就是我真正想要的
.code32
.intel_syntax noprefix
.global _start
_start:
mov eax, 0x04
push eax
mov eax, 0x2d
push eax
call asm2
asm2:
push ebp
mov ebp, esp
sub esp, 0x10
mov eax, DWORD PTR [ebp + 0xc] --- seg fault here
mov DWORD PTR [ebp-0x4], eax
mov eax, DWORD PTR[ebp+0x8]
mov DWORD PTR [ebp-0x8], eax
jmp part_b
part_a:
add DWORD PTR [ebp - 0x4], 0x1
add DWORD PTR [ebp + 0x8], 0x64
part_b:
cmp DWORD PTR [ebp+0x8], 0x1d89
jle part_a
mov eax, DWORD PTR [ebp-0x4]
mov esp, ebp
pop ebp
ret