|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
assume cs:codesg
codesg segment
start:
mov ax,2000h
mov ds,ax
mov bx,0
s:
mov cl,[bx] ;cx的低位cl设为bx,
mov ch,0 ;把cx的高位ch设置为0;因为是在2000H中查找字节 字节为8位;
inc cx ;要想使得(cx)=0,进行指令跳转;就要在执行loop s时,(cx)=0;在loop 判断时候,是要进行(cx)=(cx)-1操作,减去1之后再判
断,所以此时的cx应该加1,才可使得(cx)=(cx)-1=0,结束loop去执行ok;(因为loop的语法就是(cx)=0时,什么都不做,程序向下执行,就是去执行 指令 ok)
inc bx
loop s
ok:
dec bx
mov dx,bx
mov ax,4c00h
int 21h
codesg ends
end start
应该输出 :inc cx
(1)因为cx为处的ch为0;cx的cl为bx,
如果bx为0,则cx=0,找到目标值。应该结束。
(2)但是此时程序会继续向下,执行下一行指令,直到loop s;在loop s 执行时候,才会判断 cx是否为0,如果是0,则程序向下执行,去执行ok;
要想使得(cx)=0,进行指令跳转;就要在执行loop s时,(cx)=0;在loop 判断时候,是要减去1之后再判断,所以此时的cx应该加1,才可使得(cx)=(cx)-1=0,结束loop去执行ok
|
|