1. 程式人生 > >3. 定義10個位元組的鍵盤緩衝區,然後鍵盤輸入字元填滿該緩衝區,做如下工作: (1)分別將輸入鍵盤緩衝區的字元按數字,小寫字母,大寫字母,其他字元進行計數; 分別將這些計數值顯示出來。 (2)分別將這

3. 定義10個位元組的鍵盤緩衝區,然後鍵盤輸入字元填滿該緩衝區,做如下工作: (1)分別將輸入鍵盤緩衝區的字元按數字,小寫字母,大寫字母,其他字元進行計數; 分別將這些計數值顯示出來。 (2)分別將這

    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