gpt4 book ai didi

linux - NASM中临时变量中值的存储方式

转载 作者:太空宇宙 更新时间:2023-11-04 09:14:27 24 4
gpt4 key购买 nike

我正在使用一个名为“buff”的变量,它在 .bss 部分保留 2 个字节。然后接受用户的输入并将其存储在“buff”中。

用户输入“1”,然后按“Enter”。所以,31H 和“0D”(回车)进入这个变量。但是这个序列是如何出现在“buff”命名的内存位置的。

是 31 0D 还是 0D 31 ?

当我写:mov al, byte[buff]那么 al 里面有什么? 0DH 或 31H

此外,如果我写:mov rsi,[buff]那么 rsi 会指向“0D”还是“31”?

我通过以下方式获取用户的输入:

    mov rax, 0
mov rdi, 0
mov rsi, buff
mov rdx, 2
syscall

最佳答案

linux 读取系统调用将字符按照读取顺序存储在缓冲区中。读取的第一个字符存储在 buffer[0] 中,后续字符存储在连续递增的地址中。

因此,mov al, byte[buff] 将加载读取的第一个字符,在您的示例中为 31h。

关于linux - NASM中临时变量中值的存储方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49823540/

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