如何从程序集nasm x86 linux 8086调用printf

时间:2013-05-19 15:20:06

标签: linux assembly segmentation-fault printf nasm

我正在尝试从汇编程序中调用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

但我一直在分割错误。

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

1 个答案:

答案 0 :(得分:4)

你不想推长度 - C中的字符串只是文本的地址,用零字节标记结尾。

您可以使用gdb来确定此类内容崩溃的位置。