第章分支程序设计
第十章 分支程序设计
分支程序结构 L分支程序结构有两路分支与多路分支两种结构形式。 )两分支完成两种情况的选择处理,相当于高级语言中的I 于 HENELSE语句,如图5一所示。 条件 条件 T 程序段 程序段1 程序段2 两路分支程序结构图
第一节 分支程序结构 1.分支程序结构有两路分支与多路分支两种结构形式。 (1)两路分支完成两种情况的选择处理,相当于高级语言中的IFTHEN-ELSE语句,如图5一l所示
)多路分支完成多种情况的选择处理,相当于高级语言中的两路分支嵌 套结构、CASE语句 或SWCH语句,如图52所示 程序段1 [序段可 程序段n+1 1) 程序段1 程序段2 序 多路分程序结构图 (3)分支结构程序要求先进行条件判断,然后根据判断结果将程序的执行流程转 移到相应的 支上去,判断一次只可能有一路分支被选择
(2)多路分支完成多种情况的选择处理,相当于高级语言中的两路分支嵌 套结构、CASE语句 或SWITCH语句,如图5—2所示。 (3)分支结构程序要求先进行条件判断,然后根据判断结果将程序的执行流程转 移到相应的分 支上去,判断一次只可能有一路分支被选择
无条件转移指 L转彩指令分为无条件转移指令和条件转移指令两种。它们通过改变CS和IP,或 通过仅改 少P来实现转移。前者适用于段间转移,后者适用于段内转移 无条件转移指令的功能是将控制无条件地转移到操作数所指位置。 无条件转移指令包括JMP、CALL和RE「3条指令,本节只讨论JMP指令,CALL 和RE厂 令将在第7章子程序中讨论 瓜IP指令的格式为: JMP DOPD 其中,DOPD是转移地址,可以是标号,也可以是寄存器或存储器,前者称为 直接转移 后者称为间接转移 (1)段内直接短转移: JMP SHORTPTR标号 转移地址IP由当前IP,加8位位移量形成,只能在段内-128~127字节的范围 内转移。向 前转移可缺省 SHORT
第二节 无条件转移指令 1.转移指令分为无条件转移指令和条件转移指令两种。它们通过改变CS和IP,或 通过仅改 变IP来实现转移。前者适用于段间转移,后者适用于段内转移。 无条件转移指令的功能是将控制无条件地转移到操作数所指位置。 无条件转移指令包括JMP、CALL和RET 3条指令,本节只讨论JMP指令,CALL 和RET 指令将在第7章子程序中讨论。 瓜IP指令的格式为:JMP DOPD 其中,DOPD是转移地址,可以是标号,也可以是寄存器或存储器,前者称为 直接转移, 后者称为间接转移。 (1)段内直接短转移:JMP SHORTPTR标号 转移地址IP由当前IP,加8位位移量形成,只能在段内-128~127字节的范围 内转移。向 前转移可缺省SHORT
②2段内直接转移: JMP NEAR PTR标号 转彩地址IP由当前IP加16位位移量形成,转移位置可以在代码段内任 何位置 )段内间接转移: JMP WORD PTR寄存器或内存单元 转彩地址口位于一通用寄存器中或任一种存储器寻址方式确定。 (4)段间直接转移: JMPFARPTR标号 转移时同时修改IP与CS。标号必须定义为FAR属性。 5)段间间接转移: JMP FARPTR存储器 转移地址是内存中的一双字,高位字是转移地址的CS值,低位字是转 移地址的I值
(2)段内直接转移:JMP NEAR PTR标号 转移地址IP由当前IP加16位位移量形成,转移位置可以在代码段内任 何位置。 (3)段内间接转移:JMP WORD PTR寄存器或内存单元 转移地址口位于一通用寄存器中或任一种存储器寻址方式确定。 (4)段间直接转移:JMPFARPTR标号 转移时同时修改IP与CS。标号必须定义为FAR属性。 (5)段间间接转移:JMP FARPTR存储器 转移地址是内存中的一双字,高位字是转移地址的CS值,低位字是转 移地址的IP值