- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第七章 汇编语言简单应用程序设计
§7.1 算术运算调整指令及其应用
在前面我们讨论的加、减等运算指令都是以二进制为操作对象的,但在实际使用中,更为习惯的是以
十进制数为基础的运算形式,因此,我们也希望程序能直接接收十进制数进行运算,并用十进制数进行输
出。
要达到这个目标,显然可以采用数制转换方法,先将输入的十进制数转换为二进制数,然后利用计算
机中二进制数指令进行运算,将得到的二进制结果转化为十进制数输出。
当然,也可以直接进行十进制数运算,此时需要计算机提供能进行十进制运算的指令,否则不能采用
此方法。由于现在的计算机内部数据都是以二进制数的形式来表示的,要表示 1 位十进制数(0-9 ),至少
要用 4 位二进制数来表示,我们将这种用 4 位二进制数表示 1 位十进制数的编码方式称为 BCD 码。利用
BCD 码,可在计算机内部实现十进制数运算,一般来说,这类方法有两种:
1. 指令系统中提供了有能直接进行 BCD 码加、减、乘、除法等运算的指令。
2. 先用二进制运算指令进行加、减、乘、除法运算,然后再将得到的结果进行 BCD 码校正。8086/8088
采用的就是这种方法。
7.1.1 BCD 码校正及其加减法 BCD 码校正指令
8086/8088 的十进制数运算调整指令采用BCD 码表示的十进制数,BCD 码有组合型 BCD 码(PACKED
BCD CODE )和非组合型BCD 码(UNPACKED BCD CODE )两种表示形式。
组合型 BCD 码用一个字节表示两个十进制数,即用一个字节的低四位和高四位分别表示一位十进制
数。例如,将十进制数 97 用组合型 BCD 码表示,则为:
非组合型 BCD 码用一个字节只表示一位十进制数。由于一位十进制数只需 4 位二进制数即可表示,
因而,通常用一个字节的低四位表示此十进制数,而其高四位对表示的十进制数没有影响,通常用“0000 ”
或“1111”作为标志。例如,对于十进制数 97 用非组合型 BCD 码表示则需要两个字节,即为:
8086/8088 共有六条 BCD 码校正指令,其中加减法各有两条,乘除法各有一条。
1. 非组合型加法校正指令AAA (ASCII Adjust for Addition )
AAA 指令对寄存器 AL 中数据进行校正,校正后结果放在AL 中。若有进位,则将标志 CF 置为 1,
并更改 AH 值。由于其为加法校正指令,因此使用 AAA 指令前需先用 ADD 或 ADC 完成加法运算,并且
其和应存在寄存器 AL 中。
具体校正法则:若 AL 中低四位的数9 ,或 AF=1 ,则执行操作(AL)=(AL)+6 ,(AH)=(AH)+1,且 AL
·1 ·
中高四位清零,AF ,CF 置‘1’。
下面举例说明其应用。
用键盘直接输入两个一位十进制数,相加后结果存放在 AL 和 AH 中,实现此操作的程序段如下:
MOV AH, 1
INT 21H
MOV BL, AL
MOV AH, 1
INT 21H
MOV AH, 0
ADD AL, BL
AAA
在执行 ADD 之前,程序首先通过键盘接收了两个一位的十进制数分别存放在 BL 和 AL 中。需要注意的
是,输入的十进制数是以ASCII 码存储的。一位十进制数的 ASCII 码和其二进制编码如表 7.1 所示,比较
它们可以发现,ASCII 码的低四位正好就是其所要表示的十进制数的二进制编码。因此上述程序中 AL 和
BL 中的操作数可以看作为一位非组合型 BCD 码。两个非组合型 BCD 码相加后,再用 AAA 指令进行校正。根
据 AL 和 BL 中存放的数据不同,它们低四位相加后可能产生进位,因此,下面分两种情况说明执行十进制
校正指令的校正过程。
表 7.1 输入一位十进制 ASCII 字符同 BCD 码之间关系
您可能关注的文档
最近下载
- 基础教程第十七课-第一部分.pptx VIP
- 麦当劳与高校合作课程介绍.docx VIP
- icv200和icv1200十二导联心电分析系统-企业内容53.pdf VIP
- 29—2PLF120200分级破碎机使用说明书.doc VIP
- T_LNBA 001-2025 脐带间充质干细胞制剂放行技术规范.docx VIP
- 《国际医疗服务规范》(DB31T 1487-2024).pdf VIP
- 压缩空气管道施工方案.pdf VIP
- 天津市部分区2023-2024学年高二上学期期末考试 英语 PDF版含答案.pdf VIP
- 2026春人教版八下单词--词性转换背诵默写(背诵版).pdf VIP
- 纪委书记2025年度民主生活会个人“五个带头”对照检查材料文稿.docx VIP
原创力文档


文档评论(0)