Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
嗨,我有这个数据arr1 WORD 1234h, 0abh, 5678h,我试图将这个数组的最后 2 个元素设置为 0,所以我这样做了mov BYTE PTR edi+2, 0,但是我收到一个错误,说无效使用寄存器,为什么会出现这个错误,我做了同样的事情内存操作数,没有错误
arr1 WORD 1234h, 0abh, 5678h
mov BYTE PTR edi+2, 0
预先感谢
您没有提及您使用的是哪个汇编程序,但根据您对我的使用情况,BYTE PTR我将假设为 TASM 或 MASM。
BYTE PTR
您的数组是一个单词数组,因此要将最后 2 个元素设置为零,您需要写入 2 个单词(或 1 个 dword),而不是像您尝试的那样写入 1 个字节。
这应该可以工作(假设EDI包含 的地址arr1):
EDI
arr1
mov word ptr [edi+2],0 mov word ptr [edi+4],0
或者
mov dword ptr [edi+2],0