用汇编语言将BCD码转换成二进制码,并以二进制串的形式输出,在屏幕上显示出来

在线等,快。。。... 在线等,快。。。 展开
 我来答
宿北老龙
推荐于2018-04-16
知道答主
回答量:12
采纳率:0%
帮助的人:0
展开全部
以1567为例,,,我是四川大学的,你也是吧

DATAS SEGMENT
buffer1 dw 1657h
buffer2 dw ? ;分配两个字节的空间
DATAS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS
START:
MOV AX,DATAS
MOV DS,AX
mov ax,[buffer1]
and ax,0f000h
mov cl,12
shr ax,cl
mov dx,ax ;至此,已将5678h(BCD)中的5(十进制)取出,并放入dx中
call change ;调用chang,将5乘以10
mov ax,dx
mov bx,[buffer1]
and bx,0f00h
mov cl,8
shr bx,cl
add ax,bx
mov dx,ax
call change
mov ax,dx
mov bx,[buffer1]
and bx,00f0h
mov cl,4
shr bx,cl
add ax,bx
mov dx,ax
call change
mov ax,dx
mov bx,[buffer1]
and bx,000fh
add ax,bx ;至此,ax中的值已是5678(十进制),但电脑是将其以二进制的形式存储的,故应是0679h,二进制就是0000011001111001
mov buffer2,ax ;因为后面会用到ah,为避免在其过程中丢失ax中的数据,故将ax中的数据放入buffer2中
mov cx,16
again:shl buffer2,1 ;将已经转换成二进制的数逐个显示出来
mov dl,0
adc dl,30h
mov ah,2
int 21h
loop again
MOV AH,4CH
INT 21H
change proc ;子程序change的功能是实现dx乘以10
add dx,dx
mov cx,dx
add dx,dx
add dx,dx
add dx,cx
ret
change endp

CODES ENDS
END START
做而论道
高能答主

2022-08-19 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3.2万
采纳率:86%
帮助的人:8812万
展开全部

用汇编语言将BCD码转换成二进制码,并以二进制串的形式输出,在屏幕上显示出来

以 1537 的 BCD 码 1537H 为例。

转换程序如下:

显示时,滤掉了前部的无效零。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式