汇编语言程序员

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处

结束循环

上一篇下一篇

猜你喜欢

热点阅读