DATAS SEGMENT
sum db 2 dup(?);此處輸入數據段代碼
string db 25 dup(?);存放字符
tital db 'This program is made by wq. ',0dh,0ah
db 'PLease input the string: ','$'
overs db 'Amout of the nember is : ','$'
DATAS ENDS
STACKS SEGMENT
;此處輸入堆棧段代碼
STACKS ENDS
sum db 2 dup(?);此處輸入數據段代碼
string db 25 dup(?);存放字符
tital db 'This program is 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
inc bl
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
inc bl
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.zg4o1577.cn/mcu/2466.html