x86 asm更改char数组值

时间:2013-04-10 09:54:53

标签: arrays assembly x86

我有一个这样的数组:

msg_values db "a=   b=   "

我需要插入char,在'a ='之后说'5'得到:

"a=5  b=   "

有人可以举例说明怎么做? 非常感谢你。

2 个答案:

答案 0 :(得分:0)

为此(在NASM语法中):

mov [msg_values+2], byte '5'

其他一些汇编程序需要byte ptr而不是byte

答案 1 :(得分:0)

写入数组的地址,偏移要更改的元素的索引。确切的语法取决于您使用的汇编程序。例如,它可能是:

mov byte ptr [msg_values+2], '5'

或只是

mov byte [msg_values+2], '5'

您也可以将地址加载到寄存器中并使用寄存器间接寻址:

lea esi, [msg_values]
mov byte ptr [esi+2], '5'