汇编语言程序设计(第二版)第4章.ppt

汇编语言程序设计(第二版)第4章.ppt

ID:56380125

大小:453.00 KB

页数:74页

时间:2020-06-14

汇编语言程序设计(第二版)第4章.ppt_第1页
汇编语言程序设计(第二版)第4章.ppt_第2页
汇编语言程序设计(第二版)第4章.ppt_第3页
汇编语言程序设计(第二版)第4章.ppt_第4页
汇编语言程序设计(第二版)第4章.ppt_第5页
资源描述:

《汇编语言程序设计(第二版)第4章.ppt》由会员上传分享,免费在线阅读,更多相关内容在PPT专区-天天文库

1、第4章分支与循环程序设计4.1条件标志位的设置规则4.2跳转类指令4.3分支程序设计4.4循环程序设计习题四4.1条件标志位的设置规则4.1.1CF──进位和借位标志CF主要用于记载两个数据相加或相减时,最高位向外的进位或借位情况,如果有进位或借位则CF被置1,否则置0。参与运算的数据可以是16位的,也可以是8位的。【例4.1】设AX=78C4H,BX=9F35H,判断下列指令执行后CF的值。(1)ADDAX,BX(2)ADDAH,AL(3)ADDAH,BL(4)SUBAX,BX(5)SUBBX

2、,BX(6)SUBAH,BH【解】(1)0111,1000,1100,0100+1001,1111,0011,0101────────────1,0001,0111,1111,1001(2)0111,1000+1100,0100───────1,0011,1100最左边的1是b7位向前的进位,故CF被置1。计算结果有17位,最左边的1是b15位(以最右边一位为b0位,依次向左,最高位是b15位)向前的进位,故CF被置1。(3)0111,1000+0011,0101───────1010,1101

3、b7位向前没有进位,故CF被清0。(4)0111,1000,1100,0100-1001,1111,0011,0101────────────1,1101,1001,1000,1111最左边的1表示不够减,b15位需要向前借位,故CF被置1。(5)1001,1111,0011,0101-1001,1111,0011,0101────────────0000,0000,0000,0000虽然相减结果为0,却也是够减的情况,故CF被置0。(6)0111,1000-1001,1111───────1,

4、1101,1001最左边的1表示不够减,第7位需要向前借位,故CF被置1。注意例4.1中并没有提及各数据是无符号数还是带符号数,不论编程人员对数据如何看待,ALU在加减运算设置CF时都是当作无符号数处理的。实质上,CF中记载了加法运算最高位向前的进位值(无进位可视为进0),或者是减法运算的借位值(不需要借位可视为借0)对于两个无符号数,如果相减后CF的值是1,表示不够减,当然就有“被减数小于减数”的结论;反之相减后CF为0则表示够减,可知“被减数大于或等于减数”。4.1.2SF──符号标志SF用

5、于记载两个有符号数运算结果的符号位。执行加减法运算时,运算结果的最高位的值会被复制到SF中。【例4.2】判断例4.1中各指令执行后SF的值。【解】参照例4.1相应题目的计算结果有:(1)两数相加,和的第15位是0,故SF被置0。(2)两数相加,和的第7位是0,故SF被置0。(3)两数相加,和的第7位是1,故SF被置1。(4)两数相减,差的第15位是1,故SF被置1。(5)两数相减,差的第15位是0,故SF被置0。(6)两数相减,差的第7位是1,故SF被置1。如果把两个带符号数相减,根据SF的设定

6、情况能否判定它们的大小关系呢?并非如此,比如例4.2中的第(6)小题,相减后SF为1表示差是负数,这应该说明“被减数比减数小”,但仔细观察两个操作数不难发现,以带符号数看待,被减数78H是正数,而减数9FH却是负数,当然是被减数大。出现这种现象的原因是相减的差已超出带符号数的表示范围。判断带符号数的大小关系还需要下面的OF标志位的配合。4.1.3OF──溢出标志如果CPU执行两个带符号数的加法或减法运算,结果超出了带符号数的表示范围,则把OF置1,这种现象称为带符号数加减运算溢出,没有超出范围则

7、把OF清0。那么,是不是对OF的设置都需要经过准确计算,然后与带符号数表示范围进行比较才能确定呢?其实计算机并不做范围检验,而是按表4.1中列出的情况进行设置的。表4.1加减法运算对OF的设置方法【例4.3】判断例4.1中各指令执行后OF的值。【解】参照表4.1,比较操作数及运算结果的正负号可知:(1)OF=0(2)OF=0(3)OF=1(4)OF=1(5)OF=0(6)OF=14.1.4ZF──零标志ZF的设置比较简单,如果运算结果为0,则ZF被置1,结果不为0则ZF被置0。【例4.4】判断例

8、4.1中各指令执行后ZF的值。【解】根据例4.1计算结果有,除第(5)小题使ZF置1外,其余题目都使ZF置0。加减法运算指令对4个标志位的设置都有具体规定,一条加法指令或一条减法指令在计算出结果的同时,还把4个标志位都根据运算情况设置了相应的值。编程者对各标志位应有所取舍,如果程序涉及的操作数是无符号数,应该根据CF和ZF的值做相应处理,如果操作数是带符号的,则应该看SF、OF和ZF。4.1.5MOV、ADD、SUB、MUL、DIV指令对标志位的影响(1)MOV指令不影响任何标志位,各标志位在M

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

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

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