📄 tj.asm
字号:
data segment
letter db 0 ;字母计数器
digit db 0 ;数字计数器
other db 0 ;其它字符计数器
str db 80 ;缓冲区最大字符数
db ? ;实际输入的字符数
db 80 dup(?) ;从此单元开始接收输入的字符串
data ends
code segment
assume cs:code,ds:data
main:
mov ax,data
mov ds,ax
lea dx,str
mov ah,0ah ;输入字符串至缓冲区
int 21h
lea bx,str+2
mov ch,0
mov cl,[str+1]
s: mov al,[bx]
cmp al,'0' ;当扫描字符为数字时
jb small_ltr
cmp al,'9'
ja small_ltr
inc digit ;是数字时则数字计数器加1
jmp short next ;直接检查下一个字符
small_ltr: ;当扫描字符为小写字母时
cmp al,'a'
jb big_ltr
cmp al,'z'
ja big_ltr
inc letter ;是小写字母时则字母计数器加1
jmp short next ;直接检查下一个字符
big_ltr: ;当扫描字符为大写字母时
cmp al,'A'
jb others
cmp al,'Z'
ja others
inc letter ;是大写字母时也将字母计数器加1
jmp short next ;直接检查下一个字符
others: inc other ;是其它字符时则将其它字符计数器加1
next: inc bx
loop s
mov ah,4ch
int 21h
code ends
end main
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -