小编Jan*_*ram的帖子

在汇编中使用 fgets 时出现分段错误错误?

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 个字符的内容。

c x86 assembly glibc

2
推荐指数
1
解决办法
222
查看次数

标签 统计

assembly ×1

c ×1

glibc ×1

x86 ×1