首页 > 装修问答 > 其它 > 一道汇编程序设计题求解!!?

一道汇编程序设计题求解!!?

浏览次数:2335|时间:2024-05-16

热门回答

2024-05-04L美食诱惑
data segment
Tips db 'Please Input a String: ',0dh,0ah,'$'
Buffer db 82,0,80 dup(0)
Result db 0dh,0ah,' letter='
letter dw 0 ;字母计数器
R2 db ' dight='
dight dw 0 ;数字计数器
R3 db ' other='
other dw 0 ;其它计数器
R4 db 0dh,0ah,'$' ;串结束标记
data ends
code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
lea dx,Tips;提示
mov ah,9
int 21h
lea dx,Buffer;输入源串
mov ah,0ah
int 21h
cld
lea si,Buffer ;指向输入串
add si,2
T0:cmp byte ptr [si],0dh ;从串中找回车结束标记
jz show
_lop:lodsb ;取一字节
cmp al,'0'
jb Q1
cmp al,'9'
ja Q1
inc dight ;数字+1
jmp next
Q1:cmp al,'A'
jb Q2
cmp al,'Z'
ja Q2
inc letter ;字母+1
jmp next
Q2:cmp al,'a'
jb Q3
cmp al,'z'
ja Q3
inc letter ;字母+1
jmp next
Q3:inc other ;其他字符+1
next:jmp T0
show:
mov ax,letter
aam ;二化十
xchg ah,al ;调序
or ax,3030h ;转换成待显示的ASCII码
mov letter,ax ;送入内存
mov ax,dight
aam
xchg ah,al
or ax,3030h ;同上
mov dight,ax
mov ax,other
aam
xchg ah,al
or ax,3030h ;同上
mov other,ax
lea dx,Result ;=mov dx,offset Result
mov ah,9 ;显示统计计数结果
int 21h
;下面这句,方便从资源管理器看
;没这句,屏幕一闪就没了
mov ah,0 ;暂停
int 16h
mov ah,4ch
int 21h
code ends
end start

65