汇编 loop问题

[复制链接]
查看11 | 回复2 | 2011-6-26 04:10:09 | 显示全部楼层 |阅读模式
assumecs:code
codesegment
        start:movax,2000h
        movds,ax
        movbx,0
        s:movch,0
        movcl,[bx]
        inccx
        incbx
        loops
        ok:decbx
        movdx,bx
        movax,4c00h
        int21h
        codeends
        endstart
-----为什么要inccx,还有就是decbx这个,为什么要-1.不懂..帮忙说下~
回复

使用道具 举报

千问 | 2011-6-26 04:10:09 | 显示全部楼层
跟程序要实现的功能有关吧。我猜程序应该是要找到存储空间中第一个单元为0的单元地址。
movcl,[bx]应该是从BX的地址取数。CX加1表示多执行一次啊,因为LOOP指令要先将CX-1才判断是否为0继续的。要不无法判断BX的准确位置。BX加1应该是向前移动一个单位地址的意思吧,这样下次执行的movcl,[bx]就能找到下一个数了。当找到了的时候。循环停止,此时BX多加了一次,所以要回退。
回复

使用道具 举报

千问 | 2011-6-26 04:10:09 | 显示全部楼层
你也上学么,我一个人没事在宿舍自学。呵呵
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行