在汇编中将数组元素设置为零

时间:2013-05-23 06:55:29

标签: arrays assembly x86

嗨我有这个数据arr1 WORD 1234h, 0abh, 5678h,我试图将这个数组的最后2个元素设置为0,所以我做了这个mov BYTE PTR edi+2, 0,但是我得到一个错误,说无效使用寄存器,为什么这个错误出现了,我对内存操作数做了同样的事情并且没有错误

提前谢谢

1 个答案:

答案 0 :(得分:2)

你没有提到你正在使用哪个汇编程序,但根据你对BYTE PTR的使用,我将假设TASM或MASM。

你的数组是一个单词数组,所以要将最后2个元素设置为零,你需要写2个单词(或1个双字),而不是像你想要的那样写1个字节。

这应该有效(假设EDI包含arr1的地址):

mov word ptr [edi+2],0
mov word ptr [edi+4],0

mov dword ptr [edi+2],0