1

我正在尝试printf从汇编程序中调用,但未成功,如下所示:

section .rodata
preffix: db "calc >",0
preffix_length: equ $-preffix

section .text
align 16
global main


extern printf

main:
  push preffix
  push preffix_length
  call printf
  ret

但我不断收到分段错误。

我正在为 NASM 程序集 80x86 编写 Linux (ubuntu)。

4

1 回答 1

4

您不想推动长度 - C 中的字符串只是文本的地址,带有一个零字节来标记结束。

你可以用它gdb来找出像这样的东西在哪里崩溃。

于 2013-05-19T15:32:06.400 回答