BCD码和ASCII码的相互转换

最近遇到一个问题就是将BCD码和ASCII码互换的问题,题目如下:

两位BCD数以压缩形式存入30H单元,用汇编语言实现将这两个BCD码变为ASCII码,并且保存在40H和41H中。

根据以上问题首先要知道什么是BCD码和什么是ASCII码。

1、首先BCD码同时也叫二进码十进数,通俗点就是用4位二进制数来表示0~9这10个十进制数,BCD码可以分为有权码和无权码,这里用最常见的8421BCD码来实现。

2、ASCII码:全称是美国信息交换标志代码,它是一套电脑编码系统,这里不过多介绍。查看ASCII码表可以知道0-9这10个二进制数在ASCII码中分别用16进制数30H~39H来表示,了解上面这些知识就可以解决上面的问题了。

我给出的代码如下:

MOV A,30H ;将30H中的内容放到A中

PUSH ACC ;保护A中的内容

ANL A,#0F0H ;取出A中的高四位

ADD #03H ;令A中内容加3

SWAP A ;将高4位与低4位相互交换,变为ASCII码

MOV 40H,A ;将A中的内容移动到40H中

POP ACC ;将A中的内容恢复

ANL A,#0FH ;将高4位清零,取出低4位

SWAP A ;将高四位与低四位互换

ADD A,#03H ;将A中的内容加3

SWAP A ;将A中的内容变成ASCII码

MOV 41H,A ;将A中的内容放到41H中

同样的如果需要将ASCII码表示的数字转换为相应的BCD码,则有如下操作:

ANL 40H,#0FH ;将40H的ASCII码变为BCD码

MOV A,41H ;将41H中的内容放到A中

ANL A,#0FH ;41H的ASCII码变为BCD码

SWAP A ;高、低4位进行交换

ORL A,40H ;将40H中的内容加到A中

MOV 30H,A ;结果存到30H中

上面就是我给出的解决方法,如果你有其他方法也可以给我留言。

java ascii 转bcd_BCD码和ASCII码的相互转换相关推荐

  1. java ebcdic编码转换_JAVA实现ASCII码与EBCDIC码的相互转换

    import java.io.*; public class coder{ /** * ASCII码对应表 */ private static final String [] ASCII={ &quo ...

  2. java中0x0f对应的字符是什么_常见字符的ASCII码,java中如何获取字符的ASCII码

    一.常见字符的ASCII码 ASCII 码使用指定的7 位或8 位的二进制数组合来表示128 或256 种可能的字符. 标准ASCII 码也叫基础ASCII码,使用7 位二进制数(最高的1位二进制为0 ...

  3. java bcd asc_BCD码和ASCII码的区别

    ASCII码可以表示各种字符和字母,而BCD码只能表示十进制数0-9 两者没有必然的联系~~ BCD码(Binary-Coded Decimal)二进码十进数,是一种二进制的数字编码形式,形式如:XX ...

  4. C语言提取字符对应的ASCAl,ascall码对照表(ASCII码表)

    根据ascall码与汉字的对应关系,利用字库输出. 你的意思是ascii码?ascii码就是以数字的形式代表字符.比如A的ascii码为65.因为计算机是以二进制的方式来存储数据的.所以会产生这种编码 ...

  5. 字符,字节和编码, ASCII码, DBCS码,SBCS码 与Unicode码

    字符,字节和编码, ASCII码, DBCS码,SBCS码 与Unicode码 http://www.regexlab.com/zh/encoding.htm 1. 编码问题的由来,相关概念的理解 1 ...

  6. 汇编中的扫描码、ASCII码(也称字符码)、扩展码、虚拟键码 的区别

    扫描码 是键盘对应按键的编码 ,虚拟键码 是操作系统对 "对应按键"的编码, 键盘ASCII码 ,是操作系统对"对应 虚拟键码"的编码(也称ASCII字符码或者 ...

  7. 关于Python ord()和chr()返回ASCII码和Unicode码的看法

    刚开始学这两个函数的时候,看到书上说的是返回Unicode码, 但是自己去百度之后,发现很多人都说返回是ASCII码 为什么会这样呢? 那么为了不误解 ,我们先介绍下Unicode码和ASCII码 A ...

  8. BCD码和ASCII码的相互转换

    BCD码和ASCII码的相互转换 最近遇到一个问题就是将BCD码和ASCII码互换的问题,题目如下: 两位BCD数以压缩形式存入30H单元,用汇编语言实现将这两个BCD码变为ASCII码,并且保存在4 ...

  9. bcd转ascii码 流程图_BCD码转换成ASCII值

    展开全部 BCD码转ASCII码 BCD码表示:对于用BCD码怎么表示十进制数32313133353236313431303231363533e4b893e5b19e3133343135663429上 ...

最新文章

  1. 安全的开源Linux Kodachi 5.7 发布啦
  2. centos中python2.7被覆盖,yum,python重新安装
  3. 阿里云PyODPS 0.7.18发布,针对聚合函数进行优化同时新增对Python 3.7支持
  4. 阿里Java面试题剖析:为什么使用消息队列?消息队列有什么优点和缺点?
  5. eas库存状态调整单不能反审核_审核与反审核
  6. 让使用SQLite的.NET应用自适应32位/64位系统
  7. 红帽oracle关系,redhat和oracle linux kernel对应关系
  8. ​shell中经常能看到的:/dev/null 21
  9. python itemgetter函数用法_Python itemgetter函数怎么用?
  10. 动态代理(2)----动态代理和AOP
  11. python中特殊符号怎么输入_python中怎么输入引号
  12. 锋利的jQuery学习笔记(4)-DOM操作
  13. 移动硬盘与电脑连接后 计算机中找不到,移动硬盘不显示盘符怎么办 移动硬盘显示不出来解决方法【详解】...
  14. 微信公众号支付失败的各种原因
  15. Android异常 Eclipse编译应用时出现 com.android.dx.cf.iface.parseexception
  16. JAVA写arp协议_ARP协议动态交互仿真系统的设计
  17. SQL语句集锦 [转]
  18. 主流芯片解决方案Ambarella的高清网络摄像机、德州仪器和控制海思
  19. android解决方法数超过65536问题,(满则溢)Android AS打包提示方法数超65536的解决方法...
  20. Unity 创建Sprite导致的内存溢出奔溃问题

热门文章

  1. jquery阻止冒泡事件 模拟事件
  2. 华为Mate是鸿蒙系统,华为mate30概念新机:4500mAh+5G网络+“鸿蒙”系统 这才是华为...
  3. debian怎样打开rar文件
  4. 办公室布置(2013)
  5. Web前端鼠标变小手两种实现
  6. RESIDE:Benchmarking Single Image Dehazing and Beyond
  7. python函数默认返回值_python笔记20_函数返回值
  8. OneDrive 设置同步任意文件夹
  9. C++中一个名字查找的小知识
  10. 计算机基础知识形考任务四答案,国开电大计算机文化基础形考作业4答案