这个程序全部代码(已修改)如下:
assume cs:code
code segment
start:mov ax,2000h
mov ds,ax
mov bx,0
s:mov cl,[bx]
mov ch,0
inc bx
jcxz ok
loop s
ok:dec bx
mov dx,bx
mov ax,4c00h
int 21h
code ends
end start
1.这个程序中为什么在ok的地方加一句dec bx的呢,程序结束的时候岂不是第一个0单元的上一个单元么?
2.loop的执行过程就是cx自减1,然后判断cx是否为0,如果为0就不跳转,问题就是如果某个单元的值是1的话,这个时候执行到loop s那句的时候,cx就会变成0,然后就不跳转了,就会顺序执行下去了,这个时候得到的bx是第一个单元为1的地址而不是0了也? |