汇编中变址寻址操作易错点
写在前面
在汇编语言中,针对数组操作,可以使用间接寻址,或者变址寻址。在变址寻址操作时,遇到了一系列问题,遂做总结,避免再犯。
问题描述
有一个带有8个WORD型数据的数组,想要对其偶数项进行求和
间接寻址方法
1 | ; Operators (Operator.asm) |
带比例因子的变址寻址方法
1 | ; Operators (Operator.asm) |
犯的错误
- 在使用寄存器时,没有考虑数据类型为WORD型,应该使用16位寄存器AX,而不是32位的EAX等等寄存器;
- 为什么又使用了EDI,ESI等寄存器?因为在OFFSET指令中,返回的地址一般为32位的,所以用32位的EDI寄存器来存;ESI同理。 这里不能用DI或者SI