assume cs:codes,ds:datas,ss:stacks
;没有任何用的数据
datas segment
db 10H dup (0)
datas ends
;一个普通的栈,貌似也没有用
;调试器显示真正的栈不在这
;我:???
stacks segment
db 10H dup (0)
stacks ends
codes segment
;移动数据进寄存器
mov ax,datas
mov ds,ax
;移动栈进寄存器
mov ax,stacks
mov ss,ax
;结果
mov bx,0H
;父循环循环次数
push 10H
main:
;呼叫子循环
call sub1
;恢复父循环
pop cx
;父循环循环次数-1
mov ax,cx
sub ax,1H
push ax
loop main
;退出
mov ax,4C00H
int 21H
;子循环
sub1:
;子循环循环次数
push 5H
;真正的循环体
sub2:
add bx,1H
;恢复子循环
pop cx
;子循环循环次数-1
mov ax,cx
sub ax,1H
push ax
loop sub2
;不pop掉的话会干扰父循环
pop cx
;返回父循环
ret
codes ends
end
[汇编] 基于栈的嵌套循环
最新推荐文章于 2024-06-06 18:52:05 发布