匯編:統(tǒng)計(jì)輸入字符串內(nèi)的數(shù)字個(gè)數(shù)(最多三位數(shù)0—256)
;編程從鍵盤讀入不超過(guò)256個(gè)字符的字符串;
;編程統(tǒng)計(jì)其中數(shù)字的個(gè)數(shù),并將結(jié)果在屏幕上輸出。
;經(jīng)進(jìn)一步完善(能輸出三位數(shù)啦)
DATAS SEGMENT
sum db 00h ;累加器
string db 256 dup(0dh);存放字符
tital db This program is made by wq.,0dh,0ah
db It is used to calculater the amout of the number in the string ,0dh,0ah,$
tital1 db PLease input the string: ,$
overs db Amout of the nember is : ,$
tital2 db Do you want to have a try again(if yes,input "y" else "n") : ,0dh,0ah, $
tital3 db Welcome to use this program again,$
kongzi db 0dh,0ah,$
result db 256 dup(?)
DATAS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS
START:
MOV AX,DATAS
MOV DS,AX
mov ax,offset tital;輸出抬頭
mov dx,ax
mov ah,09h
int 21h
main:
lea dx,kongzi
mov ah,09h
int 21h
lea dx,tital1 ;輸出抬頭1
mov ah,09h
int 21h
mov si,0
mov ax,offset string
mov dx,ax
again: ;輸入字符
mov ah,01h
int 21h
cmp al,0dh
jz then
mov string[si],al
inc si
jmp again ;輸入完畢
then: ;傳輸
mov di,0
mov si,0
mov bl,0
exchang: ;判斷字符的性質(zhì)
lea dx,string
cmp string[si],0dh
jz over
cmp string[si],30h
jnb next
inc si
dec cx
jmp exchang
next:
mov al,string[si]
cmp string[si],39h
jbe calculator
inc si
dec cx
jmp exchang
評(píng)論