我正在开发一个程序,我需要在用户移动时在字符串中的特定位置更改字符,并且我想使用变量来存储用户在字符串中的位置。
在处理程序的其他部分时,我暂时使用下面的代码,其中buffer是我的字符串:
mov eax, buffer
mov byte [eax + 14], '@'
在完成的程序中,我想使用类似的东西:
mov byte [eax + position], '@'
然而,当我使用上面的行,位置设置为14时,我得到一个分段错误。如何使用变量指向字符串中的特定位置?
编辑:位置变量设置如下:
segment .data
position db 14
答案 0 :(得分:0)
好的... [eax + position]是eax加位置地址。你想要[eax + [position]],我们没有这样的指示。做一些像mov ecx,[position]使位置dd不是db!然后[eax + ecx]应该可以工作。