把输入的ASCII码转换成相对应的十进制数后 进行算术运算。即:Z=(X+Y)+(X-1)*Y
其中,X和Y市输入的一位数,最后显示Z的值
我们的课后题 可是没什么思路 谢谢各位大神了
一位BCD码的运算 把输入的ASCII码转换成相对应的十进制数
答案:1 悬赏:0 手机版
解决时间 2021-03-04 06:56
- 提问者网友:抽煙菂渘情少年
- 2021-03-03 21:53
最佳答案
- 五星知识达人网友:酒者煙囻
- 2021-03-03 23:27
调试通过!
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
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
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯