我在Linux 64位上使用NASM汇编程序。我无法理解某些带有变量和寄存器的东西。我创建一个名为“ msg”的变量:
msg db "hello, world"
Run Code Online (Sandbox Code Playgroud)
现在,当我想写入标准输出时,我将其移动msg到rsi寄存器,但是我不mov按位理解指令……rsi寄存器由64位组成,而msg变量具有12个符号,每个符号8位,这意味着msg变量的大小为12 * 8bit,显然大于64位。
因此,如何使这样的指令成为可能:
mov rsi, msg 而不溢出分配给rsi的内存。
还是rsi寄存器包含字符串的第一个符号的存储位置,并且在写入1个符号后将其更改为下一个符号的存储位置?
抱歉,如果我写的是完全废话,我是组装的新手,我暂时无法掌握它。