2013-05-19 70 views
1

我想,沒有成功,從一個彙編程序調用printf如下:如何調用匯編NASM 86的Linux的printf 8086

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。

回答

4

您不想推送長度 - C中的字符串只是帶零字節的文本地址以標記結尾。

你可以使用gdb來找出這樣的事情在哪裏崩潰。

+0

謝謝!這很簡單。 – Javi