第五篇分支程序设计.docx
《第五篇分支程序设计.docx》由会员分享,可在线阅读,更多相关《第五篇分支程序设计.docx(31页珍藏版)》请在冰豆网上搜索。
第五篇分支程序设计
第五章分支程序设计
练习题
5.4.1 单项选择题
1.双分支程序设计中实现分支的指令是( )指令。
A.条件转移 B.无条件转移 C.移位 D.算术运算
2.条件判断转移是按照标志寄放器中的标志位来判断的,用来实现条件判断转移标志位共有( )位。
A.4 B.5 C.6 D.9
3.条件转移指令的转移范围是( )。
A.0~65535 B.~32768~32767 C.0~255 D.-128~127
4.用一条条件转移指令一次可实现( )个分支。
A.2 B.3 C.4 D.多
5.下列指令会影响标志位的指令是( )。
A.JMP L B.JC L C.MOV AL,L D.SHL AL,1
6.当两个无符号数进行相加时,执行“JC L”指令表示( )转移。
A.结果溢出 B.结果为0 C.结果为奇 D.结果为负
7.当两个无符号数进行比较时,执行“JA L”指令表示( )转移。
A.CF=0且ZF=0 B.CF=0且ZF=1
C.CF=1且ZF=0 D.CF=1且ZF=1
8.当“CMP AX,BX”比较时,执行“JG L”指令后转移列L,则表明( )。
A.AX>BX B.AX=BX C.AX<BX D.AX≥BX
9.若是0100H单元寄存条件转移指令的操作码,0101H单元寄存条件转移指令的相对位移量13H,那么转移后的指令的偏移地址为( )。
A、0102H B、0113H C、0115H D、00FEH
10.下列叙述不正确的是( )。
A.有符号数比较后的条件转移指令可采用JG、JL、JGE和JLE指令。
B.无符号数比较后的条件转移指令可采用JA、JB、JNE和JBE指令。
C.有符号数比较后判断溢出用JO和JNO指令。
D.无符号数比较后判断溢出用JS和JNS指令。
5.4.2 多项选择题
1.分支程序结构的形式有( )。
A.单分支结构 B.双分支结构 C.多分支结构 D.无分支结构
2.在分支结构的程序中,分支程序的流程一般有( )。
A.判断转移框 B.循环框 C.产生条件框 D.分支程序段框
3.在下列的选项中,能够用来产生条件的选项有( )。
A.数据传送指令B.算术运算指令 C.逻辑运算指令D.转移指令
4.在多分支程序设计中,常常利用的方式有( )。
A.地址表法 B.计数法 C.转移表法 D.逻辑分解法
5.执行完指令“CMP AX,100”后,若是要实现AX寄放器中的无符号数高于100则转移到L,应该利用的指令有( )。
A.JNS L B.JNC L C.JA L D.JNBE L
6.执行完指令“CMP AX,0”后,若是要实现AX寄放器中的内容为正数则转移到L,应该利用的指令有( )。
A.JAE L B.JGE L C.JNS L D.JNC L
7.若是用“JS P”指令实现AX寄放器中的内容为负数转移,产生条件的指令可用( )。
A.AND AX,8000H B.CMP AX,8000H
C.TEST AX,8000H D.CMP AX,0
8.若是用要判断AX寄放器中的内容为100H则转移到P,如下的选项有( )。
A.CMP AX,100H B.SUB AX,100H
JZ P JE P
C.AND AX,100H D.XOR AX,100H
JZ P JZ P
9.设AX寄放器中的内容为有符号数,若是用要判断AX寄放器中的内容小于100H则转移到P,如下的选项有( )。
A.CMP AX,100H B.SUB AX,100H
JL P JNG P
C.CMP AX,100H D.SUN AX,100H
JNGE P JNAE P
10.若是在TAB字单元中寄存的是某程序的入口地址,要转移到该程序的的选项有( )。
A.LEA BX,TAB B.MOV BX,0
JMP BX JMP TAB[BX]
C.JMP TAB D.JMP DWORDPTR[TAB]
5.4.3 填空题
1.当两个有符号数相减后,若要判断大于等于则转、需用 、 或 指令。
2.在分支程序的结构中,其流程图一般由 、 、定向和 四个部份组成。
3.转移表法分支程序设计中,其程序转移表中寄存的是 。
4.地址表法分支程序设计中,其地址表中寄存的是 。
5.逻辑分解法程序设计一般是利用多条 指令实现多分支程序设计的。
6.条件转移指令是分支程序设计中最常常利用的指令之一,这种指令大体上能够分为三种,它们是 条件转移, 条件转移和 条件转移指令。
7.条件转移指令的执行,是当条件 时则转移。
8.在执行条件转移指令前,必需要执行产生条件码的指令,然后才能进行条件判断转移,而一般的数据传送指令 影响条件码(标志位)。
9.当两个数进行比较后,执行 指令表示结果为零转L。
10.为了实现程序的多路分支,通常利用 、 和 三种方式的分支程序设计方式。
5.4.4 程序分析题
1.现有程序如下:
DATA SEGMENT
X DB 0ABH
FLAG DB 0
DATA ENDS
CODE SEGMENT
ASSUME CS:
CODE,DS:
DATA
START:
MOV AX,DATA
MOV DS,AX
MOV AL,X
CMP AL,0
JGE L
MOV FLAG,0
JMP EXIT
L:
MOV FLAG,1
EXIT:
MOV AH,4CH
INT 21H
CODE ENDS
END START
请回答:
(1)该程序完成什么功能?
(2)程序执行完后FLAG中的内容是多少?
2.现有程序如下:
DATA SEGMENT
BUF DB 0
DATA ENDS
CODE SEGMENT
ASSUME CS:
CODE,DS:
DATA
START:
MOV AX,DATA
MOV DS,AX
MOV AH,1
INT 21H
CMP AL,61H
JB N
CMP AL,7AH
JA N
SUB AL,20H
N:
MOV BUF,AL
MOV AH,4CH
INT 21H
CODE ENDS
END START
请回答:
(1)该程序完成什么功能?
(2)若是要将“CMP AL,7AH”改成“CMP AL,7BH”,则相应的指令
“JA N”应改成何指令?
3.现有程序如下:
DATA SEGMENT
A DB 23
B DB 0F0H
C DB 0
DATA ENDS
CODE SEGMENT
ASSUME CS:
CODE,DS:
DATA
START:
MOV AX,DATA
MOV DS,AX
MOV AL,A
CMP AL,B
JZ L
JG M
MOV C,-1
JMP EXIT
L:
MOV C,0
JMP EXIT
M:
MOV C,1
EXIT:
MOV AH,4CH
INT 21H
CODE ENDS
END START
请回答:
(1)该程序完成什么功能?
(2)程序运行后,C中的内容是什么?
4.现有程序如下:
DATA SEGMENT
X DW 7000H
Y DW 9000H
DATA ENDS
CODE SEGMENT
ASSUME CS:
CODE,DS:
DATA
START:
MOV AX,DATA
MOV DS,AX
MOV AX,X
SUB AX,Y
JO L
MOV DL,‘N’
JMP EXIT
L:
MOV DL,‘Y’
EXIT:
MOV AH,2
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END START
请回答:
(1)请程序完成什么功能?
(2)程序执行完后,显示输出的结果如何?
5.现有程序如下:
DATA SEGMENT
BUF1 DB ‘ABCDAC’
C1 = $-BUF1
BUF2 DB ‘C’
BUF3 DW 0
DATA ENDS
CODE SEGMENT
ASSUME CS:
CODE,DS:
DATA
START:
MOV AX,DATA
MOV DS,AX
MOV ES,AX
LEA DI,BUF1
MOV CX,C1
MOV AL,BUF2
CLD
REPNE SCASB
JNZ N
MOV DL,‘Y’
MOV AH,2
INT 21H
DEC DI
MOV BUF3,DI
JMP EXIT
N:
MOV DL,‘N’
MOV AH,2
INT 21H
EXIT:
MOV AH,4CH
INT 21H
CODE ENDS
END START
请回答:
(1)该程序完成什么功能?
(2)程序运行后,BUF3中的内容是什么?
显示输出是什么?
6.现有程序如下:
DATA SEGMENT
BUF DB 23,125,96
DATA ENDS
CODE SEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOV AX,DATA
MOV DS,AX
LEA SI,BUF
MOV AL,[SI]
MOV BL,[SI+1]
MOV CL,[SI+2]
CMP AL, BL
JAE N1
XCHG AL, BL
N1:
CMP AL, CL
JAE N2
XCHG AL, CL
N2:
CMP BL, CL
JAE N3
XCHG BL, CL
N3:
MOV [SI], AL
MOV [SI+1], BL
MOV [SI+2], CL
MOV AH, 4CH
INT 21H
CODE ENDS
END START
请回答:
(1)该程序完成什么功能?
(2)程序运行后BUF中的内容依次是什么?
7.现有程序如下:
DATA SEGMENT
X DB 4FH
BUF DB 2DUP(0)
DATA ENDS
CODE SEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOV AX,DATA
MOV DS,AX
MOV AL,X
MOV CL,4
SHR AL,CL