键盘输入两个2位十进制数,以十六进制形式输出两个数的积、商级余数。。 5
键盘输入两个2位十进制数,以十六进制形式输出两个数的积、商级余数。假设、商、余数都位于-2^15~+2^15-1,16位二进制的范围,完成程序设计。...
键盘输入两个2位十进制数,以十六进制形式输出两个数的积、商级余数。假设、商、余数都位于-2^15~+2^15-1,16位二进制的范围,完成程序设计。
展开
1个回答
展开全部
code segment
assume cs:code
main proc far
start:
push ds
sub ax,ax
push ax
mov bx,0
mov dx,0
mov cx,0 ;初始化
mov ah,1
int 21h ;读入第一位
sub al,'0' ;减去30H
mov dl,10
mul dl ;乘以10
mov bl,al ;放到bl中
mov ah,1
int 21h
sub al,'0'
add bl,al ;此时dl中为2进制表示
;以下换行
mov dl,13
mov ah,2
int 21h
mov dl,10
mov ah,2
int 21h
;以下为以16进制形式输出
mov cl,4
rol bl,cl ;左移四位以输出高位的16进制表示
mov dl,bl
and dl,0Fh
add dl,'0'
cmp dl,'9'
jng next1
add dl,7
next1:
mov ah,2
int 21h
rol bl,cl ;再左移四位以输出低位的16进制表示
mov dl,bl
and dl,0Fh
add dl,'0'
cmp dl,'9'
jng next2
add dl,7
next2:
mov ah,2
int 21h
ret
main endp
code ends
end start
assume cs:code
main proc far
start:
push ds
sub ax,ax
push ax
mov bx,0
mov dx,0
mov cx,0 ;初始化
mov ah,1
int 21h ;读入第一位
sub al,'0' ;减去30H
mov dl,10
mul dl ;乘以10
mov bl,al ;放到bl中
mov ah,1
int 21h
sub al,'0'
add bl,al ;此时dl中为2进制表示
;以下换行
mov dl,13
mov ah,2
int 21h
mov dl,10
mov ah,2
int 21h
;以下为以16进制形式输出
mov cl,4
rol bl,cl ;左移四位以输出高位的16进制表示
mov dl,bl
and dl,0Fh
add dl,'0'
cmp dl,'9'
jng next1
add dl,7
next1:
mov ah,2
int 21h
rol bl,cl ;再左移四位以输出低位的16进制表示
mov dl,bl
and dl,0Fh
add dl,'0'
cmp dl,'9'
jng next2
add dl,7
next2:
mov ah,2
int 21h
ret
main endp
code ends
end start
追问
有完整的程序吗,有点急,前面没有输入,也没看见乘法和求商,余数的语句,不过还是谢谢了
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询