在汇编语言课程中检测点9.3课后答案补全处是不是错了?
本帖最后由 吹水哥 于 2011-12-13 16:55 编辑以下代码是小甲鱼课后发的解答题,看了觉得有问题。希望鱼油们能带我走出困惑!
assume cs:code
code segment
start:
mov ax,2000h
mov ds,ax
mov bx,0
s:
mov cl,
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:decbx 处了?
鱼油们,求解答!!!!
“loop 标号”相当于
dec cx
if((cx)≠0) jmp short 标号
如果你不inc cx,那可能就要变为-1了,更不可能跳出循环。 zzmatrix 发表于 2011-12-13 16:59 static/image/common/back.gif
“loop 标号”相当于
dec cx
嗯 ,谢谢你啦鱼油,刚发帖你就回复了!明白了 ,非常感谢!!! 已经明白了,自己忽略了loop执行的时候是先 进行cx=cx-1 和判断cx是否为0 !谢谢一楼的鱼油热心解答!
页:
[1]