- 1、本文档共78页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6章算术运算与代码转换程序设计 6.1 加减法运算程序设计 6.2 乘除法运算程序设计 6.3 串操作程序设计 6.4 代码转换程序设计 6.5 排序与查找程序设计 第6章算术运算与代码转换程序设计 6.1 加减法运算程序设计 6.2 乘除法运算程序设计 6.3 串操作程序设计 6.4 代码转换程序设计 6.5 排序与查找程序设计 6.1 加减法运算程序设计 二进制加减运算 十进制加减运算 二进制加减运算 如果加减法运算的操作数是8位或16位的二进制数,而运算结果也在此范围内,那么用一条基本加减运算指令就可以完成。实际上,我们所面对的数据经常会超过8位、16位的范围,这就是多字节数的二进制加减运算。 二进制加减运算 例6.1 两个多字节无符号数分别存放在内存DATA1和DATA2开始的单元,数据长度存放在LEN单元,编程求两数之和,将结果存放在SUM开始的单元。 二进制加减运算 多字节数相加运算应考虑的问题有: (1)数据长度可存储在计算机中,也可定义成常量。 (2)为简化程序,应采用循环结构作程序主体。 (3)最低字节相加与其他字节相加有所不同。 (4)两个无符号数相加的最高字节产生的进位应处理成结果的最高字节,两个带符号数相加可能需要做溢出处理。 二进制加减运算 十进制加减运算 以4位二进制数对十进制数进行编码有两种情况。在一个字节中只含一个BCD码为非压缩型,其加减法调整指令分别为AAA和AAS。在一个字节中含两个BCD码为压缩型,其加减法调整指令分别为DAA和DAS。需要注意的是,调整指令要求加或减的结果一定在AL中。 十进制加减运算 例6.2 两个单字节非压缩BCD码数据分别存放在内存的DATA1和DATA2单元中,编程求两数的和与差,分别将结果存入SUM和DIF单元。 十进制加减运算 十进制加减运算 例6.3 两个压缩BCD码数据分别存放在内存的DATA1和DATA2单元中,编程求两数之差,将结果存入DIF单元。 十进制加减运算 第6章算术运算与代码转换程序设计 6.1 加减法运算程序设计 6.2 乘除法运算程序设计 6.3 串操作程序设计 6.4 代码转换程序设计 6.5 排序与查找程序设计 6.2 乘除法运算程序设计 如果被乘数和乘数的长度不超过两个字节,或者被除数的长度不超过四个字节、除数的长度不超过两个字节,就可以直接使用8086.8088提供的乘除法指令实现乘除法运算。如果超过了这个范围,就要与其他指令配合,通过程序段实现多字节的乘除法。 6.2 乘除法运算程序设计 二进制乘法运算 二进制除法运算 二进制乘法运算 乘法的目的操作数必须存放在AX中(或AL中),对应的乘积存放在DX及AX中(或AX中),乘法的源操作数可以是立即数寻址之外的任何寻址方式。 二进制乘法运算 例6.4 两个多字节无符号数分别存放在内存DATA1和DATA2开始的单元,数据长度分别存放在LEN1和LEN2单元中,编程求两数的乘积,将结果存放在PRDT单元。 分析:设被乘数的长度为L1,乘数的长度为L2,那么需要进行L1*L2次乘法运算,得到L1*L2个部分积,从而将多字节乘法转换成相应部分积的加法。 二进制乘法运算 二进制除法运算 除法的目的操作数必须存放在DX及AX中(或AX中),对应的商存放在AX中(或AL中),余数存放在DX中(或AH中),除法的源操作数可以是立即数寻址之外的任何寻址方式。无符号除法指令DIV要求被除数的高字节小于除数,否则产生溢出。 二进制除法运算 例6.5 无符号被除数和除数分别存放在内存DATA1字单元和DATA2字节单元中,编程求两数的商和余数,分别存放在QUO和REM单元。 被除数为字,除数为字节的无符号除法,如果被除数的高字节不小于除数就会产生溢出。避免的方法是对被除数和除数进行前插0扩展,分别成为双字和字。 二进制除法运算 第6章算术运算与代码转换程序设计 6.1 加减法运算程序设计 6.2 乘除法运算程序设计 6.3 串操作程序设计 6.4 代码转换程序设计 6.5 排序与查找程序设计 6.3 串操作程序设计 例6.6 一个字符串的长度为20,存放在数据段中STR1开始的单元,编程把它们传送到附加段中STR2开始的单元。 方法1: 利用LOOP指令用软件方法重复执行MOVSB的操作 方法2: 利用REP指令实现MOVSB的操作 基本串操作指令在与重复前缀联用时,需要先做好下面的准备工作: (1)将源串首地址(若反向操作则是末地址)存放在SI中; (2)如果是与REP联用,将附加段中的目的串首地址(若反向操作则是末地址)存放在DI中; (3)将数据长度存放在CX中; (4)设置方向标志。 例6.7 一个字符串以Null(00H)为
您可能关注的文档
- 新编经济应用数学课件 制作田浩鹏 积分学2.1.1.ppt
- 新编经济应用数学课件 制作田浩鹏 积分学2.1.2.ppt
- 新编经济应用数学课件 制作田浩鹏 积分学2.1.3.ppt
- 新编经济应用数学课件 制作田浩鹏 积分学2.1.4.ppt
- 新编经济应用数学课件 制作田浩鹏 积分学2.1.5.ppt
- 新编经济应用数学课件 制作田浩鹏 积分学2.1.6.ppt
- 新编经济应用数学课件 制作田浩鹏 积分学2.1.7.ppt
- 新编经济应用数学课件 制作田浩鹏 积分学2.1.8.ppt
- 新编经济应用数学课件 制作田浩鹏 积分学2.1.9.ppt
- 新编经济应用数学课件 制作田浩鹏 积分学2.1.10.ppt
- 2024年学校党总支巡察整改专题民主生活会个人对照检查材料3.docx
- 2025年民主生活会个人对照检查发言材料(四个带头).docx
- 县委常委班子2025年专题生活会带头严守政治纪律和政治规矩,维护党的团结统一等“四个带头方面”对照检查材料四个带头:.docx
- 巡察整改专题民主生活会个人对照检查材料5.docx
- 2024年度围绕带头增强党性、严守纪律、砥砺作风方面等“四个方面”自我对照(问题、措施)7.docx
- 2025年度民主生活会领导班子对照检查材料(“四个带头”).docx
- 国企党委书记2025年度民主生活会个人对照检查材料(五个带头).docx
- 带头严守政治纪律和政治规矩,维护党的团结统一等(四个方面)存在的问题整改发言提纲.docx
- 党委书记党组书记2025年带头增强党性、严守纪律、砥砺作风方面等“四个带头”个人对照检查发言材料.docx
- 2025年巡视巡察专题民主生活会对照检查材料.docx
最近下载
- 重庆市两江新区2023-2024学年数学六年级第一学期期末质量检测试题含答案.doc
- 新版人教版五年级上册语文全册试卷PDF打印.pdf
- 重庆市两江新区2024-2025学年数学六年级第一学期期末检测试题含解析.doc VIP
- 人教版(2024年新版)七年级上册美术全册教学设计.docx
- Desouttter马头电动装配系统CVI3 系列 CVI3 Controllers CVI3 Vision (6159326910) CVI3 tightening controllers Conf.pdf
- 【MOOC】时间序列分析-中南财经政法大学 中国大学慕课MOOC答案.docx
- 2024-2025学年重庆市六年级数学第一学期期末检测试题含解析.doc VIP
- 高中政治(必修1+必修2)期末测试卷(二)(原卷版).docx VIP
- 高中生物 2023-2024学年安徽省合肥高一(上)期末生物试卷.pdf
- 太阳能光伏产业链垂直一体化构建研究.docx VIP
文档评论(0)