MOV AX,[SI+DI]格式错误在哪
发布于 2023-05-31 09:30:14
下列指令中格式错误的原因是SI和DI是16位寄存器,不能直接进行指针运算。在移动数据时,需要使用有效地址来计算内存地址。此外,此指令中目的操作数是一个通用寄存器,应该使用`MOV reg,mem`的形式,即将内存中的数据移动到指定的寄存器中。因此,应该像下面这样来写指令:
```
MOV AX, [SI+DI]
```
这样就可以正确地将SI和DI中的值相加,并将结果作为AX指向的内存地址的偏移量,计算出内存地址,将该地址中的数据读取到AX寄存器中。