《汇编语言程序设计》第七章:算术运算指令与程序设计

《汇编语言程序设计》第七章:算术运算指令与程序设计

ID:39584372

大小:1.89 MB

页数:99页

时间:2019-07-06

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

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

1、汇编语言程序设计-------朱耀庭www.tup.com.cn第7章算术运算指令与程序设计本章的主要内容就是介绍汇编语言中的算术运算指令及其程序设计。希望同学们在掌握上述内容的同时关注算术运算指令对标志寄存器的影响,因为标志位将是条件转移指令的判断依据,也是分支程序设计实现分支的依据。www.tup.com.cn南开大学朱耀庭第6章数据传送与顺序程序设计7.1算术运算和逻辑运算对标记寄存器的影响7.2算术运算的数据格式7.3二进制数加减运算7.4无符号二进制数乘除运算7.5带符号二进制数乘除运算7.6

2、非压缩BCD码运算7.7压缩型BCD码加减运算www.tup.com.cn南开大学朱耀庭7.1算术运算和逻辑运算对标记寄存器的影响标志寄存器和其他寄存器不一样,其他寄存器是用来存放数据的,并且整个寄存器具有一个含义,而标志寄存器是按位起作用的,每一位都有专门的含义。详见4.2.3节中的FLAG(FLAGRegister)状态标志寄存器。本章主要使用的标志位有:CF,PF,AF,ZF,SF,OF。下面举例说明算术运算和逻辑运算与标志寄存器的关系。www.tup.com.cn南开大学朱耀庭7.1算术运算和逻

3、辑运算对标记寄存器的影响例7-1用一个简单的加法例子编写程序计算255+1=256来说明算术运算的结果受标志寄存器的影响。源程序(Ex7-1.asm)如下:CODESEGMENTASSUMECS:CODE,SS:CODEBEGIN:MOVAL,255MOVAH,1ADDAL,AHMOVAH,4CHINT21HCODEENDSENDBEGIN程序说明:程序执行过程中,AL=0FFH,AH=1H,AL=AL+AH。www.tup.com.cn南开大学朱耀庭7.1算术运算和逻辑运算对标记寄存器的影响图7-1所

4、示为加法运算结果示意图,从图7-1中可以看到,运算结果并不是预期的256,AL最大可以表示255,超过255时产生溢出,将不能正确显示。AL中显示0,而标志寄存器中,显示有进位标志CY。这一简短的例子说明,加法运算不只是把两个整数简单地相加,结果是否正确还要看标志位。减法、乘法以及除法中都会存在类似的问题。这就需要程序员经常地注意标志寄存器,以确保运算结果的正确性。www.tup.com.cn南开大学朱耀庭7.1算术运算和逻辑运算对标记寄存器的影响图7-1加法运算结果www.tup.com.cn南开大学

5、朱耀庭7.1算术运算和逻辑运算对标记寄存器的影响例7-2检查输入字符的后4位是否全为0。‘是’输出‘Y’,‘非’输出‘N’。设计思路:用INT21H的1号功能调用输入字符,用TEST指令测试低4位是否为0。源程序(Ex7-2.asm)如下:CODESEGMENTASSUMECS:CODEBEGIN:MOVAH,1INT21HTESTAL,0FHJELMOVAH,2MOVDL,'N'INT21HJMPEXITL:MOVAH,2MOVDL,'Y'INT21HEXIT:MOVAH,4CHINT21HCODEE

6、NDSENDBEGINwww.tup.com.cn南开大学朱耀庭7.1算术运算和逻辑运算对标记寄存器的影响例7-2检查输入字符的后4位是否全为0。‘是’输出‘Y’,‘非’输出‘N’。程序说明:可以使用多个数据测试上面的程序。从图7-2所示的示意图中可以看到,JE跳转时ZF=1,即标志寄存器标志位ZF为NZ,而TEST指令的结果会改变ZF的值。图7-2TEST指令www.tup.com.cn南开大学朱耀庭7.1算术运算和逻辑运算对标记寄存器的影响下面举例说明标志寄存器如何受运算指令的影响(1)ZF标志,零

7、标志。例如:MOVAX,1SUBAX,1;执行后结果为0,ZF=1例如:MOVAX,2SUBAX,1;执行后结果不为0,ZF=0(2)PF标志,奇偶标志。例如:MOVAL,1000BADDAL,11B;执行后,结果为00001011B,其中有3个1,奇数,则PF=0SUBAL,AL;执行后,结果为0,则0个1,偶数,PF=1www.tup.com.cn南开大学朱耀庭7.1算术运算和逻辑运算对标记寄存器的影响下面举例说明标志寄存器如何受运算指令的影响(3)SF标记,符号标记。例如:MOVAL,100000

8、01BADDAL,1;执行后,结果为10000010,最高位为1,因此SF=1(4)CF标志,进位标志。例如:MOVAL,98HADDAL,AL;执行到这里,AL=30H,CF=1,实际结果应为130HSUBAL,AL;执行到这里,AL=0H,CF=0,没有借位MOVAL,97HSUBAL,98H;做减法,要向高位借位,用CF来记录这个位,CF=1www.tup.com.cn南开大学朱耀庭7.1算术运算和逻辑运算对标记寄存器的影响下面举例说

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

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

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