我fgets()在汇编中使用该函数,它应该可以工作,但是我的缓冲区有问题。有没有办法定义一个字符指针?我问是因为该函数需要一个字符指针作为第一个参数。
在这里你可以看到我的代码:
; nasm fgets.asm -f elf64 -o fgets.o
; gcc -no-pie fgets.o
; ./a.out
; Define fgets as an external function
extern fgets
SECTION .DATA
buffer: db "0000000000", 0
SECTION .TEXT
global main
main:
push rbp ; Push stack
; Set up parameters and call the C function
mov rdi, buffer
mov rsi,10
mov rdx, 1
mov rax,0
call fgets
pop rbp ; Pop stack
mov rax,0 ; Exit code 0
ret ; Return
Run Code Online (Sandbox Code Playgroud)
我想从标准输入中读取最多 10 个字符的内容。