汇编语言(二)之数值求和
输入一串数字,求和
运行结果:
程序代码:
datas segment
x db ?
y db ?
z db ?
xInputPrompt db 'Enter a number x=$'
yInputPrompt db 0dh,0ah,'Enter a number y=$'
zOutputPrompt db 0dh,0ah,'sum x+y=$'
datas ends
stacks segment
db 100h dup(0)
stacks ends
codes segment
main proc far
assume cs:codes,ds:datas,ss:stacks
start:
push ds
sub ax,ax
push ax
mov ax,datas
mov ds,ax
mov dx,offset xInputPrompt ;输出请求x输入提示
mov ah,9
int 21h
mov ah,1 ;输入数据保存在X中
int 21h
sub al,30h
mov x,al
mov dx,offset yInputPrompt ;输出请求y输入提示
mov ah,9
int 21h
mov ah,1 ;输入数据保存在y中
int 21h
sub al,30h
mov y,al
add al,x
mov z,al
mov dx,offset zOutputPrompt ;输出z提示
mov ah,9
int 21h
;输出z
mov bx,10
mov cx,0
mov al,z
mov ah,0
s: mov dx,0
div bx
add dx,30h
push dx
inc cx
cmp ax,0
jnz s
s1: pop dx
mov ah,2
int 21h
loop s1
ret
main endp
codes ends
end main