Assembly 如何将字符串从寄存器移到内存中

Assembly 如何将字符串从寄存器移到内存中,assembly,x86,cpu-registers,Assembly,X86,Cpu Registers,如何将字符串从寄存器移到内存中 我在寄存器中有一个字符串值“Fred”,我想把它移到内存中。如果我直接移动,它将翻转字节,例如: mov $0x46726564, %eax movl %eax, -4(%rbp) (gdb) >>> x/4c $rbp-4 0x7fffffffe334: 100 'd' 101 'e' 114 'r' 70 'F' 正确的方法是什么?bswap%eax。或者将字节按正确的顺序开始。@Jester感谢您的回复。我明白了,是的,我认为我应该尝试

如何将字符串从寄存器移到内存中

我在寄存器中有一个字符串值“Fred”,我想把它移到内存中。如果我直接移动,它将翻转字节,例如:

mov $0x46726564, %eax
movl %eax, -4(%rbp)

(gdb) >>> x/4c $rbp-4
0x7fffffffe334: 100 'd' 101 'e' 114 'r' 70 'F'

正确的方法是什么?

bswap%eax
。或者将字节按正确的顺序开始。@Jester感谢您的回复。我明白了,是的,我认为我应该尝试移动指针,而不是实际的字符串值,这样就可以解决上述问题。如果你想用方便的多字符即时内存顺序编写代码,请使用更好的汇编程序,例如NASM
mov dword[rbp-4],“Fred”
按源代码顺序将该4字节序列存储到内存中。在GAS中,您可以像
movl$'F'+('r'