Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 汇编程序。为什么以相反的顺序打印此数据?_Linux_Assembly_X86_X86 64_Nasm - Fatal编程技术网

Linux 汇编程序。为什么以相反的顺序打印此数据?

Linux 汇编程序。为什么以相反的顺序打印此数据?,linux,assembly,x86,x86-64,nasm,Linux,Assembly,X86,X86 64,Nasm,我不熟悉使用汇编语言,我正在做一些实验来学习。我想知道为什么数据是反印的。 我将指出记录和一些其他问题。 我正在64位Intel(i3)和Linux操作系统上组装NASM。提前谢谢 section .bss aux resb 1 ;At this point I don't know why there is no variation if I modify resb by resw or resd for example section .text global CMAIN CMAIN:

我不熟悉使用汇编语言,我正在做一些实验来学习。我想知道为什么数据是反印的。 我将指出记录和一些其他问题。 我正在64位Intel(i3)和Linux操作系统上组装NASM。提前谢谢

section .bss
 aux resb 1 ;At this point I don't know why there is no variation if I modify resb by resw or resd for example
section .text
 global CMAIN
CMAIN:
 xor eax, eax
 mov ah, "h" ; rax = 1101000-00000000
 mov al, "i" ;rax = 1101000-01101001
 mov [aux], ax
 ;print
 mov rax, 1
 mov rdi, 1
 mov rsi, aux 
 mov rdx, 2
 syscall
 xor rax, rax
 ret

结果是:“ih”,相反。再次感谢。

x86是little endian,请记住,将字节写入stdout将首先显示最低地址。另外,
resb1
只保留1个字节,但内存保护在页面粒度上起作用,并且您不会使用任何后续“变量”,因为没有任何变量。另外,
int 0x80
恰好适用于64位代码而不是
syscall
。感谢您的回答和链接。这种情况是否仅在stdout中发生,或者在其他写调用中也会发生?当然,任何读/写系统调用都会发生。ASCII(和utf-8)基本上是字节流,这意味着按地址递增的顺序查看内存。我提到stdout只是因为那是你在做的我明白。系统解释系统看到的第一件事。非常感谢你所做的一切。如果问题重复,我不在乎是否被删除。系统可能会在几个月后自动删除。但如果它获得了任何支持票(因为它是其他人使用与你相同的术语进行搜索的有用路标),那么它将继续存在。