初学小问题,cx的值如何又变成4的,有程序
问题:把段内每个单词的改为大写字母,下面是正确的程序,只是我不理解,还请大家指点一下,谢谢了
datasg segment
db '1. display '
db '2. brows '
db '3. replace '
db '4. modify '
datasg ends
codesg segment
start:
mov ax,datasg
mov ds,ax
mov sp,16
mov bx,0
mov cx,4
s: ;外循环
mov dx,cx//这个DX的值是一直变动的把,开始等于4,下来等于3,2,1,0
mov si,0
mov cx,4 //就是这句我不明白,一层内循环完了后,CX因该就变成0了,当第2,3,4层外循环到来时候,是哪个语句让它又变成4的呢,
s0: ;内循环
mov al,[bx+si]
and al,11011111b//改写成了大写字母
mov [bx+si],al
inc si
loop s0
add bx,16
mov cx,dx//是这个吗。DX的值不可能一直等于4把
loop s
mov ax,4c00h
int 21h
codesg ends
end start
[此贴子已经被作者于2007-5-22 17:57:30编辑过]