无法从其他方法访问堆栈元素 - 程序集

时间:2018-05-22 12:58:08

标签: debugging assembly x86 nasm sasm

我最近在组装(NASM)时搞砸了,我想出了下面的程序,它有两个文件。每个文件的名称和代码是:

  

mainprogram.asm:

%include "hello.asm"

section .data
    message db 'Hello World!', 10, 0

section .text
global _main
_main:
    push message
    call print_message
    ret
  

hello.asm

extern _printf
section .text
global print_message
print_message:
    call _printf
    add esp, 4
    ret

现在,如果我运行此程序,我会收到分段错误。我的问题是:当我们从另一个文件调用方法/例程时,程序有不同的堆栈?因为这是我能想出的唯一结论。我试图通过谷歌找到一个推理,但我找不到任何相关的东西。如果有人可以帮助我,那就太好了。

0 个答案:

没有答案