注册 登录
编程论坛 汇编论坛

问个循环和赋值的问题

zengshichun 发布于 2010-09-29 21:50, 567 次点击
start:mov ax,datasg
            mov ds,ax
           mov  bx,0
            mov cx,4
s0: mov ds:【40h】,cx
         mov si,0
         mov cx,3
s:   mov al,【bx+si】
         add al,11011111b
         mov 【bx+si】,al
          inc si
            loop s
          add bx,16
          mov cx,ds:【40h】
          loop s0

刚开始~运行这句的时候~~s0: mov ds:【40h】,cx  是将4赋值到ds:【40h】对吧。
 那么后面mov cx,3。。
问题是再第二次循环的时候。s0: mov ds:【40h】,cx  ,ds:【40h】里面的值是4,还是2(循环第二次3-1等于2)? 为什么啊?
1 回复
#2
bobo21853552010-09-29 22:53
s0: mov ds:[40h],cx  是把CX的值保存在 DS:[40H]这个存储单元里面,然后 MOV CX,3 进入内循环,内循结束之后在把DS:[40H]存储单元的内容4,MOV到CX里面 执行外循环 LOOP S0,MOV DS:[40H],CX,此时CX为3
1