文档详情

汇编语言第五章_计本.ppt

发布:2017-07-07约4.36千字共38页下载文档
文本预览下载声明
第五章 循环和分支程序设计   顺序结构程序设计 具有顺序结构的 程序叫做简单程序。 简单程序执行的特 点是其中的指令或语句 是按顺序执行的,没有 分支或循环。 复习: XLAT 指令的功能是什么? CMP指令格式? (AL)?((BX)+(AL)) 5.2 分支程序设计 分支程序的结构有两种形式: 第一种形式称为两路分支 两路分支结构相当于高级语言中的IF—THEN—ELSE语句 第二种形式称为多路分支 多路分支相当于高级语言中的两路分支组合结构或CASE语句。 1.无条件转移指令 JMP 动画 格式:JMP DST 功能:无条件转移到DST所指向的地址。 说明: DST为转移的目标地址(或称转向地址),使用与转移地址有关的寻址方式可以形成目标地址. 2.条件转移指令(86页) 动画 这类指令通常是跟在影响标志的指令之后。 指令本身并不影响标志。 条件转移指令的通用汇编格式: J X X LABEL J X X LABEL 功能:如果条件为真,则转向标号处,否则顺序 执行下一条指令。 说明: 在8086~80286中,该地址应在当前IP值的-128~+127范围之内,即只能使用与转移地址有关的寻址方式的段内短转移格式,其位移量占用一个字节。 ⑴ 简单条件转移指令 这组指令根据一个标志位的设置情况决定是否转移。 例. 比较AX和BX寄存器中的内容,若相等执行ACT1,不等执行ACT2。用2种方法 CMP AX,BX JE ACT1 ACT2: ... … ACT1: … ⑵ 带符号数的条件转移指令(89页) 利用表5-3中提供的指令,可以实现两个带符号数的比较转移。 ⑶ 无符号数的条件转移指令(89页) 利用表5-4中提供的指令,可以实现两个无符号数的比较转移。 编程在屏幕上显示1行“HELLO” 见exe_gcuo.asm 思考题 在屏幕上显示10行“HELLO”? 思考题 (1)跳转表法 跳转表法,表中顺序存放着进入各分支处理程序的首地址或转移指令,称它们为跳转表的元素。 1.跳转表中存放多分支程序偏移地址 2.跳转表中存放多分支程序的转移指令 例: 设程序有8种功能,它们入口地址分别为SUB1~SUB8,用表内存放入口地址方法编程,执行3号功能(即SUB3) 程序如下: DATA SEGMENT X DW 00ABH Y DW –5 Z DW 200 MAX DW ? DATA ENDS CODE SEGMENT ASSUME DS:DATA,CS:CODE Start: ___________ ___________ CMP AX,Y JG L1 ;X>Y? MOV AX,Y ;Y>Z? CMP AX,Z JG EXIT L2: MOV AX,Z JMP EXIT L1: CMP AX,Z ;X>Z? JLE L2 EXIT: MOV MAX,AX 5.2.3 跳转表法 可以用跳转表法实现CASE结构. 实现的关键是先要构成跳转表, 然后用无条件间接转移指令实现跳转。 * * ASSEMBLY LANGUAGE 结构程序有三种基本结构: 顺序结构、分支结构和循环结构。 在汇编语言程序设计过程中,程序模块化是通过子程序或过程来实现的。 顺序结构 开始 结束 上机作业: 【例】已知某班学生的英语成绩按学号(从1开始)从小到大的顺序排列在TAB表中,要查的学生的学号放在变量NO中,查表结果放在变量ENGLISH中。编写程序如下: STACK SEGMENT STACK DB 200 DUP(0) STACK ENDS DATA SEGMENT TAB DB 80,85,86,71,79,96 DB 83,56,32,66,78, 84 NO DB 10 ENGLIST DB ? DATA ENDS CODE SEGMENT ASSUME DS:DATA,SS:STACK,CS:CODE BEGIN:MOV AX,DATA MOV DS ,AX LEA BX,TAB MOV AL,NO
显示全部
相似文档