作业帮 > 综合 > 作业

一位BCD码的运算 把输入的ASCII码转换成相对应的十进制数

来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/19 10:00:55
一位BCD码的运算 把输入的ASCII码转换成相对应的十进制数
把输入的ASCII码转换成相对应的十进制数后 进行算术运算.即:Z=(X+Y)+(X-1)*Y
其中,X和Y市输入的一位数,最后显示Z的值
我们的课后题 可是没什么思路
一位BCD码的运算 把输入的ASCII码转换成相对应的十进制数
调试通过!
DATAS SEGMENT
str1 db 'Input number:$'
str2 db 0dh,0ah,'$'
X db 0
Y db 0
Z db 0
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX

lea dx,str1 ;显示提示
mov ah,9
int 21h

mov ah,1
int 21h

sub al,30h
mov X,al

lea dx,str2 ;回车换行
mov ah,9
int 21h

lea dx,str1 ;显示提示
mov ah,9
int 21h

mov ah,1
int 21h

sub al,30h
mov Y,al

lea dx,str2 ;回车换行
mov ah,9
int 21h

mov dl,X
add dl,Y ;X+Y

mov al,X
dec al

mul Y

add al,dl
mov Z,al ;z=(x-1)*y

mov al,Z
mov ah,0
xor dx,dx
xor cx,cx
s1: ;转换为10进制并输出
mov bl,10
div bl
mov dl,ah
mov ah,0
push dx
inc cx
cmp al,0
jnz s1

s2:
pop dx
add dl,30h
mov ah,2
int 21h
loop s2

mov ah,0
int 16h
MOV AH,4CH
INT 21H
CODES ENDS
END START