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.
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]
当显示时,他们都做同样的事情。你已经看到了。但是它们适合周围代码的方式是真正不同的。
在所有三个中,您都可以增加 SI 以引用相邻数组元素中的所有值。
在 2 和 3 中,您可以在外循环结束时将 BX 碰撞一个固定量以跳转到 2D 数组的下一行。内部循环将 SI 与数组元素(1、2、4 等)的大小相撞,以对当前行执行某些操作。
如果您需要节省空间并拥有一维数组,则 1 会更短。或者也许你没有寄存器,需要 BX 来保存你正在计算的东西,所以你不需要使用 BX。
当逗号右侧有更复杂的部分时,3 很方便。