版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
分支程序设计分支程序结构双分支(1)判定条件分支程序段1分支程序段2双分支(2)判定条件分支程序段2多分支程序判定条件程序段1程序段2程序段n…双分支程序
1一般结构
编写步骤
(1)产生条件
(2)测试定向标号开始程序段1产生条件条件满足否分支程序程序段2结束开始程序段1产生条件条件满足否分支程序程序段2结束结构1结构2开始程序段1条件满足否分支程序段2分支程序1程序段2结束
双分支程序的程序设计
1.比较两个无符号数的大小,将大数放入
max单元结束y开始X1
ALX1-X2>=0NX2
ALAL
(MAX)DATA
SEGMENTSOURCE
DB
X1,X2MAX DB
?DATA
ENDSCODE
SEGMENTASSUME
CS:CODE,DS:DATAMOV
AX,DATAMOV
DS,AXMOV
AL,SOURCECMP
AL,SOURCE+1JNC
BRANCHMOV
AL,SOURCE+1BRANCH:MOV
MAX,ALCODE
ENDSEND
2.在一个字符串中查找另一个特定的字符,例如“$”。当找到时,将字符串中“$”字符所在的单元地址(偏移地址)存储在内存中;否则,将0存储在此地址单元中。分析:DATASEGMENTCHAR
EQU
‘$’‘THIS
A
EXAMPLE’••PTRN
DB
CHARADDR
DW
?COUNT
EQU
19DATA
ENDS•开始字符串首地址
DI‘$’
AL字符串长度
CXSCAS搜索找到$吗?1
DIDI-1
DI将$地址存入内存结束11CODE
SEGMENTASSUME
CS:CODE,DS:DATASTART:MOV
AX,DATAMOV
DS,AXMOV
DI,OFFSET
PTRNMOV
AL,CHARMOV
CX,COUNTREPNE
SCASBJZ
PASTPRMOV
DI,1PASTPR:DEC
DIMOV
CHRADDR,DICODE
ENDSEND
START•3.若需对某单位职工人数中的男性和女性人数分别进行统计。在人口属性统计表中,男性用“0”表示,女性用“1”表示,要求编程实现。•分析:•DATA
SEGMENT•BLOCK
DB
0,1,0,1,1,…,1•MAN
DW
?•WOMAN
DW
?•COUNT EQU
2000•DATA
ENDSCODE
SEGMENTASSUME
CS:CODE,DS:DATAMOV
AX,DATAMOV
DS,AX••••MOV
CX,COUNTMOV
SI,0MOV
MAN,0MOV
WOMAN,0AGAIN:
MOV
AL,BLOCK[SI]CMP
AL,0JNZ
WOMPROINC
MANJMP
A1WOMPRO:
INC
WOMANA1: INC
SICODELOOP
AGAINMOV
AH,4CHINT
21H ENDSEND3.多分支程序设计条件=?程序段1程序段1程序段1…1转移表法多分支程序设计
转移指令在一张表中,称为转移表。进行多分支转移时,当前条件的偏移量加上表首地址作为转移地址,转移到相应位置。假定系统中有很多事务要处理,每一个事务处理对应一个处理程序。而处理的事务若用模式4.模式模式字
•
入口地址•••模式10来模区式分0
,•每个*模**式*0对00应•有个M模OD式E
字,模式字和事模务式处1
理0程序入口地址0的对应关系如表,模式字…的范围•是0~*1*0*,*0仅00占•用一MO字D节E节E
的低4位。要求按当前1模式字用转移1表法实现多路分支。•
…
•
…•
****101
•
MODE0
10得到模式字保留模式字低4位模式字=?=0模式0=1模式1模式10…=10LEA
BX,BRATABMOV
AH,0AND
AL,0FHADD
AX,AXADD
BX,AXJMP
BXBRATAB:JMP
SHORT
MODE0JMP
SHORT
MODE1:JMP
SHORT
MODE10:MODE0:模式0处理程序段::MODE10:模式10处理程序段•3.2地址表法多分支程序设计
5.假定将各分支程序进行编号,若存在0,1,…,N的N+1个分支程序。现根据当前的编号,转入到当前的分支程序。若各分支程序的入口地址分别为:
ADDR0,ADDR1,…,ADDRN.以地址表法实现分支。分析:地址表,表地址开始程序编号
AL程序偏移地址
SISI指向的单元
BXJMP
BXADDR0ADDR1ADDRN…DATA
SEGMENTNUM
DBADTABNDW
ADDR0,ADDR1,…,ADDRNDATACODEENDSSEGMENTASSUME
CS:CODE,DS:DATAMOV
AX,DATAMOV
DS,AXMOV
AH,0•MOV
AL,NUMADD
AX,AXMOV
SI,AXMOV
BX,ADTAB[SI]JMP
NEAR
PTR
BX:ADDR0: 分支程序段0:ADDR10:分支程序段10••:CODE
ENDSEND3.3逻辑分解法多分支程序设计
6.若AL寄存器中存放了当前外部有否中断请求的情况。AL中的每一位对应一个中断源的请求情况。若有中断请求,该位为1,否则,无中断请求。若某一种断源有中断请求,则转向相应的中断处理程序。分析:条件=X1?条件=X2?条件=XN?:程序段1程序段2程序段NYAL的位号中段程序入口地址0R01R12R23R34R45R56R67R7ROR
AL,1JC
R0ROR
AL,1JC
R1ROR
AL,1JC
R2ROR
AL,1JC
R3ROR
AL,1JC
R4ROR
AL,1JC
R5ROR
AL,1JC
R6ROR
AL,1JC
R7:3.4多分支程序设计举例例7:符号函数1
当X>0Y=
0-1X=0X<0假设X存放在XX单元,Y存放在YY单元
8.已知两个整数变量A和B,编写完成下列操作的程序:
1)若两数中有一个是奇数,则将奇数存入
ABUF,偶数存入BBUF。
2)若两个数均为奇数,则两数分别加1,并存回原变量处。3)若两个数均为偶数,则两变量不变。分析:奇偶的判断B是偶数吗?NA偶B奇,互换YA奇B偶B是偶数吗?NAB奇,加1YA,B同为奇偶数吗?NYA偶B偶DATA
SEGMENTABUF
DB
X1BBUFDATACODEDB
X2ENDSSEGMENTASSUME
CS:CODE,DS:DATASTART:MOV
AX,DATA••••MOV
DS,AXMOV
AL,ABUFMOV
BL,BBUFXOR
AL,BXTEST
AL,1JZ
CLASSTEST
BL,1JZ
EXITXCHG
BL,ABUFMOV
BBUF,BLJMP
EXITCLASS:TEST
BL,1JZ
EXITINC
ABUFINC
BBUFCODE
ENDSEND
STARTXX
ALAL>=0-1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年澧县医疗事业单位人员招聘考试备考试题及答案解析
- 2026年洛南县带编教师招聘笔试备考题库及答案解析
- 2026年山阴县社区工作者招聘笔试备考试题及答案解析
- 2026年南陵县医疗事业单位人员招聘笔试模拟试题及答案解析
- 2026年景宁畲族自治县带编教师招聘笔试备考题库及答案解析
- 2026年仲巴县医疗事业单位人员招聘考试备考题库及答案解析
- 2026年彭阳县医疗事业单位人员招聘考试备考题库及答案解析
- 2026年黎城县医疗事业单位人员招聘考试备考题库及答案解析
- 2026年台江县社区工作者招聘笔试模拟试题及答案解析
- 2026年镇宁布依族苗族自治县社区工作者招聘笔试备考题库及答案解析
- 2025年黑龙江省哈尔滨市法官逐级遴选考试题及答案
- 政务礼仪培训
- 抵御和防范非法宗教活动
- 全国焊工考试题库1500题及答案
- T∕CISIA 015-2025 生物刺激剂 术语与分类
- 煤矿单轨吊考试试卷(2篇)
- 2025版《中国泌尿外科疾病诊断治疗指南》
- 奇妙的盐的有关课件
- 订单评审管理办法流程
- 2024版2025秋新版小学道德与法治三年级上册全册教案教学设计含反思
- 2025年四川高速公路建设开发集团有限公司管理岗位毕业生招聘考试笔试试卷【附答案】
评论
0/150
提交评论