《计算机组成原理与汇编语言》课程电子教案(PPT课件讲稿)第十章 分支程序设计

第章分支程序设计
第十章 分支程序设计

分支程序结构 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值

例5叫】P指令举例 MP SHORTPTR L1;段内短转移 MP NEAR PTR MP DWORD PTR【B×;段间间接转移 MPWORDPTRBX;段内间接转 IP DWORD PTRIBP 专移到地址在堆栈段的程序 P DWORD PTRIBP](D:段间间接转移 令对标志位无影响。 MP指令不能构成分支程序,但在分支程序设计中往往需要用它将各 分支的出口汇集到一起。另 外当条件转移指令的转移范围超过-128~+127字节时,也往往要借 了MP指虽然变化不少,大多数时候只用到“MP标号”的简单形
例5-1】JMP指令举例。 C1)JMP SHORTPTR L1;段内短转移 (2)JMP NEAR PTR L2;段内直接转移 (3)JMPFARPTRL3;段间直接转移 (4)JMP DWORD PTR【Bx];段间间接转移 (5)JMPWORDPTRBX;段内间接转移 (6)JMP DWORD PTR[BP+12];转移到地址在堆栈段的程序 (7)JMP DWORD PTR[BP]【DI];段间间接转移 JMP指令对标志位无影响。 JMP指令不能构成分支程序,但在分支程序设计中往往需要用它将各 分支的出口汇集到一起。另 外当条件转移指令的转移范围超过-128~+127字节时,也往往要借 助JMP指令来实现预定的转移。 JMP指令虽然变化不少,但大多数时候只用到“JMP标号”的简单形 式

第3条件转移指令 1概述 无条件转移指令不同,条件转移指令是根据前面形成的条件 来确定转移去向。 条件转移指含的条件主要电标志寄存器给定,根据zECF、SE OF CMP、TEST指令常用于形成转移的条件。CX的值是 为0也常表示转移条件。 (3)条件转移指令共有19条,分为简单条件转移指令、无符号数条 件转移指 数条件转移指令及CX条件转移指令4类。 (4)所有条件转移只能是段内直接短转移,而且与]P指令一样不影 响狂何标志位 (5)条件转移指令的一般格式为:条件转移指令助记符短标号
第3节 条件转移指令 1.概述 (1) 与无条件转移指令不同,条件转移指令是根据前面形成的条件 来确定转移去向。 (2)条件转移指令的条件主要由标志寄存器给定,根据ZF、CF、SF、 OF及PF等标志位的值来转移。能改变这些标志位的运算和指令均可形 成转移条件,CMP、TEST指令常用于形成转移的条件。CX的值是否 为0也常表示转移条件。 (3) 条件转移指令共有19条,分为简单条件转移指令、无符号数条 件转移指令、符号数条件转移指令及CX条件转移指令4类。 (4)所有条件转移只能是段内直接短转移,而且与JMP指令一样不影 响任何标志位。 (5)条件转移指令的一般格式为:条件转移指令助记符短标号

2简单条件转移指 简单条件转移指令是仅取决于2、CF、SF、OF及PF中某一标志位的条件 转移指 志ZCF、SFOF及PF的值可以表示10种状态,因而设置了10条简单条 件转移指令,见 表5-1。 (例52】简单条件转移指令举例。 CMP AX, 0 J山AX为0时转L1 ADD AX, 1234H j2;溢出时转L2 表51简单条件转移指令 助记符功能转移条作勒记功能 转移条件 JC有进位(或借位)时转移cF1|Ns结果为正数时转移 SF=0 NC无进位(或借位)时转移cF=00有溢出时转移 OF=1 丿ZJE|结果为零/相等时转移 ZF=1|N0无溢出时转移 OF=0 NZNE结果不为零/不相等时转移2F0|PE偶校验时转移 PF= Is|结果为负数时转移 sF=1|NP』Po奇校验时转移 PF=0
2.简单条件转移指令 简单条件转移指令是仅取决于ZF、CF、SF、OF及PF中某一标志位的条件 转移指令。标 志ZF、CF、SF、OF及PF的值可以表示10种状态,因而设置了10条简单条 件转移指令,见 表5-1。 【例5—2】简单条件转移指令举例。 CMP AX,0 JELl;AX为0时转L1 ADD AX,1234H JOL2;溢出时转L2

3无符号数条件转移指令 无符号数条件转移指令视比较对象为无符号数,往往跟在比较指令后 对无符号数条件转移指令的“比较”用高于( Above)、低手(BeO和等 于(Equa 示,见表52,表中A、B为无符号数 表52无符号数条件转移指令 助记符 功能 转移条件 JAJNBE高于不低于且不等于(即A>B)时转移 CF0且ZF=0 JAEJNB高于等于不低于(即A≥B)时转移 CF=0或ZF=1 BNAE低于不高于且不等于(即A<B)时转移 CF=1且ZF=0 JBEJNA低于等于不高于(即A≤B)时转移 CF=或ZF=1 例5-3】X、Y为无符号数,计算XY 程序段如下 MOV AX,Ⅹ CMP AX,Y比较 JAELLL XCHG AX,Y:如果AX<Y,交换AX、Y LLL: SUBAX, Y
3.无符号数条件转移指令 无符号数条件转移指令视比较对象为无符号数,往往跟在比较指令后。 对无符号数条件转移指令的“比较”用高于(Above)、低于(BelOW)和等 于(Equal) 表示,见表5—2,表中A、B为无符号数。 【例5—3】X、Y为无符号数,计算l X-Y l。 程序段如下: MOV AX,X CMP AX,Y比较 JAELLL XCHG AX,Y:如果AX<Y,交换AX、Y LLL:SUBAX,Y

4符号数条件转移指令 当要根据两个符号数的大小关系决定是否转移时,必须选用符号数条件 转彩指令 对符号数条件转移指令的“比较”用大于( Greater)、小于(Les和等于 (Equal) 以示与无符号数条件转移指令的区别,见表53,表中A、B为两个符 表53符号数条件转移指令 表53符号数条件转移指令 助记符 功能 转移条件 INE大于不小于且不等于(即A8)时转移 SF=OF且ZF=0 JGE/JNL大于等于不小于(即A≥B)时转移 SF=OF或ZF=1 LNGE小于不大于且不等于(即A<B)时转移 SF≠OF且ZF0 LENG小于等于不大于(即A≤B)时转移 SF≠OF或ZF=1
4.符号数条件转移指令 当要根据两个符号数的大小关系决定是否转移时,必须选用符号数条件 转移指令。 对符号数条件转移指令的“比较”用大于(Greater)、小于(Less)和等于 (Equal)表示, 以示与无符号数条件转移指令的区别,见表5—3,表中A、B为两个符号 数。 表5—3符号数条件转移指令
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《计算机组成原理与汇编语言》课程电子教案(PPT课件讲稿)第十一章 循环程序设计.ppt
- 《计算机组成原理与汇编语言》课程电子教案(PPT课件讲稿)第十四章 现代计算机技术.ppt
- 《计算机组成原理与汇编语言》课程电子教案(PPT课件讲稿)第十三章 高级宏汇编语言.ppt
- 《计算机组成原理与汇编语言》课程电子教案(PPT课件讲稿)第十二章 子程序设计.ppt
- 《计算机组成原理与汇编语言》课程电子教案(PPT课件讲稿)第三章 指令系统.ppt
- 《计算机组成原理与汇编语言》课程电子教案(PPT课件讲稿)第七章 学习机简介.ppt
- 《计算机组成原理与汇编语言》课程电子教案(PPT课件讲稿)第六章 外部设备.ppt
- 《计算机组成原理与汇编语言》课程电子教案(PPT课件讲稿)第九章 顺序程序设计.ppt
- 《计算机组成原理与汇编语言》课程电子教案(PPT课件讲稿)第二章 运算器.ppt
- 《计算机组成原理与汇编语言》课程电子教案(PPT课件讲稿)第八章 汇编语言基础.ppt
- 《C语言(C++)程序设计》第9章 文件.ppt
- 《C语言(C++)程序设计》第8章 位运算.ppt
- 《C语言(C++)程序设计》第7章 结构体、联合体和枚举类型.ppt
- 《C语言(C++)程序设计》第6章 指针和引用.ppt
- 《C语言(C++)程序设计》第5章 函数与预处理.ppt
- 《C语言(C++)程序设计》第4章 数组.ppt
- 《C语言(C++)程序设计》第3章 结构化程序设计.ppt
- 《C语言(C++)程序设计》第2章 数据类型及表达式.ppt
- 《C语言(C++)程序设计》第1章 C语言绪论第1章.ppt
- 《C语言(C++)程序设计》第10章 C++面向对象程序设计.ppt
- 《计算机组成原理与汇编语言》课程电子教案(PPT课件讲稿)第四章 控制器.ppt
- 《计算机组成原理与汇编语言》课程电子教案(PPT课件讲稿)第五章 存储体系结构.ppt
- 《计算机组成原理与汇编语言》课程电子教案(PPT课件讲稿)第一章 计算机系统概论.ppt
- 《AUTOCAD 2007教程》课程教学课件(PPT讲稿,共十章).ppt
- 湖南省第二届“软考杯”大学生程序设计大赛试题.pdf
- 湖南省首届“湘邮科技杯”大学生程序设计大赛试题.pdf
- 21世纪高等院校规划教材:《数据库基础―Access2003 应用教程》第三章 查询.ppt
- 21世纪高等院校规划教材:《数据库基础―Access2003 应用教程》第二章 建立数据库.ppt
- 21世纪高等院校规划教材:《数据库基础―Access2003 应用教程》第九章 数据库的安全.ppt
- 21世纪高等院校规划教材:《数据库基础―Access2003 应用教程》第六章 数据访问页.ppt
- 21世纪高等院校规划教材:《数据库基础―Access2003 应用教程》第七章 宏的设计与应用.ppt
- 21世纪高等院校规划教材:《数据库基础―Access2003 应用教程》第八章 VBA的设计与应用.ppt
- 21世纪高等院校规划教材:《数据库基础―Access2003 应用教程》第十一章 计算机等级考试指南.ppt
- 21世纪高等院校规划教材:《数据库基础―Access2003 应用教程》第十章 数据库综合应用实例.ppt
- 21世纪高等院校规划教材:《数据库基础―Access2003 应用教程》第四章 报表.ppt
- 21世纪高等院校规划教材:《数据库基础―Access2003 应用教程》第五章 窗体.ppt
- 21世纪高等院校规划教材:《数据库基础―Access2003 应用教程》第一章 数据库基础知识.ppt
- 21世纪高等院校规划教材:《数据库基础―Access2003 应用教程》封面.ppt
- 普通高等教育“十一五”国家级规划教材:《建筑CAD》PPT教学课件(共八章)(陕晋军).ppt
- 《C语言》课程教学课件(PPT讲稿)第十章 指针.ppt