0

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

预先感谢

4

1 回答 1

2

您没有提及您使用的是哪个汇编程序,但根据您对我的使用情况,BYTE PTR我将假设为 TASM 或 MASM。

您的数组是一个单词数组,因此要将最后 2 个元素设置为零,您需要写入 2 个单词(或 1 个 dword),而不是像您尝试的那样写入 1 个字节。

这应该可以工作(假设EDI包含 的地址arr1):

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

或者

mov dword ptr [edi+2],0
于 2013-05-23T07:01:09.723 回答