压缩BCD码拆成两个ACSII码存入指定单元【汇编语言】
将片内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码存入指定单元【汇编语言】相关推荐
- bcd转ascii码 流程图_BCD码转换成二进制和ASCII码
首先得知道什么是BCD码,可以看下百度,基本定义已经讲清楚了,百度链接:BCD码--百度百科:这里要说的也是最常用的一种BCD码:8421码.本文规定若没有特殊说明时,各个数值只会是十进制数.二进制数 ...
- 【CCCC】L2-002 链表去重 (25分),,把一个链表拆成两个
problem L2-002 链表去重 (25分) 给定一个带整数键值的链表 L,你需要把其中绝对值重复的键值结点删掉.即对每个键值 K,只有第一个绝对值等于 K 的结点被保留.同时,所有被删除的结点 ...
- c语言字节BCD码转换成10进制,如何将BCD码转换成10进制码
今天有人在问我BCD码如何转换成10进制码的问题,其实很简单 BCD 的表示法是 用4个二进制位来表示 一个十进制位,也就是一个字节能够表示2个十进制数位,这是一种压缩的十进制表示方式,应用很广,最常 ...
- 二维码解析成链接 二维码解码
左侧上传二维码就可以进行解析,右边会自动生成网址链接, 点击去解析
- hdu 2098 分拆素数和(一个偶数拆分成两个不同素数和 拆法数量)
传送门: http://acm.hdu.edu.cn/showproblem.php?pid=2098 分拆素数和 Time Limit: 1000/1000 MS (Java/Others) ...
- 单元格内多个姓名拆分成一列_Excel如何将姓名分拆成姓和名两列(使用数据分列完成)...
Excel如何将姓名分拆成姓和名两列(使用数据分列完成) 时间:2016-02-28 作者:snow 来源:互联网 大家好今天给大家介绍的技能是如何将"姓名"分拆成&quo ...
- 字符串转成压缩bcd码
/* * 字符串转成压缩bcd码 */ /**************************************************************/ /*如果要对字符串转换为左靠齐 ...
- 压缩bcd码转成字符串
/* * 压缩bcd码转成字符串 */ /**************************************************************/ /*如果要对左靠齐的压缩bcd ...
- 内存中有两个4字节以压缩的bcd_【汇编程序】循环程序设计方法 求A和B两个4字节BCD数之和 他们在内存中以压缩BCD码形式存放...
;循环程序设计方法 求A和B两个4字节BCD数之和 他们在内存中以压缩BCD码形式存放 ;低字节在前 高字节在后 要求结果以同样形式存放以SUM的单元中 data segment a db 44h,3 ...
最新文章
- 清华大学梁宸计算机系,应用数学专业论文
- godaddy php5.ini,Godaddy主机如何开启GZIP压缩 | Godaddy美国主机中文指南
- Java窗口(JFrame)从零开始(8)——文本框+文本域+密码框
- Re_Write序列号
- Spring 三种注入方式
- Eclipse:如何附加Java源代码
- python科学计算三剑客_1-python数据分析-数据分析介绍、数据分析三剑客之NumPy
- 解决: ubuntu18.04没有网络直连
- springboot+thymeleaf+pageHelper带条件分页查询
- 【数据库】第一章 数据库的分类、SQL、数据库、表和表记录的常用操作
- 随笔写一个简单的爬虫
- luogu p1652 圆
- 简述线性反馈移位寄存器
- 湘源里面关于缩放的问题
- qq互联代码 php,请教QQ互联的代码是如何写的?
- linux搭建代理服务器
- 安卓沉浸式状态栏_要简单还要沉浸 Dacom L10 主动降噪(ANC)蓝牙耳机体验
- 阿里系App抓包分析(三)
- 杰米棋牌开发商打造经典棋牌游戏
- JS 苹果手机日期显示NaN问题