NASM 中临时变量中值的存储方式
Way of storage of values in temporary variables in NASM
我正在使用一个名为 "buff" 的变量,它在 .bss 部分保留 2 个字节。
然后接受用户的输入并将其存储在 "buff".
中
用户输入“1”然后按下"Enter"。因此,31H 和“0D”(CARRIAGE RETURN) 进入此变量。但是这个序列如何出现在"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。
我正在使用一个名为 "buff" 的变量,它在 .bss 部分保留 2 个字节。 然后接受用户的输入并将其存储在 "buff".
中用户输入“1”然后按下"Enter"。因此,31H 和“0D”(CARRIAGE RETURN) 进入此变量。但是这个序列如何出现在"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。