装配中出现分段错误

时间:2018-09-30 00:26:08

标签: linux assembly segmentation-fault intel-syntax

  

程序收到信号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

0 个答案:

没有答案