小编kor*_*oma的帖子

无法理解寄存器和变量之间的汇编mov指令

我在Linux 64位上使用NASM汇编程序。我无法理解某些带有变量和寄存器的东西。我创建一个名为“ msg”的变量:

 msg db "hello, world"  
Run Code Online (Sandbox Code Playgroud)

现在,当我想写入标准输出时,我将其移动msgrsi寄存器,但是我不mov按位理解指令……rsi寄存器由64位组成,而msg变量具有12个符号,每个符号8位,这意味着msg变量的大小为12 * 8bit,显然大于64位。

因此,如何使这样的指令成为可能:
mov rsi, msg 而不溢出分配给rsi的内存。

还是rsi寄存器包含字符串的第一个符号的存储位置,并且在写入1个符号后将其更改为下一个符号的存储位置?

抱歉,如果我写的是完全废话,我是组装的新手,我暂时无法掌握它。

string x86 assembly nasm

2
推荐指数
1
解决办法
776
查看次数

标签 统计

assembly ×1

nasm ×1

string ×1

x86 ×1