|
发表于 2009-12-3 10:14:22
|
显示全部楼层
IP:江苏扬州
DATA SEGMENT
X DB ?
Y DB ?
S DB ?
mess1 db "Input x=(0 quit)","$"
mess3 db 'Input y=','$'
mess2 db 'x+y=','$'
DATA ENDS
stack segment para stack 'stack'
dw 100 dup(?)
stack ends
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:stack
START: MOV AX,DATA
MOV DS,AX
l1: lea dx,mess1
mov ah,9
int 21h
MOV AH,1
INT 21H
cmp al,30h
je l2
MOV X,AL
call cr_lf
lea dx,mess3
mov ah,9
int 21h
MOV AH,1
INT 21H
MOV Y,AL
MOV AL,X
AND AL,0FH
MOV BL,Y
AND BL,0FH
ADD AL,BL
MOV S,AL
call cr_lf
push ax
mov dx,offset mess2
mov ah,9
int 21h
pop ax
call showdec
call cr_lf
jmp l1
l2: MOV AH,4CH
INT 21H
cr_lf proc
push ax
push dx
mov ah,2
mov dl,0ah
int 21h
mov ah,2
mov dl,0dh
int 21h
pop dx
pop ax
ret
cr_lf endp
showdec proc
push di
push bx
mov di,0 ;计数,表示所求的数为几位十进制数
dtoasc: xor ah,ah
mov bl,10
div bl
push ax ;此时ah为个位
inc di
cmp al,0 ;看商是否为0
jz show ;如果是0,结束操作,去显示数据
jmp short dtoasc
show: mov cx,di
pop ax
mov dl,al
or dl,30h
mov ah,02h
int 21h
loop show
pop bx
pop di
ret
showdec endp
CODE ENDS
END START |
|