文件名称:代码转换实验
-
所属分类:
- 标签属性:
- 上传时间:2021-05-24
-
文件大小:893byte
-
已下载:0次
-
提 供 者:
-
相关连接:无下载说明:别用迅雷下载,失败请重下,重下不扣分!
介绍说明--下载内容来自于网络,使用问题请自行百度
1.编写并调试程序,将内存中BCD码转换为二进制码,在DEBUG中查看。
2、BCD码转换为二进制码
在各种智能仪器和信息处理中,人们总习惯于十进制数来表示信息。但绝大多数计算机没有十进制运算指令(仅有十进制调整指令)。这是因为实现十进制算术运算的硬件电路要比采用二进制算术运算的硬件电路复杂得多。例如,当两个整数进行算术运算时,对一个N进制的数需记住N(N+1)/2个“积”与“和”。当N=10时,需记住55个“积”与“和”;而当N=2时,只需记住3个。从占用存储空间来看,采用二进制数比采用十进制数要节省得多。例如,8 bit表示十进制数,其数值范围为0 ~ 99,而8 bit表示的二进制数则为0 ~ 255(均指无符号数)。所以常规的方法是将输入的十进制数转换为二进制后,再进行各种数据处理。
BCD码分为组合(压缩)BCD码和未组合(非压缩)BCD码。组合BCD码每字节存放两位BCD数,未组合BCD码每字节只存放一位BCD数,高半字节为0。组合BCD码加、减后必须用DAA和DAS指令进行调整(乘法或除法没有调整指令)。未组合BCD码则可进行加、减、乘、除四则运算,其调整指令分别为AAA,AAS,AAM和AAD。
组合BCD码表示的数可以用其按权展开式表示。例如
2497 = 2×+ 4×+9×+7× 310210110010
= 2×3E8H + 4×64H +9×0AH +7×1H
由此,逐位转换后相加便可得到结果。
改用另一种表示方法,可以写成
2497 = (((((2×10)+ 4)×10)+ 9)×10)+ 7
而10 = 8 + 2 。于是便可以采用循环结构程序来完成转换。
本实验是要把两位未组合BCD码数转换成二进制数。
设未组合BCD码已存放在ASC区域,把它们转换为二进制数后,再分别存入起始地址为BUFFER的区域。例如:
ASC DB 04H,02H,07H,04H,06H,01H,03H,09H
则转换后BUFFER区域的内容为:
BUFFER 2AH,00H,4AH,00H,3DH,00H,27H,00H
2、BCD码转换为二进制码
在各种智能仪器和信息处理中,人们总习惯于十进制数来表示信息。但绝大多数计算机没有十进制运算指令(仅有十进制调整指令)。这是因为实现十进制算术运算的硬件电路要比采用二进制算术运算的硬件电路复杂得多。例如,当两个整数进行算术运算时,对一个N进制的数需记住N(N+1)/2个“积”与“和”。当N=10时,需记住55个“积”与“和”;而当N=2时,只需记住3个。从占用存储空间来看,采用二进制数比采用十进制数要节省得多。例如,8 bit表示十进制数,其数值范围为0 ~ 99,而8 bit表示的二进制数则为0 ~ 255(均指无符号数)。所以常规的方法是将输入的十进制数转换为二进制后,再进行各种数据处理。
BCD码分为组合(压缩)BCD码和未组合(非压缩)BCD码。组合BCD码每字节存放两位BCD数,未组合BCD码每字节只存放一位BCD数,高半字节为0。组合BCD码加、减后必须用DAA和DAS指令进行调整(乘法或除法没有调整指令)。未组合BCD码则可进行加、减、乘、除四则运算,其调整指令分别为AAA,AAS,AAM和AAD。
组合BCD码表示的数可以用其按权展开式表示。例如
2497 = 2×+ 4×+9×+7× 310210110010
= 2×3E8H + 4×64H +9×0AH +7×1H
由此,逐位转换后相加便可得到结果。
改用另一种表示方法,可以写成
2497 = (((((2×10)+ 4)×10)+ 9)×10)+ 7
而10 = 8 + 2 。于是便可以采用循环结构程序来完成转换。
本实验是要把两位未组合BCD码数转换成二进制数。
设未组合BCD码已存放在ASC区域,把它们转换为二进制数后,再分别存入起始地址为BUFFER的区域。例如:
ASC DB 04H,02H,07H,04H,06H,01H,03H,09H
则转换后BUFFER区域的内容为:
BUFFER 2AH,00H,4AH,00H,3DH,00H,27H,00H
(系统自动生成,下载前可以参看下载内容)
下载文件列表
压缩包 : exe.zip 列表 exe/new4.asm exe/
本网站为编程资源及源代码搜集、介绍的搜索网站,版权归原作者所有! 粤ICP备11031372号
1999-2046 搜珍网 All Rights Reserved.