将片内RAM的20H单元中的压缩BCD码拆成两个ACSII码存入21H、22H单元。低4位存在21H单元,高4位存在22H单元。

思路:

压缩BCD码和非压缩BCD码的区别

一个BCD码占4位,而一个字节有8位。若把两个BCD码放在一个字节中,就叫压缩的BCD码; 压缩BCD码的每一位用4位二进制表示,一个字节表示两位十进制数。例如10010110B表示十进制数96D;

而一个字节只放一个BCD码,高位置0,则叫非压缩的BCD码。 非压缩BCD码用1个字节表示一位十进制数,高四位总是0000,低4位的0000~1001表示0~9.例如00001000B表示十进制数8.

压缩的BCD码要转换成两个ASCII值,应该怎么转换?

先把压缩BCD拆开变成非压缩BCD,然后加48就是ASCII中的0~9了!如:

1、BCD码00110010,拆开得到:0011和0010

2、分别变成非压缩BCD码:00000011和00000010,得到十进制数字:3和2

3、看ASC表可以得出BCD码0--9转换为ASC码为:48---58,所以对应ASC码值为:51和50


ORG 0000H
LJMP 2000H
ORG 2000H
MOV 20H,#87H;
MOV A,20H;
MOV B,#10H; 先把压缩BCD码分成两个非压缩BCD码
DIV AB; 这个刚刚想了挺久,一直不知道怎么用A/10H,把A的高低四位分开。后来直接从除法的原始意义,A/10H,商是高四位,余数就是低四位
ORL A,#30H; BCD码转化成ASCLL码要+48,30H就是48,A共8位,高四位为0,低四位为刚刚分出来的BCD码,逻辑或以后,高四位为3,低四位不变,相当于加了48
ORL B,#30H;
MOV 21H,B;
MOV 22H,A;
END

一些小问题:

;ORG 2000H;  第一句直接这样写会报错:* error 65: access violation at C:0x0000 : no 'execute/read' permission,因为org 2000H 这句的意思是把下边的代码放到2000H的位置,但是执行时keil仍然是从0000H位置开始执行,所以需要加一个跳转到2000H的指令,才能正常执行

压缩BCD码拆成两个ACSII码存入指定单元【汇编语言】相关推荐

  1. bcd转ascii码 流程图_BCD码转换成二进制和ASCII码

    首先得知道什么是BCD码,可以看下百度,基本定义已经讲清楚了,百度链接:BCD码--百度百科:这里要说的也是最常用的一种BCD码:8421码.本文规定若没有特殊说明时,各个数值只会是十进制数.二进制数 ...

  2. 【CCCC】L2-002 链表去重 (25分),,把一个链表拆成两个

    problem L2-002 链表去重 (25分) 给定一个带整数键值的链表 L,你需要把其中绝对值重复的键值结点删掉.即对每个键值 K,只有第一个绝对值等于 K 的结点被保留.同时,所有被删除的结点 ...

  3. c语言字节BCD码转换成10进制,如何将BCD码转换成10进制码

    今天有人在问我BCD码如何转换成10进制码的问题,其实很简单 BCD 的表示法是 用4个二进制位来表示 一个十进制位,也就是一个字节能够表示2个十进制数位,这是一种压缩的十进制表示方式,应用很广,最常 ...

  4. 二维码解析成链接 二维码解码

    左侧上传二维码就可以进行解析,右边会自动生成网址链接,   点击去解析

  5. hdu 2098 分拆素数和(一个偶数拆分成两个不同素数和 拆法数量)

    传送门: http://acm.hdu.edu.cn/showproblem.php?pid=2098 分拆素数和 Time Limit: 1000/1000 MS (Java/Others)     ...

  6. 单元格内多个姓名拆分成一列_Excel如何将姓名分拆成姓和名两列(使用数据分列完成)...

    Excel如何将姓名分拆成姓和名两列(使用数据分列完成) 时间:2016-02-28   作者:snow   来源:互联网 大家好今天给大家介绍的技能是如何将"姓名"分拆成&quo ...

  7. 字符串转成压缩bcd码

    /* * 字符串转成压缩bcd码 */ /**************************************************************/ /*如果要对字符串转换为左靠齐 ...

  8. 压缩bcd码转成字符串

    /* * 压缩bcd码转成字符串 */ /**************************************************************/ /*如果要对左靠齐的压缩bcd ...

  9. 内存中有两个4字节以压缩的bcd_【汇编程序】循环程序设计方法 求A和B两个4字节BCD数之和 他们在内存中以压缩BCD码形式存放...

    ;循环程序设计方法 求A和B两个4字节BCD数之和 他们在内存中以压缩BCD码形式存放 ;低字节在前 高字节在后 要求结果以同样形式存放以SUM的单元中 data segment a db 44h,3 ...

最新文章

  1. 清华大学梁宸计算机系,应用数学专业论文
  2. godaddy php5.ini,Godaddy主机如何开启GZIP压缩 | Godaddy美国主机中文指南
  3. Java窗口(JFrame)从零开始(8)——文本框+文本域+密码框
  4. Re_Write序列号
  5. Spring 三种注入方式
  6. Eclipse:如何附加Java源代码
  7. python科学计算三剑客_1-python数据分析-数据分析介绍、数据分析三剑客之NumPy
  8. 解决: ubuntu18.04没有网络直连
  9. springboot+thymeleaf+pageHelper带条件分页查询
  10. 【数据库】第一章 数据库的分类、SQL、数据库、表和表记录的常用操作
  11. 随笔写一个简单的爬虫
  12. luogu p1652 圆
  13. 简述线性反馈移位寄存器
  14. 湘源里面关于缩放的问题
  15. qq互联代码 php,请教QQ互联的代码是如何写的?
  16. linux搭建代理服务器
  17. 安卓沉浸式状态栏_要简单还要沉浸 Dacom L10 主动降噪(ANC)蓝牙耳机体验
  18. 阿里系App抓包分析(三)
  19. 杰米棋牌开发商打造经典棋牌游戏
  20. JS 苹果手机日期显示NaN问题

热门文章

  1. 手机错位摄影,一学就会!零基础学…
  2. 诺基亚成功测试多接入边缘计算应用
  3. 如何去掉el-input自带边框
  4. linux启动postfix命令,使用Postfix命令管理详解
  5. vue3实现el-button长按松开功能
  6. FFMpeg AVFrame 的概念.
  7. CSS3 @font-face (webfont)
  8. 使用pandas GroupBy获取每个组的统计信息(例如计数,均值等)?
  9. JAVA计算机毕业设计员工工资管理系统Mybatis+系统+数据库+调试部署
  10. PHP中的12个魔术方法