汇编语言程序设计算术运算与代码程序设计.pptVIP

汇编语言程序设计算术运算与代码程序设计.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
汇编语言程序设计算术运算与代码程序设计

第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)为

文档评论(0)

sunshaoying + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档