3. 定義10個位元組的鍵盤緩衝區,然後鍵盤輸入字元填滿該緩衝區,做如下工作: (1)分別將輸入鍵盤緩衝區的字元按數字,小寫字母,大寫字母,其他字元進行計數; 分別將這些計數值顯示出來。 (2)分別將這
阿新 • • 發佈:2019-02-14
mov ah,9
int 21h
mov ah,10
lea dx,buf
int 21h
lea dx,srlf
mov ah,9
int 21h
mov bx,-1
mov cx,10
lopt:
add bx,1
mov al,buf[bx]
mov ah,0
cmp ax,30h ;和0的ASCII碼作比較
jz lopint
js lopoth
cmp ax,39h ;和9的ASCII碼作比較
jz lopint
js lopint
cmp ax,41h ;和A的作比較
jz lopcap
js lopoth
cmp ax,5Ah ;和Z作比較
jz lopcap
js lopcap
cmp ax,61h ;和a作比較
jz loplow
js lopoth
cmp ax,7ah ;和Z作比較
jz loplow
js loplow
jmp lopoth
lopint: ;給數字個數加一
add intercounts,1
loop lopt
jmp addcount
loplow: ;給小寫子母個數加1
add lowercasecounts,1
loop lopt
jmp addcount
lopcap: ;給大寫子母個數加一
add capitalcounts,1
add bx,1
loop lopt
jmp addcount
lopoth: ;給其他字元加一
add othercounts,1
loop lopt
jmp addcount
addcount: ;將數都加到字串count的問號位置
mov al,intercounts
mov count[15],al
mov al,lowercasecounts
mov count[33],al
mov al,capitalcounts
mov count[51],al
mov al,othercounts
mov count[66],al
mov dx,offset count
mov ah,09h
int 21h
mov ah,4ch
int 21h
int 21h
mov ah,10
lea dx,buf
int 21h
lea dx,srlf
mov ah,9
int 21h
mov bx,-1
mov cx,10
lopt:
add bx,1
mov al,buf[bx]
mov ah,0
cmp ax,30h ;和0的ASCII碼作比較
jz lopint
js lopoth
cmp ax,39h ;和9的ASCII碼作比較
jz lopint
js lopint
cmp ax,41h ;和A的作比較
jz lopcap
js lopoth
cmp ax,5Ah ;和Z作比較
jz lopcap
js lopcap
cmp ax,61h ;和a作比較
jz loplow
js lopoth
cmp ax,7ah ;和Z作比較
jz loplow
js loplow
jmp lopoth
lopint: ;給數字個數加一
add intercounts,1
loop lopt
jmp addcount
loplow: ;給小寫子母個數加1
add lowercasecounts,1
loop lopt
jmp addcount
lopcap: ;給大寫子母個數加一
add capitalcounts,1
add bx,1
loop lopt
jmp addcount
lopoth: ;給其他字元加一
add othercounts,1
loop lopt
jmp addcount
addcount: ;將數都加到字串count的問號位置
mov al,intercounts
mov count[15],al
mov al,lowercasecounts
mov count[33],al
mov al,capitalcounts
mov count[51],al
mov al,othercounts
mov count[66],al
mov dx,offset count
mov ah,09h
int 21h
mov ah,4ch
int 21h