第十一篇 BCD码调整

实验六 存储器实验 只读存储器(ROM)是一种在正常工作时其存储的数据固定不变,其中的数据只能读出,不能写入,即使断电也能够保留数据,要想在只读存储器中存入或改变数据,必须具备特定的条件。当地址为00000101时,会分别在数据位宽为8,16,32的只读寄存器中找到地址为00000101所对应的十进制地址位置,也就是地址为5的数据,并将其分别以8位,16位,32位输出。因此,输出保持为0。因此,当异步清零信号为1时,无论其他输入信号是什么,触发器的输出都会被强制清零,输出为0。1)寄存器输入0011,使能端1,异步清零0。 阅读详情

        无论是X86汇编还是MCS-51的指令集中都会有BCD码调整指令。本博文将浅谈下BCD码调整的

相关情况。

 

一、BCD码是十进制数在计算机中的表现形式。

        我们一直都说计算机只能表示0、1二进制,这毫无疑问是正确的。但人对十进制数较为熟悉,为

了迎合人的方便,8421BCD码用来在计算机中表示十进制数。当然了,BCD码也是用0、1二进制来表

示的。所以,需要注意理解的是,这里的计算机表示十进制数更多的是一种逻辑上的概念,但也正是这

种逻辑概念使得我们可以在指令中运用BCD码来表示十进制数,从而在在一些实际应用中会很方便。比

如在ADD、SUB等指令中。从而为我们带来方便。

 

二、(A)=56H,(R5)=67H。ADD A,R5, DA A。(MCS-51指令集)

        DA是51中的十进制调整指令。

        首先我们得解决一个问题。56H、67H是16进制数还是10进制数?

        有过汇编编程经验的人都应该可以很好的理解这个问题。56H、67H到底是多少进制数不是你决定

的,也不是我决定的。它是程序员根据实际应用情景赋予的。换句话说,程序员说它是16进制它就是16

进制;说它是10进制它就是10进制。只要程序员能够理解并合理的处理即可。就像本例中的56H、67H

就是十进制数,因为DA A的存在。

 

三、为什么要调整?

         计算机并不能理解56H、67H是8421BCD表示的十进制数,还是普通的16进制数。它都默认是二进

制运算。比如上例的56H+67H=0BDH,作为16进制加法这显然是没错的。错就错在这根本不是16进制加

法,是十进制加法。换句话说程序员将其意义改变成十进制了,计算机还是按16进制来运算,导致了结果

出错。不过,计算机可以通过简单的调整得到正确的结果。

         更直观的解释可以是这样的:

         8421BCD用来表示0-9,还有1010、1011、1100、1101、1110、1111这6个数字不用。十进制运

算中一旦出现了这6个数字即是出错了,需要调整。

 

四、辅助进位标志AF与AL低四位的区别,进位标志CF与AL高四位的区别?(X86)

        AF=1是不是AL低四位就一定大于9,AF=0是不是AL低四位就一定小于9呢?CF与AL高四位也有同

样的问题。

       首先来看下DAA调整指令的算法:

if(AL低四位>9 || AF=1) then
	AL=AL+6;
	AF=1;
endif
if(AL高四位>9 || CF=1) then
	AL=AL+60H;
	CF=1;
endif

        所以,上面的问题就可以解答了,AF=1与AL低四位与9的大小关系没有必然联系。同理,CF=1与AL高四

位与9的关系也一样。

        举个例子:

        1100+0100=10000,AL低四位为0,但AF=1,需要做加6调整。

 

五、最关键的问题。

         进行BCD码调整最关键的是要理解什么需要做调整,什么时候根本不用。就像前面已经说过的一样,如果

是十进制运算那就需要,如果是十六进制就不需要。这就要看程序员所在的具体应用场合了。为什么我一直在强

调十进制与十六进制,那是因为BCD码也是表示为XXH,和十六进制一个样。我想很多人都会在这里卡壳。但有

一点,表示BCD码的XXH,其中X一定不会是A、B、C、D、E、F的。


 

 

Fluent动网格+滑移网格+重叠网格对比介绍(以震荡水翼flapping foil为例) 初学fluent笔记,本文主要包含: Flapping foil在fluent内的几种实现方式 在哪设置动网格、滑移、重叠网格 flapping的UDF 示例 写在前面:Fluent在预览网格运动/提交计算之前,注意保存一个cas版本。 -------------------------Flapping foil 网格几种组合实现方式:---------------------- 直接重叠网格,overset, 需要建立两个几何part,part要重合。水翼局部区域(component),背景网格(ba 阅读详情

相关推荐

西电微机系统课程设计步进电机开环控制系统

** 微机系统与应用课程设计 课题二 步进电机开环控制系统设计** 一、程设计目的 掌握微机系统总线与各芯片管脚连接方法,提高接口扩展硬件电路的连接能力。 加深对 A/D 和并行接口芯片的工作方式和编程方法的理解。 搞懂步进电机的工作原理及控制方式,掌握开环控制系统的设计思路和实现方法。 二、课程设计的内容 手动调节电位器旋钮(0V~5V),通过 ADC0809 模拟输入水库水位 0 米~50...

qq_37015775的博客 4040

【计算机篇】微机原理学习笔记-BCD码

BCD码 组合BCD码和分离BCD码 1.组合BCD 对于组合BCD的运算结果采用+6来调整结果 问:为什么+6 答:因为4位二进制超过15才进位,而十进制超过9就进位,加6则让系统强制性进位。如果得到的结果后四位不大于9,但是进位了,这时候往前4位多进了6,所以要对后四位加6,把多进的6补回去。 2.分离BCD ...

weixin_42857472的博客 3134

SQLite学习——Dapper初识

dapper下载:https://www.nuget.org/packages/Dapper/1.40.0

jiDxiaohuo的博客 1305

汇编学习笔记07——BCD码及调整指令

一、BCD码 什么是BCD码呢? BCD码的全称是Binary Coded Decimal。可以看出是关于二进制和十进制的编码。 我们在写十进制转二进制的时候,采用的是8421编码制,比如十进制的43,在二进制就是 0010 1011 而BCD码会将这个十进制的数分割成4和3,分别用两个4位二进制去表示: 0100 0011——0100是4 0011是3. BCD码其实有两种格式,压缩BCD码和非压缩BCD码 上面写的那种就是压缩BCD码,一个字节的高低四位各表示一个十进制数。 而非压缩BCD码则是,一个

qq_44899247的博客 1万+

WRF中使用ERA5再分析数据

   本人在做一些实例时,需要用到最新的ERA5再分析数据集,其中我下载的是ERA5 hourly data on pressure levels form 1979 to present和ERA5 hourly data on single levels from 1979 to present中的3天数据。 1、注册climate copernicus账号 下载ERA5数据前先要注册其账号 2、选择变量    WRF中对于气象数据的字段有具体的要求, ......

GIS 8172

Ubuntu 24.04 搭建 Squid 代理服务器终极指南:从入门到 HTTPS 缓存AI模型

本文详细指导在Ubuntu 24.04系统部署Squid代理服务器,实现AI大模型文件的高效缓存。重点内容包括:1) 安装squid及必备的squid-openssl扩展包;2) 配置HTTPS拦截(SSL-Bumping)功能,创建CA证书和SSL数据库;3) 优化缓存策略,设置4TB存储空间并强制缓存常见大文件格式;4) 结合华为防火墙实现透明代理。文章特别强调实际部署中的关键注意事项和常见错误解决方案,如证书路径配置、权限设置等问题,帮助用户快速搭建企业级缓存代理服务。

zlt315的博客 1921

微机原理——指令系统——算数运算指令(ADD、ADC、SUB、SBB、INC、DEC、NEG、CMP、MUL、IMUL、DIV、IDIV、CBW、CWD、BCD调整)

算数运算指令1、加减法指令ADD、ADC 、SUB 、SBB 和增量减量指令INC、DEC、NEGADD ADC例题讲解SUB SBB例题讲解2、比较指令CMPCMP例题讲解3、乘除指令MUL IMUL DIV IDIVDIV、IDIV例题讲解4、符号扩展指令CBW CWD5、BCD数运算调整指令(十进制调整指令) 1、加减法指令ADD、ADC 、SUB 、SBB 和增量减量指令INC、DEC、......

hanhan的博客 6万+

适配adv7280m相机到rk3588的安卓平台

Kernel-5.10/arch/arm64/configs/firefly_defconfig里面增加配置CONFIG_VIDEO_ADV7180=y。出现一次开不了机器的情况,接调试口发现,在set_fmt里面用s_ctrl对mipi的频率进行设置会出现异常。设备树修改kernel-5.10/arch/arm64/boot/dts/rockchip/13.dts。把MEDIA_ENT_F_ATV_DECODER改回MEDIA_ENT_F_CAM_SENSOR。第二次编译,仅仅刷新boot.img。

chenyq14的专栏 2449

编码:8421 BCD码(彻底弄懂+6是什么意思,为什么要加6)

一.解释一下什么是8421 首先要理解的是4bit表示1个十进制位 。 8421代表的是权值分配 8421码用0000 0001 1001分别表示0,1,2,…9的数字, 为什么13不是1101? 答:不在映射表,8421码的1010-1111没意义 BCD算术运算是一种十进制运算(二进制中每四个二进制数字代表一位十进制数字且不超过9),如果2个BCD码相加的和大于(1001)2,则需要修正,要进行+6修正,并向高位进位。 二.我一开始也没弄懂+6是什么意思 后来: ...

m0_58381606的博客 1万+

偏最小二乘结构方程(PLS-SEM)_TomatoSCI分析日记

①模型整体拟合指标(Goodness-of-Fit, GOF),这个可以看做整体的R方了,上限是1;②指标载荷的具体值;然而,当数据中包含潜变量(即由多个观测指标组合而成的综合概念)时,贝叶斯结构方程不太适用。指标过少(1-2 个)会削弱潜变量的解释力,而指标过多可能增加噪声,影响模型稳定性。如果指标较多,可考虑进一步划分潜变量,但应确保每个指标有意义。掌握这两类方法后,在处理多变量、因果或路径分析研究时,可以根据数据特点与研究需求灵活选择。对于一般的多变量研究,这两类结构方程均为常用且有效的分析方案。

qq_44684643的博客 2011

slam_toolbox 简介和使用

专为移动机器人在未知环境中实时构建地图和定位设计。它适用于2D和3D环境,支持多种机器人平台和传感器配置。

weixin_74808846的博客 3307

8421BCD码的加6修正的原因

BCD码(二进制和十进制的孩子)

weixin_62106326的博客 4279

【AI应用实战-WorkBuddy】WorkBuddy 能帮你做什么(一)

文章摘要: WorkBuddy是一款AI工作助手,专为提升效率而设计,适用于经常处理文档、代码、数据分析等重复性任务的职场人士。它能通过自然语言交互快速完成五大核心场景任务: 周报撰写:输入工作要点,10分钟生成专业周报; 代码调试:解析报错信息,3分钟提供解决方案; Excel分析:自动计算数据趋势并生成图表和结论; 自动化脚本:将重复流程转为脚本,节省98%时间; 文档生成:根据代码自动补充README、API文档和注释。 效果对比:传统手动操作耗时1-3小时的任务,WorkBuddy可将时间缩短至10

353

java bcd 十进制_第十一篇 BCD码调整

无论是X86汇编还是MCS-51的指令集中都会有BCD码调整指令。本博文将浅谈下BCD码调整的相关情况。一、BCD码是十进制数在计算机中的表现形式。我们一直都说计算机只能表示0、1二进制,这毫无疑问是正确的。但人对十进制数较为熟悉,为了迎合人的方便,8421BCD码用来表示十进制数。当然了,BCD码也是用0、1二进制来表示的。所以,需要注意理解的是,这里的计算机表示十进制数更多的是一种逻辑上的概念...

weixin_27146053的博客 1096

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

BCD码详解

BCD码的种类 BCD码可分为有权码和无权码两类:有权BCD码有8421码、2421码、5421码,其中8421码是最常用的;无权BCD码有余3码、格雷码等。 8421 BCD码 8421 BCD码是最基本和最常用的BCD码,它和四位自然二进制码相似,各位的权值为8、4、2、1,故称为有权BCD码。和四位自然二进制码不同的是,它只选用了四位二进制码中前10组代码,即用0000~1001分别代表它所对应的十进制数,余下的六组代码不用。 5421 BCD码和2421 BCD码 5421 BCD码和24

959 6万+

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

什么是BCD码?BCD码编码规则

BCD码

xkdlzy的专栏 12万+

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

二进制转BCD码原理及verilog实现

一、BCD码概念 BCD码(Binary-Coded Decimal‎),利用四个2进制位储存一个10进制的数,如下表所示。本文所讨论的问题均以8421BCD码为例,十进制的0~9分别用0000~1001来表示。 十进制数23,可表示为0010_0011,十进制数129,可表示为0001_0010_1001。 即分别对个位、十位、百位求对应的BCD码。 ​二、二进制数到BCD码的转换 先根据输入不同位数的二进制数,求对应的BCD码 假设输入1位二进制数1,则对应的BCD码为0001,对应

傻福网站 5万+

BCD 码、BIN 码、ASCII 码

BCD 码、BIN 码、ASCII

RedRay0的博客 6801

BCD码和ASCII码的相互转换

BCD码和ASCII码的相互转换 最近遇到一个问题就是将BCD码和ASCII码互换的问题,题目如下: 两位BCD数以压缩形式存入30H单元,用汇编语言实现将这两个BCD码变为ASCII码,并且保存在40H和41H中。 根据以上问题首先要知道什么是BCD码和什么是ASCII码。 1、首先BCD码同时也叫二进码十进数,通俗点就是用4位二进制数来表示0~9这10个十进制数,BCD码可以分为有权码和无权码...

SZU_黄其才 3万+

汇编语言十进制算术运算调整指令【BCD码题型】

汇编语言有关BCD码练习一、什么是BCD码1、组合BCD码2、未组合BCD码二、组合BCD码的算术运算调整指令1、DAA2、DAS三、未组合BCD码的算术运算调整指令1、AAA2、AAS题目 一、什么是BCD码 1、组合BCD码 组合的BCD码,也叫压缩BCD码,是指一个字节含两位BCD码,例如:37H 2、未组合BCD码 未组合的BCD码,也叫非压缩型BCD码,是指一个字节含一位BCD码,字节的高四位无意义,例如:0307H 二、组合BCD码的算术运算调整指令 1、DAA 组合的BCD码加法调整指令DAA

weixin_53937982的博客 5257

Verilog实现2进制码与BCD码的互相转换

Verilog实现2进制码与BCD码的互相转换

孤独的单刀 1万+

BCD码和压缩BCD码

BCD码    BCD码,全称二进制编码的十进制。用4位二进制数来表示1位十进制数中的0-9这10个数码。    BCD码可分为有权码和无权码两类: 有权BCD码有8421码、2421码、5421码,其中8421码是最常用的; 无权BCD码有余3码,余3循环码等。    8421BCD码    8421 BCD码是最基本和最常用的BCD码,它和四位自然二进制码相似,各位

weixin_41608964的博客 2万+

什么是BCD码,BCD码的表示

BCD码种类和原理

weixin_45317857的博客 5万+

BCD码的加减运算

第一部分 BCD码是用4位二进制数来表示1位十进制数,常用的BCD码是8421BCD码。 对于4个二进制数,如果该位为1,则将该位对应的十进制写出。最终所有的十进制数之和为该BCD码表示的二进制数。 举例:     BCD码:               0001    &nbsp

follow your heart 1万+

BCD码:8421码

BCD码中的8421码的完整理解及编码解码过程

weixin_57915039的博客 4万+

编码 & 8421BCD 码的故事

计算机编码中,我们都是先了解了二进制,其中分有符号数,无符号数,然后会接触到BCD码,那么BCD码是怎么产生的?为什么又要用四位二进制来表示呢? 一、BCD码 1.由来 计算机使用二进制数来处理信息,但是如果二进制的形式输入和输出数据,就十分不方便了。一般来说,输入输出时采用十进制数。 举例: 明明二进制 0110 (B)代表数字 6,但是人们更习惯,也更喜欢的数 阿拉伯数字 6 ,也可以是 中文 六。 那么,这里就存在一个问题,我们使用计算器,是输入的为十进制数 25,但是计算机使用二进制数来处理信息,那

Sticker的博客 7769
上一篇: 导出短信.xml,提取信息
下一篇: 大三快结束了
lulipeng_cpp
博客等级 码龄15年 169粉丝 130原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值