海柯 发表于 2013-5-12 13:55:05

运用简单指令构造循环

我在在书上见到了两个构造循环的例子,比较经典,给大家看看,都是最基础的指令



mov dx,10h;外层循环次数,也就是2^4次
mov ax,0;这里是想运用“溢出”,来实现;内层循环,也就是2^16次,那么总共就是100000h次,即2^20次,16^5次
S: sub ax,0;这样会导致溢出,会产生借位,CF就会置为1

sbb dx,0;这里只是将dx减去1,也就实现外层循环
cmp ax,0
jne S

cmp dx,0

jne S


;还有就是在栈中构造循环,代码不记得了,思想主要就是:把要循环的部分在段内的偏移表示出来,我们知道一般调用子程序时,都会先将CS 和 IP压入栈中,我们可以在子程序中加入判断,想要循环时,就对栈中的IP加上偏移,那么就会跳到指定循环的地方了。

——————————感觉这两种方法真的比较好,如果不清楚再去看看书!
页: [1]
查看完整版本: 运用简单指令构造循环