使用变量指向字符串中的特定字符

时间:2013-12-02 04:56:55

标签: variables assembly x86 nasm

我正在开发一个程序,我需要在用户移动时在字符串中的特定位置更改字符,并且我想使用变量来存储用户在字符串中的位置。

在处理程序的其他部分时,我暂时使用下面的代码,其中buffer是我的字符串:

mov eax, buffer
mov byte [eax + 14], '@'

在完成的程序中,我想使用类似的东西:

mov byte [eax + position], '@'

然而,当我使用上面的行,位置设置为14时,我得到一个分段错误。如何使用变量指向字符串中的特定位置?

编辑:位置变量设置如下:

segment .data
position db 14

1 个答案:

答案 0 :(得分:0)

好的... [eax + position]是eax加位置地址。你想要[eax + [position]],我们没有这样的指示。做一些像mov ecx,[position]使位置dd不是db!然后[eax + ecx]应该可以工作。