gpt4 book ai didi

linux - 从函数调用 printf 时出现段错误 - 64 位

转载 作者:太空宇宙 更新时间:2023-11-04 12:08:05 25 4
gpt4 key购买 nike

<分区>

当我从函数调用 printf 函数时出现段错误,但从主函数调用时它工作得很好:

代码:

extern  printf

SECTION .data
msg: db "Hello", 0 ; Zero is Null terminator
fmt: db "%lf", 10, 0 ; printf format string follow by a newline(10) and a null terminator(0), "\n",'0'
d1: dq 13.0
d2: dq 15.0
result : dq 0

SECTION .text
global main

main:

push rbp ; Push stack

; mov rdi,fmt ; set the format for print
; mov rsi,msg ; set first parameter
; mov rax,1 ; one floating point
; movq xmm0, [d1]
; call printf

call get_input

pop rbp ; Pop stack
mov rax,0 ; Exit code 0
ret ; Return


get_input:
mov rdi,fmt ; set the format for print
mov rsi,msg ; set first parameter
mov rax,1 ; one floating point
movq xmm0, [d1]
call printf
ret

制作文件:

nasm -g -f elf64 -F dwarf printf.s -o printf.o
gcc -g -Wall -o printf printf.o

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com