汇编语言求累加和怎么显示1+2+…+n=sum
时间: 2023-09-13 18:12:44 浏览: 296
您可以使用汇编语言编写一个程序来计算1+2+...+n的累加和,并将其显示在屏幕上。以下是一个简单的示例程序:
```
.model small
.stack 100h
.data
msg db 'Please input a number: $'
res db 10,13,'1+2+...+n = $'
.code
main proc
mov ax, @data
mov ds, ax
mov ah, 9
lea dx, msg
int 21h ; 输出提示信息
; 读取用户输入的数
read_num:
mov ah, 1
int 21h ; 读取一个字符
cmp al, 0dh ; 判断是否回车键
je calc_sum
sub al, '0' ; 将字符转化为数字
cmp al, 0 ; 判断是否为0
jl read_num ; 如果小于0则重新读取
cmp al, 9 ; 判断是否大于9
jg read_num ; 如果大于9则重新读取
mov bl, al ; 将数字存储到bl中
mov ah, 0 ; 读取下一个字符
int 16h ; 等待用户输入
; 计算累加和
calc_sum:
mov cx, 1 ; 计数器从1开始
mov ax, 0 ; 累加和初始化为0
add ax, cx ; 加上第一个数1
inc cx ; 计数器加1
add_num:
add ax, cx ; 累加当前数
cmp cx, bl ; 判断是否达到用户输入的数
jle add_num ; 如果没达到则继续累加
; 输出累加和
print_sum:
mov ah, 9
lea dx, res
int 21h ; 输出提示信息
mov ah, 0 ; 将累加和存储到dx中
mov dx, ax
mov ah, 0 ; 将dx转化为字符串
add dx, 30h
mov cl, 4
loop1:
mov bl, dl
shr bl, cl
and bl, 0fh
add bl, 30h
mov ah, 2
int 21h
dec cl
jns loop1
mov ah, 4ch
int 21h ; 程序结束
main endp
end main
```
这个程序会提示用户输入一个正整数,然后计算1+2+...+n的累加和,并将其以字符串的形式输出到屏幕上。例如,如果用户输入5,则程序输出"1+2+3+4+5 = 15"。
阅读全文