第五章分支程序设计.docx

上传人:b****1 文档编号:13749641 上传时间:2023-06-17 格式:DOCX 页数:31 大小:22.96KB
下载 相关 举报
第五章分支程序设计.docx_第1页
第1页 / 共31页
第五章分支程序设计.docx_第2页
第2页 / 共31页
第五章分支程序设计.docx_第3页
第3页 / 共31页
第五章分支程序设计.docx_第4页
第4页 / 共31页
第五章分支程序设计.docx_第5页
第5页 / 共31页
第五章分支程序设计.docx_第6页
第6页 / 共31页
第五章分支程序设计.docx_第7页
第7页 / 共31页
第五章分支程序设计.docx_第8页
第8页 / 共31页
第五章分支程序设计.docx_第9页
第9页 / 共31页
第五章分支程序设计.docx_第10页
第10页 / 共31页
第五章分支程序设计.docx_第11页
第11页 / 共31页
第五章分支程序设计.docx_第12页
第12页 / 共31页
第五章分支程序设计.docx_第13页
第13页 / 共31页
第五章分支程序设计.docx_第14页
第14页 / 共31页
第五章分支程序设计.docx_第15页
第15页 / 共31页
第五章分支程序设计.docx_第16页
第16页 / 共31页
第五章分支程序设计.docx_第17页
第17页 / 共31页
第五章分支程序设计.docx_第18页
第18页 / 共31页
第五章分支程序设计.docx_第19页
第19页 / 共31页
第五章分支程序设计.docx_第20页
第20页 / 共31页
亲,该文档总共31页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

第五章分支程序设计.docx

《第五章分支程序设计.docx》由会员分享,可在线阅读,更多相关《第五章分支程序设计.docx(31页珍藏版)》请在冰点文库上搜索。

第五章分支程序设计.docx

第五章分支程序设计

第五章分支程序设计

练习题

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,请在程序的空格处填上适当的指令。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2