mov cx,0 ;小寫字母計數器
nextc:
mov ah,1 ;設功能號,接收鍵盤字元,回顯
int 21h ;dos中斷
cmp al,13h ;識別回車,有就退出
je done
cmp al,"a"
jb nextc
cmp al,"z"
ja nextc
inc cx ;找到一個小寫字母
jmp nextc
done:
;以下顯示CX的數值
STD
mov bx,10 ;十進位制
mov di,offset buf+12 ; 要倒序存放
mov al,"$"
STOSB ;置結束符
mov ax,cx ;轉到ax 中
cntdiv:
mov dx,0
div bx ;除以10
xchg dx,ax ;現在餘數在AL中
or al,30h ;變為"0" .. "9"
STOSB ;存一位,DI減1
xchg dx,ax ;商 在 ax中
and ax,ax
jne cntdiv
mov al,0ah ;準備寫入回車,好看些
STOSB
mov al,0dh
mov dx,di
inc dx
mov ah,9
int 21h ;顯示內容:個數
mov ax,4c00h
int 21h ;退出程式
buf db 16 dup(0)
剩下的自己完成,動動手,有好處
cx只能計 65535個數,不要超過它就可以了。
mov cx,0 ;小寫字母計數器
nextc:
mov ah,1 ;設功能號,接收鍵盤字元,回顯
int 21h ;dos中斷
cmp al,13h ;識別回車,有就退出
je done
cmp al,"a"
jb nextc
cmp al,"z"
ja nextc
inc cx ;找到一個小寫字母
jmp nextc
done:
;以下顯示CX的數值
STD
mov bx,10 ;十進位制
mov di,offset buf+12 ; 要倒序存放
mov al,"$"
STOSB ;置結束符
mov ax,cx ;轉到ax 中
cntdiv:
mov dx,0
div bx ;除以10
xchg dx,ax ;現在餘數在AL中
or al,30h ;變為"0" .. "9"
STOSB ;存一位,DI減1
xchg dx,ax ;商 在 ax中
and ax,ax
jne cntdiv
mov al,0ah ;準備寫入回車,好看些
STOSB
mov al,0dh
STOSB
mov dx,di
inc dx
mov ah,9
int 21h ;顯示內容:個數
mov ax,4c00h
int 21h ;退出程式
buf db 16 dup(0)
剩下的自己完成,動動手,有好處
cx只能計 65535個數,不要超過它就可以了。