输入n,计算1到n累加并输出如题,如何将输入数字的字符串转换成数值并计算1+2+3+……+n
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/15 00:11:34
输入n,计算1到n累加并输出如题,如何将输入数字的字符串转换成数值并计算1+2+3+……+n
输入n,计算1到n累加并输出
如题,如何将输入数字的字符串转换成数值
并计算1+2+3+……+n
输入n,计算1到n累加并输出如题,如何将输入数字的字符串转换成数值并计算1+2+3+……+n
data segment
msg db 'input N:$'
data ends
code segment
assume cs:code,ds:data
main proc near
start:
mov ax,data
mov ds,ax
mov dx,offset msg
mov ah,09h
int 21h
call decibin;接收N的子程序
mov cx,bx
mov bx,0
loop1:
add bx,cx;1+2+…N的和存入BX
loop loop1
call crlf
call bini;显示BX中的内容
mov ah,4ch
int 21h
ret
main endp
;------------------------------
decibin proc near;接收N子程序
mov bx,0
newchar:
mov ah,1
int 21h
sub al,30h
jl exit
cmp al,9d
jg exit
cbw
xchg ax,bx
mov cx,10d
mul cx
xchg ax,bx
add bx,ax
jmp newchar
exit:
ret
decibin endp
;------------------------------------
bini proc near;转化为十进制输出子程序
mov cx,10000d
call bin
mov cx,1000d
call bin
mov cx,100d
call bin
mov cx,10d
call bin
mov cx,1d
call bin
ret
bini endp
bin proc near
mov ax,bx
mov dx,0
div cx
mov bx,dx
mov dl,al
add dl,30h
mov ah,02h
int 21h
ret
bin endp
;--------------------------------
crlf proc near;回车换行子程序
mov dl,0dh
mov ah,02h
int 21h
mov dl,0ah
mov ah,02h
int 21h
ret
crlf endp
code ends
end start