我试图从程序集调用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 assembly 80x86编写代码。

最佳答案

你不想推长度字符串,C只是文本的地址,用零字节来标记结尾。
您可以使用gdb找出类似这样的东西崩溃的位置。

07-24 09:44