匯編程序:統(tǒng)計一個字符串里數(shù)字的個數(shù)(初級版)
sum db 2 dup(?);此處輸入數(shù)據(jù)段代碼
string db 25 dup(?);存放字符
tital db Thisprogramis made by wq. ,0dh,0ah
db PLease input the string: ,$
overs db Amout of the nember is : ,$
DATAS ENDS
STACKS SEGMENT
;此處輸入堆棧段代碼
STACKS ENDS
string db 25 dup(?);存放字符
tital db Thisprogramis made by wq. ,0dh,0ah
db PLease input the string: ,$
overs db Amout of the nember is : ,$
DATAS ENDS
STACKS SEGMENT
;此處輸入堆棧段代碼
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
mov ax,offset tital
mov dx,ax
mov ah,09h
int 21h
mov cl,25
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
dec cl
jnz again
then:
mov ax,offset string
mov dx,ax
mov si,0
mov bl,0
mov cx,6
exchang:
cmp cx,0
jz over
cmp string[si],30h
jnb next
inc si
dec cx
jmp exchang
next:
cmp string[si],39h
jle calculator
inc si
dec cx
jmp exchang
calculator:
inc si
incbl
dec cx
jmp exchang
over:
lea ax,overs
mov dx,ax
mov ah,09h
int 21h
mov ax,offset sum
mov dx,ax
mov sum[0],bl
add sum[0],30h
mov sum[1],$
mov ax,offset sum
mov dx,ax
mov ah,09h
int 21h
MOV AH,4CH
INT 21H
CODES ENDS
END START
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
mov ax,offset tital
mov dx,ax
mov ah,09h
int 21h
mov cl,25
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
dec cl
jnz again
then:
mov ax,offset string
mov dx,ax
mov si,0
mov bl,0
mov cx,6
exchang:
cmp cx,0
jz over
cmp string[si],30h
jnb next
inc si
dec cx
jmp exchang
next:
cmp string[si],39h
jle calculator
inc si
dec cx
jmp exchang
calculator:
inc si
incbl
dec cx
jmp exchang
over:
lea ax,overs
mov dx,ax
mov ah,09h
int 21h
mov ax,offset sum
mov dx,ax
mov sum[0],bl
add sum[0],30h
mov sum[1],$
mov ax,offset sum
mov dx,ax
mov ah,09h
int 21h
MOV AH,4CH
INT 21H
CODES ENDS
END START
這里是本程序的完善版:http://www.51hei.com/mcu/2466.html
本文引用地址:http://m.butianyuan.cn/article/201612/324152.htm
評論