1 / 34
文档名称:

《汇编程序设计分支》.ppt

格式:ppt   大小:316KB   页数:34页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

《汇编程序设计分支》.ppt

上传人:相惜 2022/8/5 文件大小:316 KB

下载得到文件列表

《汇编程序设计分支》.ppt

相关文档

文档介绍

文档介绍:第4章 汇编语言程序设计
一、概述
二、顺序程序设计
三、DOS系统功能调用
四、分支程序设计
五、循环程序设计
整理课件
DOS系统功能调用
系统功能调用方法
常用的DOS系统功能调用
⑴JZ/JE和JNZ/JNE:利用零标志ZF,判断结果是否为零(或相等)。 JZ/JE表示结果为零(或相等),则转移。
⑵JS和JNS:利用符号标志SF,判断结果是正是负, JS表示结果为负则转移。
⑶JO和JNO:利用溢出标志OF,判断结果是否产生溢出, JO表示溢出则转移。
⑷JP/JPE和JNP/JPO:利用奇偶标志PF,判断结果中“1”的个数是偶是奇。JP表示偶个数个1
⑸JC和JNC:利用进位标志CF,判断结果是否进位或借位。进位或借位为1则转移。
Jcc
例题
例题
例题
例题
例题
整理课件
比较无符号数高低
无符号数高低有4种关系:
⑴高于(不低于等于): JA ( JNBE )
⑵高于等于(不低于): JAE (JNB)
⑶低于(不高于等于):JB(JNAE)
⑷低于等于(不高于):JBE(JNA)
Jcc
整理课件
例:比较无符号数
比较无符号数大小,将较大的数存放AX寄存器。
cmp ax,bx ;比较ax和bx,(AX)-(BX)
jae next ;若ax≥bx,转移
xchg ax,bx ;若ax<bx,交换
next: ...
结果:AX保存较大的无符号数
整理课件
比较有符号数大小
两数的大小分成4种关系:
⑴大于(不小于等于): JG ( JNLE )
⑵大于等于(不小于): JGE (JNL)
⑶小于(不大于等于):JL(JNGE)
⑷小于等于(不大于):JLE(JNG)
Jcc
整理课件
例:比较有符号数
比较有符号数大小,将较大的数存放在AX寄存器。
cmp ax,bx ;比较ax和bx
jge next ;若ax≥bx,转移
xchg ax,bx ;若ax<bx,交换
next: ...
结果:AX保存较大的有符号数
注意:根据数的不同选取不同的指令
整理课件
条件转移指令中的条件cc
Jcc
实际虽然指令只有16条,但却有30个助记符
采用多个助记符,只是为了方便记忆和使用
SF
整理课件
三、分支程序设计
分支程序根据条件是真或假决定执行与否,判断的条件是各种指令,
单分支
双分支
多分支
如CMP、TEST等执行后形成的状态标志与条件转移指令Jcc联合可以实现分支控制。
用无条件转移指令JMP也可以实现分支控制。
整理课件
条件成立跳转到标号所在的指令执行,否则顺序执行分支语句体;
注意:选择正确的条件转移指令和转移目标地址
1、 单重分支
整理课件
1、 单分支
【 】编程求|X-Y|,
结果存于RESULT单元中,
设X和Y都为16位数。
DATA SEGMENT
X  DW -10
Y  DW 20
RESULT DW ?
DATA ENDS
STACK SEGMENT STACK
    DB 100 DUP(?)
STACK ENDS
CODE SEGMENT
   ASSUME CS:CODE,DS:DATA,SS:STACK
START:
   MOV AX,DATA
  MOV DS,AX
MOV AX,X
SUB AX,Y
JNS NONNEG
NEG AX
NONNEG: MOV RESULT,AX
MOV AH,4CH
INT 21H
CODE ENDS
END START
整理课件
2、双分支程序设计
条件成立跳转执行第2个分支语句体,否则顺序执行第1个分支语句体。注意第1个分支体后一定要有一个JMP指令跳到第2个分支体后
整理课件
2、双分支程序设计
【】 显示BX的最高位
shl bx,1
jnc one
mov dl,’1’
jmp two
one: mov dl,’0’
two: mov ah,2
int 21h
提示:条件转移指令的使用很关键,要根据不同的情况正确的选用
整理课件
多个条件对应各自的分支语句体,哪个条件成立就转入相应分支体执行。多分支可以化解为双分支或单分支结构的组合
3、多分支结构
AH=0
fuction0
Y
N
AH=1
fuction1
Y
N
AH=2
fuction