汇编语言第五章_(2)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

;与0进行比较 ;X≥0转A1 ;X <0时,-1→Y ;X>0转 ;X=0时,0→Y ;X>0,1→Y
汇集同一出口
作业:求三个带符号字数据中的最大值,并将最 大值存入MAX字单元中。要求画出流程图
程序如下: DATA SEGMENT X Y DW 00ABH DW –5
Z
MAX
DW 200
DW ?
5.5.3 跳转表法(121页) 可以用跳转表法实现CASE结构.
实现的关键是先要构成跳转表,
然后用无条件间接转移指令实现跳转。
跳转表法
跳转表法,表中顺序存放着进入各分 支处理程序的首地址或转移指令,称它们 为跳转表的元素。
1.跳转表中存放多分支程序偏移地址
2.跳转表中存放多分支程序的转移指令
例: 设程序有8种功能,它们入口地址分别 为SUB1~SUB8,用表内存放入口地址方法编 程,执行其中的“3”号功能(即SUB3)。
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 JLE L2 EXIT: MOV MAX,AX ;X>Z?
CODE
SEGMENT DB -10 DB ? ENDS
SEGMENT
ASSUME DS:DATA,CS:CODE
START:MOV AX,DATA MOV DS,AX
A1:
A2: EXIT: CODE
mov al,x CMP Al,0 JGE A1 MOV Y,-1 JMP EXIT JG A2 MOV Y,0 JMP EXIT MOV Y,1 MOV AH,4CH INT 21H ENDS END START
DATA SEGMENT BASE DW SUB1,SUB2,SUB3,SUB4,SUB5,SUB6,S源自文库B7,SUB8 BN DB 3 ; DATA ENDS STACK SEGMENT PARA STACK DW 30 DUP(0) STACK ENDS CODE SEGMENT ASSUME CS: CODE, DS: DATA, SS:STACK BEGIN: MOV AX,DATA MOV DS, AX MOV AL, BN MOV AH, 0 DEC AL ;建索引号 SHL AL, 1 ;取功能3的表内偏移量 (3-1)*2 MOV BX, OFFSET BASE ADD BX, AX ;求功能3的有效地址 MOV BX, [BX]
上机作业 1. 试编制将从键盘上输入的大写字母转
换为小写字母,并在显示器上显示出来, 按ESC键结束转换的完整程序。
SUB1: .... JMP EXIT ..... SUB2: .... JMP EXIT ..... SUB3: ....... JMP EXIT ..... ..... SUB8: ..... JMP EXIT EXIT: MOV AH,4CH INT 21H CODE ENDS END BEGIN
5.3.4
分支程序设计方法
例1
输入姓名程序,现改为判断对错,
对,结束程序,否则 继续输入。why2.asm
【例2】编写计算下面函数值的程序:X的值在-128和 127之间 1 X>0 Y= 0 X=0 -1 X<0 设输入数据为X、 输出数据Y, 且皆为字节变量。 程序流程图 如图所示。
DATA X Y DATA
相关文档
最新文档