《汇编语言程序设计》第6章算术运算与代码程序设计

《汇编语言程序设计》第6章算术运算与代码程序设计

ID:37804177

大小:1.13 MB

页数:78页

时间:2019-05-31

《汇编语言程序设计》第6章算术运算与代码程序设计_第1页
《汇编语言程序设计》第6章算术运算与代码程序设计_第2页
《汇编语言程序设计》第6章算术运算与代码程序设计_第3页
《汇编语言程序设计》第6章算术运算与代码程序设计_第4页
《汇编语言程序设计》第6章算术运算与代码程序设计_第5页
资源描述:

《《汇编语言程序设计》第6章算术运算与代码程序设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第六章算术运算与代码转换程序设计第6章算术运算与代码转换程序设计6.1加减法运算程序设计6.2乘除法运算程序设计6.3串操作程序设计6.4代码转换程序设计6.5排序与查找程序设计第6章算术运算与代码转换程序设计6.1加减法运算程序设计6.2乘除法运算程序设计6.3串操作程序设计6.4代码转换程序设计6.5排序与查找程序设计6.1加减法运算程序设计二进制加减运算十进制加减运算二进制加减运算6.1加减法运算程序设计如果加减法运算的操作数是8位或16位的二进制数,而运算结果也在此范围内,那么用一条基本加减运算指令就可以完成。实际上,我们所面对的数据经常会超过8

2、位、16位的范围,这就是多字节数的二进制加减运算。二进制加减运算6.1加减法运算程序设计例6.1两个多字节无符号数分别存放在内存DATA1和DATA2开始的单元,数据长度存放在LEN单元,编程求两数之和,将结果存放在SUM开始的单元。二进制加减运算6.1加减法运算程序设计多字节数相加运算应考虑的问题有:(1)数据长度可存储在计算机中,也可定义成常量。(2)为简化程序,应采用循环结构作程序主体。(3)最低字节相加与其他字节相加有所不同。(4)两个无符号数相加的最高字节产生的进位应处理成结果的最高字节,两个带符号数相加可能需要做溢出处理。二进制加减运算6.1

3、加减法运算程序设计DSEGSEGMENTDATA1DB0BH,20H,45HDATA2DB05H,0EH,0D7HLENDB3SUMDB4DUP(0)DSEGENDSSSEGSEGMENTPARASTACKSTKDB20DUP(0)SSEGENDSCSEGSEGMENTASSUMEDS:DSEG,SS:SSEG,CS:CSEGSTART:MOVAX,DSEGMOVDS,AXMOVAX,SSEGMOVSS,AXMOVSP,LENGTHSTKMOVCX,LENMOVSI,0CLC;注释1NEXT:MOVAL,DATA1[SI]ADCAL,DATA2[SI]M

4、OVSUM[SI],ALINCSI;注释2LOOPNEXTMOVAL,0ADCAL,0MOVSUM[SI],ALMOVAH,4CHINT21HCSEGENDSENDSTART注释1:清除进位标志,使最低字节的加法也可以利用循环体中的ADC指令。注释2:在本次加法和下次加法间的语句都不影响进位标志,是为了保证相继高字节相加时,加入的是相应低字节产生的进位状态。如果含有影响进位标志的语句,则需要在本次加法后用LAHF保存标志,在下次加法前用SAHF恢复标志。十进制加减运算6.1加减法运算程序设计以4位二进制数对十进制数进行编码有两种情况。在一个字节中只含一个

5、BCD码为非压缩型,其加减法调整指令分别为AAA和AAS。在一个字节中含两个BCD码为压缩型,其加减法调整指令分别为DAA和DAS。需要注意的是,调整指令要求加或减的结果一定在AL中。十进制加减运算6.1加减法运算程序设计例6.2两个单字节非压缩BCD码数据分别存放在内存的DATA1和DATA2单元中,编程求两数的和与差,分别将结果存入SUM和DIF单元。十进制加减运算6.1加减法运算程序设计DSEGSEGMENTDATA1DB08HDATA2DB06HSUMDW0DIFDB0DSEGENDSSSEGSEGMENTPARASTACKSTKDB20DUP(

6、0)SSEGENDSCSEGSEGMENTASSUMEDS:DSEG,SS:SSEG,CS:CSEGSTART:MOVAX,DSEGMOVDS,AXMOVAX,SSEGMOVSS,AXMOVSP,LENGTHSTKMOVAH,0MOVAL,DATA1ADDAL,DATA2AAAMOVWORDPTRSUM,AXMOVAL,DATA1SUBAL,DATA2AASMOVDIF,ALMOVAH,4CHINT21HCSEGENDSENDSTART十进制加减运算6.1加减法运算程序设计例6.3两个压缩BCD码数据分别存放在内存的DATA1和DATA2单元中,编程求两

7、数之差,将结果存入DIF单元。十进制加减运算6.1加减法运算程序设计Eg.6_3.s第6章算术运算与代码转换程序设计6.1加减法运算程序设计6.2乘除法运算程序设计6.3串操作程序设计6.4代码转换程序设计6.5排序与查找程序设计6.2乘除法运算程序设计如果被乘数和乘数的长度不超过两个字节,或者被除数的长度不超过四个字节、除数的长度不超过两个字节,就可以直接使用8086.8088提供的乘除法指令实现乘除法运算。如果超过了这个范围,就要与其他指令配合,通过程序段实现多字节的乘除法。6.2乘除法运算程序设计二进制乘法运算二进制除法运算二进制乘法运算6.2乘除

8、法运算程序设计乘法的目的操作数必须存放在AX中(或AL中),对应的乘积存放在DX

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。