我读完了 PC 汇编语言,我正在研究如何在汇编语言中实现 RC4 加密。我无法理解的是为什么
mov eax, [edx+ecx]
有效但是
mov eax, [edx-ecx]
没有。内联汇编器给我这个错误信息,
non-constant expression in 'second operand'
这是什么意思?提前致谢。
最佳答案
有一个操作码:
mov eax, [edx+ecx]
并且有一个操作码可以从:
mov eax, [edx-CONSTANT]
因为汇编程序使用常规操作码但在汇编期间取反常量:
mov eax, [edx+(-CONSTANT)]
但是没有操作码:
mov eax, [edx-ecx]
所以基本上您是在尝试执行一条不存在的指令。
关于assembly - 不能在寻址方式下减去寄存器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5513513/