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