9.3监测点疑问
本帖最后由 weixianlang 于 2011-8-12 14:39 编辑题目:补全程序,利用loop指令,实现在内存2000H段中查找第一个值为0的byte,找到后,将它的偏移地址存储在dx中。
assume cs:code
code segment
start:
mov ax,2000h
mov ds,ax
mov bx,0
s:
mov cl,
mov ch,0
inc cx ;此条指令为题目要求补全的指令
;?不懂,如果碰到cx等于0了为什么还要加一
inc bx
loop s
ok:
dec bx
mov dx,bx
mov ax,4c00h
int 21h
code ends
end start
关于这个问题要从loop指令的原来说起哇
指令格式:loop 标号 (cx=cx-1,如果cx不等于0(注意是不等于零),转移到标号处执行)
操作:
1、cx=cx-1
2、如果cx不等于0,跳到标号处。
那 再看这段代码我们 去掉inc cx
s:
mov cl, 当 ds:=0
mov ch,0 此时CX=0
inc bx
loop s 执行到这里cx=cx-1 此时 cx=-1不等于零继续跳到标号处 死循环了。;P
看到这里,我想你应该明白了吧。:lol 有疑问欢迎讨论。
楼主回答的好好啊,赞一个!{:1_1:} 版主回答的好 非常感谢 前几章没注意cx自减 只知道cx代表loop循环次数 :lol
页:
[1]