Loop指令
2018-08-16 本文已影响3人
柠檬就是酸
首先写好代码,asm文件,debug进行调试:
assume cs:code
code segment
zhaochenyu:mov ax,2
mov cx,11
s:add ax,ax
loop s
mov ax,4c00H
int 21H
code ends
end zhaochenyu
使用单步调试后,分析代码执行情况如下:
(1)执行mov cx,11 设置(cx)=11;
(2)执行add ax,ax(第1次)
(3)执行loop s 将(cx)减1,(cx)=10,(cx)不为0,所以转至s处
(2)执行add ax,ax(第2次)
(3)执行loop s 将(cx)减1,(cx)=9,(cx)不为0,所以转至s处
(2)执行add ax,ax(第3次)
(3)执行loop s 将(cx)减1,(cx)=8,(cx)不为0,所以转至s处
(2)执行add ax,ax(第4次)
(3)执行loop s 将(cx)减1,(cx)=7,(cx)不为0,所以转至s处
(2)执行add ax,ax(第5次)
(3)执行loop s 将(cx)减1,(cx)=6,(cx)不为0,所以转至s处
(2)执行add ax,ax(第6次)
(3)执行loop s 将(cx)减1,(cx)=5,(cx)不为0,所以转至s处
(2)执行add ax,ax(第7次)
(3)执行loop s 将(cx)减1,(cx)=4,(cx)不为0,所以转至s处
(2)执行add ax,ax(第8次)
(3)执行loop s 将(cx)减1,(cx)=3,(cx)不为0,所以转至s处
(2)执行add ax,ax(第9次)
(3)执行loop s 将(cx)减1,(cx)=2,(cx)不为0,所以转至s处
(2)执行add ax,ax(第10次)
(3)执行loop s 将(cx)减1,(cx)=1,(cx)不为0,所以转至s处
(2)执行add ax,ax(第11次)
(3)执行loop s 将(cx)减1,(cx)=0,(cx)不为0,所以转至s处
结束循环