如何获取键盘 ASCII 输入并将其保存到 x86_64 程序集中的 .data 中的值?

How to get keyboard ASCII input and save it to a value in .data in x86_64 Assembly?

正如我的问题所述,如何从键盘输入中获取 ASCII 键码作为整数值,然后我想将该值保存在 .data 内的数据字中,这样我就可以将数据字放入不同的功能。

input:
    ; get ASCII for keyboard input
    ; save ASCII into cha
    push rbp
    mov rdi, cha
    call kernel_input
    pop rbp

section .data
    cha dw 

您应该能够通过调用 x64 的 SYS_READ 系统调用来存储单个字节。这是根据您的示例修改的一些代码。

input:
    ; get ASCII for keyboard input
    ; save ASCII into cha
    push rbp
    mov  rdx, 1             ; max length
    mov  rsi, cha           ; buffer
    mov  rdi, 0             ; stdin
    mov  rax, 0             ; sys_read
    syscall
    pop rbp

section .data
    cha dw 0

我建议查找 system calls in Linux 以了解更多详细信息。