鱼C论坛

 找回密码
 立即注册
查看: 3022|回复: 3

在汇编语言课程中检测点9.3课后答案补全处是不是错了?

[复制链接]
发表于 2011-12-13 16:52:16 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 吹水哥 于 2011-12-13 16:55 编辑

以下代码是小甲鱼课后发的解答题,看了觉得有问题。希望鱼油们能带我走出困惑!
assume cs:code
code segment
start:
        mov ax,2000h
        mov ds,ax
        mov bx,0
        s:
                mov cl,[bx]
                mov ch,0
                inc cx    ;此条指令为题目要求补全的指令               
                inc bx
                loop s
        
        ok:
                dec bx
                mov dx,bx
                mov ax,4c00h
                int 21h
code ends
end start

指令loop 不是寄存器cx≠0的时候跳转  cx=0的时候不跳转么?   
如果补全处填的是  inc cx  , 那么就算是找到值为0的字节
经过代码 inc cx 递增后   cx的值为1  这样loop不是又跳回标号 s 处吗?
这样代码不是一直在跳转 永远也执行不到 ok:dec  bx 处了?
鱼油们,求解答!!!!

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-12-13 16:59:33 | 显示全部楼层
“loop 标号”相当于

dec cx

if((cx)≠0) jmp short 标号


如果你不inc cx,那可能就要变为-1了,更不可能跳出循环。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-12-13 17:06:48 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-12-13 17:12:35 | 显示全部楼层
已经明白了,自己忽略了loop执行的时候是先 进行cx=cx-1 和判断cx是否为0 !  谢谢一楼的鱼油热心解答!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-8 14:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表