使用8086汇编语言,输入一个不超过30个字符的字符串,将该字符串中的数字进行累加,将累加结果显示输出。
时间: 2023-06-11 19:06:26 浏览: 92
使用汇编语言,输入字符串,统计其总字符数、字母数、数字数、其他数并输出
下面是一个示例程序,可以实现输入一个不超过30个字符的字符串,将该字符串中的数字进行累加,最后将累加结果显示输出。
```
.model small
.stack 100h
.data
msg db 'Please enter a string: $'
input db 30, 0
output db 10, 13, 'The sum of digits is: $'
sum dw 0
.code
main proc
mov ax, @data
mov ds, ax
; 显示提示信息
mov ah, 09h
lea dx, msg
int 21h
; 读取用户输入的字符串
mov ah, 0ah
lea dx, input
int 21h
; 遍历字符串,累加数字
mov cx, [input+1] ; 字符串长度
mov si, offset input+2 ; 第一个字符的地址
repeat:
cmp byte ptr [si], 0 ; 判断是否到达字符串结束符号
je done
mov al, [si]
cmp al, '0'
jb skip
cmp al, '9'
ja skip
sub al, '0'
add sum, ax
skip:
inc si
loop repeat
done:
; 显示累加结果
mov ah, 09h
lea dx, output
int 21h
mov ah, 02h
mov dl, '0'
add dl, byte ptr [sum]
int 21h
mov ah, 02h
mov dl, 10
int 21h
mov ah, 02h
mov dl, 13
int 21h
mov ah, 4ch
int 21h
main endp
end main
```
程序运行时会提示用户输入一个字符串,然后遍历字符串中的每个字符,如果是数字就累加到 `sum` 变量中。最后将累加结果显示出来。注意,这个程序仅仅只能处理不超过30个字符的字符串,如果用户输入的字符串太长,可能会出现错误。
阅读全文