BCD码运算的十进制调整指令 专用于对BCD码运算的结果进行调整 包括:AAA、DAA、AAS、DAS、AAM、AAD

Slides:



Advertisements
Similar presentations
牙刷十大創意行銷企劃 指導老師:簡南山老師 4A 劉家汶 4A 楊雅涵 4A 許晉嘉 4A 何怡蓁 4A 莊倖怡 0A20F144 王珮.
Advertisements

数制 (1) 基数:在一种数制中,只能使用一组固定的数字符号 来表示数目的大小,其使用数字符号的个数,就称为该数 制的基数。其规则是 “ 逢 b 进一 ” ,则称为 b 进制的基数。 十进制( Decimal )的基数是 10 ,,它有 10 个数字符号, 即 0 , 1 , 2 , 3 , 4 ,
美丽的鹿城 —— 包头 包头简介 包头旅游景区 包头美食. 包 头, 中国内蒙古自治区第一大城市,又称鹿城、草原钢城。 随着包头钢铁(集团)有限责任公司和包头稀土研究院的建成与 发展,这里又被称作稀土之都。 包头稀土研究院 包 头位于内蒙古自治区中部,东与呼和浩特市相邻,西与巴彦 淖尔盟市连接 ,北与蒙古国接壤.
美 丽的轴对称图形 教学内容 教学目标 教学重点、难点 教法、学法 教学过程 教材从具体到抽象,从感性到理性,从实 践到理论,再用实践检验理论,层次分明,循序 渐进的指导学生认识自然界和日常生活中具有轴 对称性质的事物,使学生进一步认识前面所学的 平面图形的本质特征。 教 学 内 容教 学 内.
我的未来不是梦 攀枝花市经贸旅游学校. 1. 文中案例王萍苦恼的原因是 什么? 2. 你有哪些办法可以帮助王萍? 导入 思考  谁来帮帮她?
月子保姆理论知识试卷.
第6章 应收应付款管理.
青岛, 一座有故事的城市…… 刘瑞昌 青岛理工大学汽车与交通学院 2013年12月.
第3课 收复新疆.
第一单元 走进化学世界 课题 1 化学使世界变得更加绚丽多彩.
第十一单元 第24讲   第十一单元 世界经济的全球化趋势.
第1章 计算机基础知识 1.4 二进制数的运算及其加法电路 1.4.1二进制数据算术运算规则 (1) 加法运算规则
小组成员 杨云、王雯、曾明发 刘凤、祝会、陈丹凤.
分式的乘除.
第三章 企业资信评估 第一节 企业资信评估概述 一、企业资信评估的含义
微机原理与接口技术 大家好!.
总 复 习 班 级:测控技术与仪器2011-1、2班 授 课:滕召胜.
第10章 DOS功能调用与BIOS中断调用.
企業政策作業-電影魔球分析 姓名:曾怡靜 班級:企三甲 學號:4A0F0094.
9.1 抽签的方法合理吗.
第四节、破坏金融管理秩序罪(之一) §170.伪造(货币)
領島圖書館.
本周实验安排 实验内容:(P231)人名排序的例子。
2012版中考二轮复习历史精品课件北师大版 (含2011中考真题) 专题五世界近代史
第3章 80x86汇编语言程序设计(中) 时间不够的情况下只讲16位汇编.
4.1 汇编语言 4.2 顺序结构程序 4.3 分支程序设计 4.4 循环程序设计 4.5 子程序设计
第3章 80x86汇编语言程序设计(上) 16位汇编版本 时间不够的情况下只讲16位汇编.
第八章 代码转换 8.1 概述 代码转换是在计算机程序设计中经常碰到的问题。如二进制数与十进制数的转换,ASCII码表示的十进制数与十六进制数之间的转换等等。 代码转换可以用硬件快速实现,但更常用的方法还是用软件的方法来实现。用软件处理代码转换的方法通常有以下两种方法: 1、用查表的办法:这种方法主要用于代码之间的转换关系比较复杂的情况。但码元的数量必须是有限的。
汇编语言程序设计 Assembly Language Programming
第三章 寻址方式与指令系统 3.1 寻址方式 一条指令通常由两大部分构成: 操作码 操作数
第九章 计数器和定时器电路 第一节 概述 第二节 Intel 8253的控制字 第三节 Intel 8253的工作方式 第九章 计数器和定时器电路 第一节 概述 第二节 Intel 8253的控制字 第三节 Intel 8253的工作方式 第四节 Intel 8253在IBM PC机上的应用.
Assembly Language Programming
第2章 汇编语言与汇编程序 ——8086/8088指令系统 mov ax,12h call display Jmp 1234h.
第3章 IA-32指令系统 3.1 基本数据类型 3.2 IA-32的指令格式 3.3 IA-32指令的操作数寻址方式
微机原理与接口技术 ——80x86微处理器 西安邮电大学 计算机学院 范琳.
微机原理与接口技术 第9章 计时/计数接口.
汇编语言程序设计课程设计 第二次实验 DEBUG基本命令与算术运算指令
第五讲 四则运算计算器(一) 精品教程《C#程序设计与应用(第2版)清华大学出版社 谭恒松 主编
微型计算机原理及应用.
4.2.3 数据选择器 功能:在输入的地址代码指定下从输入的一组数据中选出一个送到输出端。
逆向工程-汇编语言
第六章 算术运算 6.1 十进制数加减运算 在计算机中采用BCD码来表示十进制数。BCD码就是使用四位二进制数表示一位十进制数。
條件處理.
第九章 高级宏汇编语言 9.1 结构 结构就是将逻辑上有一定关系的一组数据,以某种方式组合在一起所形成的数据形式。
第二章 8086微处理器. 第二章 8086微处理器 微处理器的基本结构 8086微处理器的主要特性和内部结构 8086CPU的工作模式和引脚信号 8086的存储器管理 8086的总线操作和时序.
习题3 1、 分别说明下列指令的原操作数和目的操作数各采用什么寻址方式。 设定如下: ①立即寻址 ② ① ②寄存器寻址
课题:1.5 同底数幂的除法.
4.4 实用程序举例 延时 在程序设计过程中,有时需要程序“等待”一会儿再去处理某些事情,称之为延时。计算机延时实际就是让计算机反复执行一些空操作,这样就能起到拖延时间的作用。需要执行空操作次数的多少,取决于延时时间的长短。
第1章 数制与编码.
可编程定时计数器.
《微型计算机原理与接口技术》 第4版 王良 宁德师范学院 吴宁 乔亚男 编著 清华大学出版社 出版
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年12月17日.
组合逻辑电路 ——中规模组合逻辑集成电路.
实验三 16位算术逻辑运算实验 不带进位控制的算术运算 置AR=1: 设置开关CN 1 不带进位 0 带进位运算;
九宫趣味数学──手指关节计算器 上海浦东建平实验小学 王政皓.
3. 逻辑运算指令 A、简单逻辑操作指令 CLR A. (不影响CY、AC、 OV标志) CPL A
第3章 80x86的指令系统和寻址方式 § x86的寻址方式 § x86的指令系统
数据表示 第 2 讲.
4.3 汇编语言程序设计 顺序程序设计 顺序程序设计是最基本的程序设计。它是按照指令排列的先后顺序依次执行,每条指令都必须执行,且只执行一遍。顺序程序设计一般比较单一、简单,常常作为复杂程序的一部分。
第一章 微型计算机中的数据类型.
微机原理与接口技术 西安邮电大学计算机学院 董 梁.
「同根同心」- 交流計劃 廣州及珠三角經濟發展兩天考察團 2016
微机原理与接口技术 西安邮电大学计算机学院 宁晓菊.
第三章 8086的指令系统 8086指令特点 8086的寻址方式 8086的指令格式及数据类型 8086的指令集.
第一章 绪 论 1.1 概 述 1.2 数制与代码.
专题八 欧美代议制的确立与发展 (17—19世纪) 英    美 法 德 选修:日本 俄国.
第二次课后作业答案 函数式编程和逻辑式编程
跟我一起学编程系列课程: 第一篇汇编语言 16位汇编.
2-2 圖形的放大與縮小.
9.3多项式乘多项式.
Presentation transcript:

BCD码运算的十进制调整指令 专用于对BCD码运算的结果进行调整 包括:AAA、DAA、AAS、DAS、AAM、AAD 均为隐含寻址,隐含的操作数为AL和AH 为何要对BCD码的运算结果进行调整? BCD码本质上是十进制数,即应遵循逢十进一的规则。而计算机是按二进制(十六进制)进行运算,并未按十进制规则进行运算。 1

8088的调整指令主要用于十进制数的调整。这些指令包括: AAA:对AL中非压缩BCD码求和的结果进行调整。   AAS:对AL中非压缩BCD码求差的结果进行调整。   AAD:在实现十进制除法时,在除法指令前对AX用中非压缩BCD码表示的十进制数进行调整。   AAM:在实现十进制乘法时,对AX中两个非压缩BCD码相乘的结果进行调整。   DAA:对AL中的两个压缩BCD码相加之和进行调整,得到用压缩BCD码表示的十进制和。   DAS:对AL中的两个压缩BCD码相减之差进行调整,得到用压缩BCD码表示的十进制差。 2

加法的十进制调整指令 非压缩BCD码加法调整AAA 本指令对在AL中的由两个未组合的BCD码相加后的结果进行调正,得到一个正确的未组合的BCD码。 AAA指令只影响AF和CF,其余标志无定义。 AAA指令应紧跟在ADD或ADC指令之后。 3

① AL←(AL)+6,(AH)←(AH)+1,AF←1 AAA指令的操作如下: 如果AL的低4位>9∨AF=1,则: ① AL←(AL)+6,(AH)←(AH)+1,AF←1 ② AL←((AL)∧0FH) ③ CF←AF 否则AL←(AL)∧0FH 4

调整原理:先看一个例子 计算8+9 0000 1000 见右式 +0000 1001 0001 0001 = 11 结果应为17,而计算机相加为11,原因在于运算过程中,如遇到低4位往高4位产生进位时(此时AF=1)是按逢十六进一的规则,但BCD码要求逢十进一,因此只要产生进位,个位就会少6,这就要进行加6调正。 这个1代表了16,而实际上仅应为10,即多进了6。 5

实际上当低4位的结果>9(即A~F之间)时,也应进行加6调正 (原因是逢十没有进位,故用加6的方法强行产生进位) 。 如对上例的结果进行加6: 0001 0001 11 + 0000 0110 6 0000 0111 17 ^ 0000 1111 ---------------------- 1 0000 1111 6

压缩BCD码加法调整DAA 两个压缩BCD码相加结果在AL中,通过DAA调整得到一个正确的压缩BCD码. 指令操作(调整方法): 若AL的低4位>9∨AF=1 则(AL)←(AL)+6,AF←1 若AL的高4位>9∨CF=1 则(AL)←(AL)+60H,CF←1 除OF外,DAA指令影响所有其它标志。 DAA指令应紧跟在ADD或ADC指令之后。 7

例: 0100 1000 48H MOV AL,48H + 0111 0100 74H MOV BL,74H 1011 1100 BCH ADD AL,BL + 0110 0110 66H DAA 1 0010 0010 1 22H (进位) (进位) 执行ADD后,(AL)=BCH,高4位低4位均大于9,故DAA指令执行加66H调整,最后结果为: (AL)=22H, CF=1, AF=1 8

3) 乘法的十进制调正指令AAM 对AX中由两个非压缩BCD码相乘的结果进行调整。调整操作为: (AL)/0AH, (AH)←商,(AL)←余数 隐含的操作寄存器为AL和AH; AAM跟在MUL指令之后使用; 影响标志位PF、SF、ZF,其它无定义; 用AAM可实现≤99的二-十进制转换。 9

例1:按十进制乘法计算7×8=? 程序段如下: MOV AL,07H ;(AL)=07H MOV CL,08H ;(CL)=08H MUL CL ;(AX)=0038H AAM ;(AH)=05H,(AL)=06H 所得结果为非压缩的BCD码。 例2:把3AH转换成等值的十进制数。 MOV AL,3AH ;58 AAM ;(AH)=05H,(AL)=08H 10

4) 除法的十进制调正指令AAD 对非压缩BCD除法运算进行调整。调整操作为: (AL)←(AH)×0AH+(AL) AH ← 0 AAD要在DIV指令之前使用; 影响标志位PF、SF、ZF,其它无定义; 用AAD可实现≤99的十-二进制转换。 11

例1:按十进制除法计算55÷7=? 程序段如下: 例2:把73转换成等值的二进制数。 MOV AX, 0703H ;(AX)= 73BCD MOV CL, 07H ;(CL)= 7 AAD ;(AX)=0037H DIV CL ;(AH)=6, (AL)=7 所得结果为非压缩的BCD码(商7余6)。 例2:把73转换成等值的二进制数。 MOV AX, 0703H ;(AX)= 73BCD AAD ;(AX)= 0049H 12