第六章 分支结构程序设计.ppt
文本预览下载声明
第六章 分支结构程序设计;带着问题学习:;学习要点;;第六章 分支结构程序设计;任务:;Ch=‘a’?;;1.两路分支结构
2.多级分支结构
3.多路分支结构
;;;;6.2 控制转移类指令;控制转移类指令;6.2.1 无条件转移指令;用来确定转移指令及CALL指令的转向地址。;目标地址的寻址方式;目标地址的范围:段内;目标地址的范围:段间;段内转移、直接寻址;(1) 段内直接寻址;例: JMP NEAR PTR NEXT 近转移 -32768 ~ +32767
JMP SHORT NEXT 短转移 -128 ~ +127 ;段内转移、间接寻址;(2) 段内间接寻址
转向的有效地址是一个寄存器或存储单元的内容。
(可用除立即数以外的任何一种数据寻址方式得到)
例: (BX)=1256H (SI)=528EH TABLE=20A2H
(DS)=2000H (232F8H)=3280H (264E4H)=2450H
JMP BX ; (IP)=1256H
JMP TABLE[BX]
JMP WORD PTR TABLE[BX] ; (IP)=3280H
JMP [BX][SI]
JMP WORD PTR [BX][SI] ; (IP)=2450H;段间转移、直接寻址;code1 segment
……
jmp far ptr next
……
code1 ends;段间转移、间接寻址;(4) 段间间接寻址
用存储器中的两个相继字的内容取代CS 和 IP。
(存储单元的地址可用除立即数和寄存器以外的
任何一种数据寻址方式得到)
例: JMP DWORD PTR [INTERS+BX];无条件转移指令;无条件转移指令;6.2.2 条件转移指令;相对寻址方式;Jcc指令的分类;
(1) 根据单个条件标志的设置情况转移
格式 测试条件
JZ (JE) OPR ZF = 1
JNZ (JNE) OPR ZF = 0
JS OPR SF = 1
JNS OPR SF = 0
JO OPR OF = 1
JNO OPR OF = 0
JP OPR PF = 1
JNP OPR PF = 0
JC OPR CF = 1
JNC OPR CF = 0;
;(3) 比较两个带符号数,并根据比较结果转移 *
格式 测试条件
JL(JNGE) OPR SF?OF = 1
= JNL(JGE) OPR SF?OF = 0
= JLE(JNG) OPR (SF?OF)∨ZF = 1
JNLE(JG) OPR (SF?OF)∨ZF = 0
适用于带符号数的比较
(4) 测试CX的值,为0则转移
格式 测试条件
JCXZ OPR (CX) = 0;条件转移指令中的条件cc;1. 判断单个标志位状态;例6.2:JZ/JNZ指令;例6.3:JS/JNS指令;例6.4:JO/JN
显示全部