大数据算法,分布式技术,spark技术爱好者
分类: 嵌入式
2013-07-07 00:02:06
1.前面讲过[bx]寻址方式,就是基址寻址方式,因为英文base register(bx)。还有基址变址寻址[bx+idata],也可以表示成[idata+bx]或者idata[bx]或者[bx].idata。其中idata[bx]类似数组的表示。
2.前面说过bx和ax,cx,dx不一样。其实和bx在寻址上功能相同的还有si,di寄存器,这两个寄存器不能分成八位寄存器使用。用bx,si就可以像int i,int j一样在双层 for循环中操作数据了。
基址变址也可以用di,si表示变址。[bx][si],[bx+si]。而[si][bx]也是没有问题的。
如果把idata加上200[bx][si]或者[bx][si].200。
唯一需要注意的是[si][di]是不可以的。没有这样的格式。
3.汇编多重for循环注意事项:
1.cx保存复原,外循环头保存,外循环尾复原
2.初始化。bx,di循环为例,bx外循环,di内循环,di要在外循环内,内循环外初始化初始化,bx最开始初始化。
3.更新bx,di,对比for循环i++或者i+=2。都需要在对应位置更新。
以上3点均对应于for(int i;循环条件;递增i)
for(int j, 循环条件;递增j) 括号中的3个语句。
方便记忆。其中初始化是最容易忘记。循环条件因为只有一个cx控制循环,在循环递归时要保存cx。