汇编语言,编写程序统计字母和数字的个数
时间: 2024-02-20 12:01:11 浏览: 24
以下是一个使用 MASM 汇编语言编写的示例程序,可以统计一个字符串中字母和数字的数量:
```
.model small
.stack 100h
.data
str db "Hello123", 0
str_len equ $ - str
letter_cnt dw 0
digit_cnt dw 0
.code
mov ax, @data
mov ds, ax
; 初始化计数器
mov word ptr [letter_cnt], 0
mov word ptr [digit_cnt], 0
; 循环遍历字符串
mov si, offset str
mov cx, str_len
loop_start:
cmp cx, 0
je loop_end
; 如果当前字符是字母
cmp byte ptr [si], 'a'
jl check_digit
cmp byte ptr [si], 'z'
jg check_digit
; 字母计数器加一
inc word ptr [letter_cnt]
jmp next_char
; 如果当前字符是数字
check_digit:
cmp byte ptr [si], '0'
jl next_char
cmp byte ptr [si], '9'
jg next_char
; 数字计数器加一
inc word ptr [digit_cnt]
; 下一个字符
next_char:
inc si
dec cx
jmp loop_start
loop_end:
; 将结果存入 ax 和 bx 寄存器
mov ax, [letter_cnt]
mov bx, [digit_cnt]
; 退出程序
mov ah, 4ch
int 21h
end
```
这个程序使用 letter_cnt 和 digit_cnt 两个计数器分别统计字母和数字的数量。循环遍历字符串中的每个字符,如果当前字符是字母,则字母计数器加一,如果当前字符是数字,则数字计数器加一。最后,字母计数器和数字计数器的值存入 ax 和 bx 寄存器,程序退出。