第五章分支程序设计.docx
- 文档编号:26177377
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:31
- 大小:22.96KB
第五章分支程序设计.docx
《第五章分支程序设计.docx》由会员分享,可在线阅读,更多相关《第五章分支程序设计.docx(31页珍藏版)》请在冰豆网上搜索。
第五章分支程序设计
第五章分支程序设计
练习题
5.4.1单项选择题
1.双分支程序设计中实现分支的指令是()指令。
A.条件转移B.无条件转移C.移位D.算术运算
2.条件判断转移是根据标志寄存器中的标志位来判断的,用来实现条件判断转移标志位共有()位。
A.4B.5C.6D.9
3.条件转移指令的转移范围是()。
A.0~65535B.~32768~32767C.0~255D.-128~127
4.用一条条件转移指令一次可实现()个分支。
A.2B.3C.4D.多
5.下列指令会影响标志位的指令是()。
A.JMPLB.JCLC.MOVAL,LD.SHLAL,1
6.当两个无符号数进行相加时,执行“JCL”指令表示()转移。
A.结果溢出B.结果为0C.结果为奇D.结果为负
7.当两个无符号数进行比较时,执行“JAL”指令表示()转移。
A.CF=0且ZF=0B.CF=0且ZF=1
C.CF=1且ZF=0D.CF=1且ZF=1
8.当“CMPAX,BX”比较时,执行“JGL”指令后转移列L,则表明()。
A.AX>BXB.AX=BXC.AX<BXD.AX≥BX
9.如果0100H单元存放条件转移指令的操作码,0101H单元存放条件转移指令的相对位移量13H,那么转移后的指令的偏移地址为()。
A、0102HB、0113HC、0115HD、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.执行完指令“CMPAX,100”后,如果要实现AX寄存器中的无符号数高于100则转移到L,应该使用的指令有()。
A.JNSLB.JNCLC.JALD.JNBEL
6.执行完指令“CMPAX,0”后,如果要实现AX寄存器中的内容为正数则转移到L,应该使用的指令有()。
A.JAELB.JGELC.JNSLD.JNCL
7.如果用“JSP”指令实现AX寄存器中的内容为负数转移,产生条件的指令可用()。
8000H
,CMPAX.8000HB,ANDAX.A.
C.TESTAX,8000HD.CMPAX,0
8.如果用要判断AX寄存器中的内容为100H则转移到P,如下的选项有()。
A.CMPAX,100HB.SUBAX,100H
JZPJEP
C.ANDAX,100HD.XORAX,100H
JZPJZP
9.设AX寄存器中的内容为有符号数,如果用要判断AX寄存器中的内容小于100H则转移到P,如下的选项有()。
A.CMPAX,100HB.SUBAX,100H
JLPJNGP
C.CMPAX,100HD.SUNAX,100H
JNGEPJNAEP
10.如果在TAB字单元中存放的是某程序的入口地址,要转移到该程序的的选项有()。
A.LEABX,TABB.MOVBX,0
JMPBXJMPTAB[BX]
C.JMPTABD.JMPDWORDPTR[TAB]
5.4.3填空题
1.当两个有符号数相减后,若要判断大于等于则转、需用、或指令。
2.在分支程序的结构中,其流程图一般由、、定向和四个部分组成。
3.转移表法分支程序设计中,其程序转移表中存放的是。
4.地址表法分支程序设计中,其地址表中存放的是。
5.逻辑分解法程序设计一般是利用多条指令实现多分支程序设计的。
6.条件转移指令是分支程序设计中最常用的指令之一,这类指令大体上可以分为三种,它们是条件转移,条件转移和条件转移指令。
7.条件转移指令的执行,是当条件时则转移。
8.在执行条件转移指令前,必须要执行产生条件码的指令,然后才能进行条件判断转移,而一般的数据传送指令影响条件码(标志位)。
9.当两个数进行比较后,执行指令表示结果为零转L。
10.为了实现程序的多路分支,通常使用、和三种方法的分支程序设计方法。
5.4.4程序分析题
1.现有程序如下:
DATASEGMENT
XDB0ABH
FLAGDB0
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVAL,X
CMPAL,0
JGEL
MOVFLAG,0
JMPEXIT
L:
MOVFLAG,1
4CH
,MOVAH:
EXIT.
INT21H
CODEENDS
ENDSTART
请回答:
(1)该程序完成什么功能?
(2)程序执行完后FLAG中的内容是多少?
2.现有程序如下:
DATASEGMENT
BUFDB0
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVAH,1
INT21H
CMPAL,61H
JBN
CMPAL,7AH
JAN
SUBAL,20H
N:
MOVBUF,AL
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
请回答:
(1)该程序完成什么功能?
(2)如果要将“CMPAL,7AH”改为“CMPAL,7BH”,则相应的指令
“JAN”应改为什么指令?
3.现有程序如下:
DATASEGMENT
ADB23
BDB0F0H
CDB0
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVAL,A
CMPAL,B
JZL
JGM
MOVC,-1
JMPEXIT
L:
MOVC,0
JMPEXIT
M:
MOVC,1
EXIT:
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
请回答:
(1)该程序完成什么功能?
(2)程序运行后,C中的内容是什么?
4.现有程序如下:
DATASEGMENT
XDW7000H
YDW9000H
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVAX,X
SUBAX,Y
JOL
MOVDL,‘N'
JMPEXIT
L:
MOVDL,‘Y'
EXIT:
MOVAH,2
INT21H
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
请回答:
(1)请程序完成什么功能?
(2)程序执行完后,显示输出的结果如何?
5.现有程序如下:
DATASEGMENT
BUF1DB‘ABCDAC'
C1=$-BUF1
BUF2DB‘C'
BUF3DW0
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVES,AX
LEADI,BUF1
MOVCX,C1
MOVAL,BUF2
CLD
REPNESCASB
JNZN
MOVDL,‘Y'
MOVAH,2
INT21H
DECDI
MOVBUF3,DI
JMPEXIT
N:
MOVDL,‘N'
MOVAH,2
INT21H
EXIT:
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
请回答:
(1)该程序完成什么功能?
(2)程序运行后,BUF3中的内容是什么?
显示输出是什么?
6.现有程序如下:
DATASEGMENT
BUFDB23,125,96
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
LEASI,BUF
MOVAL,[SI]
MOVBL,[SI+1]
MOVCL,[SI+2]
CMPAL,BL
JAEN1
XCHGAL,BL
N1:
CMPAL,CL
JAEN2
XCHGAL,CL
N2:
CMPBL,CL
JAEN3
XCHGBL,CL
N3:
MOV[SI],AL
MOV[SI+1],BL
MOV[SI+2],CL
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
)该程序完成什么功能?
1请回答:
(.
(2)程序运行后BUF中的内容依次是什么?
7.现有程序如下:
DATASEGMENT
XDB4FH
BUFDB2DUP(0)
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVAL,X
MOVCL,4
SHRAL,CL
CMPAL,9
JBEL
ADDAL,7
L:
ADDAL,30H
MOVBUF,AL
MOVAL,X
ANDAL,0FH
CMPAL,10
JBM
ADDAL,7
M:
ADDAL,30H
MOVBUF+1,AL
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
请回答:
(1)该程序完成什么功能?
(2)程序运行后BUF中的内容依次是什么?
8.现有程序如下:
DATASEGMENT
ADW1234H
BDW5678H
SDB‘NOSWAP!
$'
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVAH,1
INT21H
CMPAL,‘Y'
JNZM
'y,‘CMPAL.
JNZM
MOVAX,A
XCHGAX,B
MOVA,AX
JMPN
M:
MOVAH,9
LEADX,S
INT21H
N:
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
请回答:
(1)该程序完成什么功能?
(2)若鍵盘输入“Y”时,A,B中的值各为多少?
9.现有程序如下:
DATASEGMENT
XDB23H
YDB45H
ZDW0
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVAL,X
CMPAL,0
JGEL
ADDAL,Y
MOVAH,0
ADCAH,0
MOVZ,AX
JMPEXIT
L:
SUBAL,Y
MOVAH,0
SBBAH,0
EXIT:
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
请回答:
(1)该程序计算的表达式是什么?
(2)程序运行后,Z中的内容是什么?
10.现有程序如下:
DATASEGMENT
BUFDB0F3H
SDB0
TAENDS
DA.
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVAL,BUF
TESTAL,80H
JZL
NEGAL
L:
MOVS,AL
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
请回答:
(1)该程序完成什么功能?
(2)程序运行后S中的内容是什么?
11.现有程序如下:
DATASEGMENT
STRDB‘ABCDEFGMABC'
C=$-STR
X=5
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVES,AX
CLD
LEASI,STR
ADDSI,X
MOVDI,SI
INCSI
MOVCX,C
SUBCX,X
DECCX
CMPCX,0
JBEEXIT
REPMOVSB
EXIT:
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
请回答:
(1)该程序完成什么功能?
(2)程序运行后STR中的内容是什么?
12.现有程序如下:
DATASEGMENT
XDB96H
YDB0A2H
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVAL,X
CMPAL,Y
JGL
XCHGAL,Y
L:
MOVBL,AL
MOVCL,4
SHRAL,CL
CMPAL,9
JBEM
ADDAL,7
M:
ADDAL,30H
MOVDL,AL
MOVAH,2
INT21H
ANDBL,0FH
CMPBL,9
JBEN
ADDBL,7
N:
ADDBL,30H
MOVAH,2
MOVDL,BL
INT21H
MOVDL,‘H'
MOVAH,2
INT21H
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
请回答:
(1)该程序完成什么功能?
(2)程序运行后显示的内容是什么?
13.现有程序如下:
DATASEGMENT
D0DB‘DATA0$'
D1DB‘DATA1$'
D2DB‘DATA2$'
D3DB‘DATA3$'
XDB02H
TABDWDIS0,DIS1,DIS2,DIS3
TAENDS
DA.
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
LEABX,TAB
MOVAL,X
ANDAL,3
MOVAH,0
SHLAX,1
ADDBX,AX
JMPWORDPTR[BX]
DIS0:
LEADX,D0
JMPEXIT
DIS1:
LEADX,D1
JMPEXIT
DIS2:
LEADX,D2
JMPEXIT
DIS3:
LEADX,D3
EXIT:
MOVAH,9
INT21H
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
请回答:
(1)该程序完成什么功能?
(2)程序运行后显示输出的是什么?
14.现有程序如下:
DATASEGMENT
XDB3
YDB45H
WDB0
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVBX,OFFSETTAB
MOVAL,X
MOVAH,0
ANDAL,3
SHLAX,1
ADDBX,AX
JMPBX
EXIT:
MOVAH,4CH
INT21H
JMPSHORTM0
:
TAB.
JMPSHORTM1
JMPSHORTM2
JMPSHORTM3
M0:
MOVAL,Y
ADDAL,8
MOVW,AL
JMPEXIT
M1:
MOVAL,Y
ADDAL,16
MOVW,AL
JMPEXIT
M2:
MOVAL,Y
MOVW,AL
JMPEXIT
M3:
MOVW,100
JMPEXIT
CODEENDS
ENDSTART
请回答:
(1)该程序完成什么功能?
(2)程序运行后W中的内容是什么?
15,现有程序如下:
DATASEGMENT
WDB?
XDB25
YDW0
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVAL,X
MOVBL,W
CMPBL,0
JZL1
CMPBL,1
JZL2
CMPBL,2
JZL3
MOVBL,AL
MULAL
JMPEXIT
L1:
ADDAL,100
L:
MOVAH,0
ADCAH,0
JMPEXIT
200
,ADDAL:
L2.
JMPL
L3:
SUBAL,100
MOVAH,0
SBBAH,0
EXIT:
MOVY,AX
INT21H
CODEENDS
ENDSTART
请回答:
(1)该程序完成什么功能?
(2)若W中的内容为5,程序运行后Y中的内容是多少?
5.4.5程序填空题。
1.下列程序是判断BUF字缓冲区中有符号数的大小,当其数值大于-100时,就将FLAG字节单元清0,否则就将其置1。
请在程序的空格处填上适当的指令。
MOVAX,BUF
(1)
(2)
MOVFLAG,0
(3
L:
MOVFLAG,1
M:
MOVAH,4CH
INT21H
2.下列程序是判断X和Y有符号字数据的大小,当X中的数据大于Y中的数据时,就将Z置1,当X中的数据小于Y中的数据时就将Z送-1,否则将Z清0,请在程序的空格处填上适当的指令。
MOVAX,X
(1)
(2)
JGM
MOVZ,-1
JMPEXIT
L:
MOVZ,0
JMPEXIT
M:
(3)
EXIT:
MOVAH,4CH
INT21H
3.下列程序是判断两个无符号字数据X、Y的大小,当X>Y时执行X-Y,当X<Y时执行Y-X,当X=Y时执行X+Y,其运算后的结果存放在W中。
请在程序的空格处填上适当的指令。
MOVAX,X
MOVBX,Y
CMPAX,BX
(1)
JBM
ADDAX,BX
(2)
L:
(3)
JMPEXIT
M:
XCHGAX,BX
SUBAX,BX
EXIT:
MOVW,AX
MOVAH,4CH
INT21H
4.设X、Y是双精度32位无符号数变量,下列程序是完成2个数大小的判断,当X大于Y时,将字节变量F置1,否则将字节变量F清0,请在程序的空格处填上适当的指令。
MOVAX,X+2
MOVBX,X
CMPAX,Y+2
JBL1
(1)
CMPBX,Y
(2)
L1:
(3)
JMPEXIT
L2:
MOVF,1
EXIT:
MOVAH,4CH
INT21H
5.下列程序是将BUF字节缓冲区中的两位十六进制数转换成两位十六进制数ASCII码,并将转换结果存放在Y单元中的程序。
请在程序的空白处填上的适当的指令。
MOVAL,BUF
(1)
SHRAL,CL
(2)
JBEL
ADDAL,7
L:
ADDAL,30H
MOVY,AL
MOVAL,BUF
(3)
CMPAL,10
(4)
ADDAL,7
M:
ADDAL,30H
MOVY+1,AL
MOVAH,4CH
INT21H
6.下列程序是判断键盘输入字符,若输入字符为数字,则将其数字的ASCII码送BUF;若为字母,则将其对应的大写字母送BUF;否则将0送BUF,请在程序的空格处填上适当的指令。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第五 分支 程序设计