3种数组索引方法之间有什么区别
mov si, INDEX
mov ax, memory[si]
和
mov bx, offset memory
mov si, INDEX
mov ax, [bx+si]
和
lea bx, memory
mov si, INDEX
mov ax, [bx+si]
答案 0 :(得分:3)
他们都像你一样表现出同样的事情。你见过这个。但他们认为适合代码的方式是真正不同的。
在所有三个中,您可以增加SI以引用相邻数组元素中的所有值。
在2和3中,您可以在外部循环的末尾以固定量撞击BX,以跳转到2D阵列的下一行。内循环通过数组元素(1,2,4等)的大小来碰撞SI,以便对当前行执行某些操作。
如果您需要节省空间并拥有一维数组,则1会更短。或者你可能没有注册,需要BX来保存你正在计算的东西,所以你不需要使用BX。
当你在逗号右边有一个更复杂的部分时,3很方便。