第五章分支程序设计.docx

上传人:b****7 文档编号:9516232 上传时间:2023-02-05 格式:DOCX 页数:31 大小:98.78KB
下载 相关 举报
第五章分支程序设计.docx_第1页
第1页 / 共31页
第五章分支程序设计.docx_第2页
第2页 / 共31页
第五章分支程序设计.docx_第3页
第3页 / 共31页
第五章分支程序设计.docx_第4页
第4页 / 共31页
第五章分支程序设计.docx_第5页
第5页 / 共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〜1274.用一条条件转移指令一次可实现()个分支。

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

&当“CMPAX,BX”比较时,执行“JGL指令后转移列L,则表明()

0101H单元存放条件转移指令的相对位移量

A.AX>BXB.AX=BXC.AXVBXD.AX>BX

9如果0100H单元存放条件转移指令的操作码,

13H,那么转移后的指令的偏移地址为()

10下列叙述不正确的是()。

A.有符号数比较后的条件转移指令可采用JG、JL、JGE和JLE指令。

B.无符号数比较后的条件转移指令可采用JA、JB、JNE和JBE指令。

C.有符号数比较后判断溢出用JO和JNO指令。

D.无符号数比较后判断溢出用JS和JNS指令。

542多项选择题

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,应该使用的指令有()。

AJNSLBJNCLCJALDJNBEL

6.执行完指令“CMPAX,0”后,如果要实现AX寄存器中的内容为正数则转移到L,应该使用

的指令有()。

AJAELBJGELCJNSLDJNCL

7.如果用“JSP'指令实现AX寄存器中的内容为负数转移,产生条件的指令可用()。

AANDAX,8000HBCMPAX,8000H

C.TESTAX,8000HD.CMPAX,0

&如果用要判断AX寄存器中的内容为100H则转移到P,如下的选项有(

A.CMPAX,100HB.SUBAX,100H

JZPJEP

C.ANDAX,100HD.XORAX,100H

JZPJZP

9.

100H则转移到

设AX寄存器中的内容为有符号数,如果用要判断AX寄存器中的内容小于

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.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.现有程序如下:

DATA

SEGMENT

X

FLAG

DATA

DB0ABH

DB0

ENDS

CODE

SEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATAMOVDS,AX

MOVAL,X

CMPAL,0

JGEL

MOVFLAG,0

JMPEXIT

L:

MOVFLAG,1

EXIT:

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

请回答:

(1)该程序完成什么功能?

(2)程序执行完后FLAG中的内容是多少?

2.现有程序如下:

DATASEGMENT

BUFDB0

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVAH,1

INT

21H

CMP

AL,61H

JBN

CMP

AL,7AH

JAN

SUB

AL,20H

N:

MOV

BUF,AL

MOV

AH,4CH

INT

21H

CODE

ENDS

END

START

请回答:

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

CODE

ENDS

ENDSTART

请回答:

(1)该程序完成什么功能?

(2)程序运行后,C中的内容是什么?

4.现有程序如下:

DATA

X

SEGMENT

DW7000H

Y

DATA

CODE

DW9000H

ENDS

SEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATAMOVDS,AXMOVAX,XSUBAX,YJOL

MOVDL,‘N'JMPEXIT

L:

MOVDL,‘Y'

EXIT:

MOVAH,2

INT21H

MOVAH,4CH

INT21H

CODE

ENDS

ENDSTART

请回答:

(1)请程序完成什么功能?

(2)程序执行完后,显示输出的结果如何?

5.现有程序如下:

DATA

SEGMENT

BUF1

C1

DB‘ABCDAC'

=$—BUF1

BUF2

BUF3

DATA

DB‘C'

DW0ENDS

CODE

SEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATAMOVDS,AXMOVES,AXLEADI,BUF1MOVCX,C1MOVAL,BUF2CLD

REPNESCASB

JNZN

MOVDL,‘Y'

MOVAH,2

INT21H

START:

MOVAX,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

JAEN2

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.现有程序如下:

DATASEGMENT

XDB4FH

BUFDB2DUP(0)

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATASTART:

MOVAX,DATA

MOV

DS,AX

MOV

AL,X

MOV

CL,4

SHR

AL,CL

CMP

AL,9

JBE

L

ADD

AL,7

L:

ADD

AL,30H

MOV

BUF,AL

MOV

AL,X

AND

AL,0FH

CMP

AL,10

JB

M

ADD

AL,7

M:

ADD

AL,30H

MOV

BUF+1,AL

MOV

AH,4CH

INT

21H

CODE

ENDS

END

START

请回答:

1)该程序完成什么功能?

(2)

程序运行后

BUF中的内容依次是什么?

8.现有程序如下:

 

DATA

SEGMENT

A

DW

1234H

B

DW

5678H

S

DB‘

NOSWAP!

$'

DATA

ENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOV

AX,

DATA

MOV

DS,

AX

MOV

AH,

1

INT

21H

CMP

AL,

‘Y'

JNZ

M

CMP

AL,

‘y'

JNZM

MOVAX,A

XCHGAX,B

MOVA

,AX

JMP

N

M:

MOV

AH,

9

LEA

DX,

S

INT

21H

N:

MOV

AH,

4CH

INT

21H

CODE

ENDS

END

START

请回答:

(1)该程序完成什么功能?

(2)若鍵盘输入“Y”时,A,B中的值各为多少?

9.现有程序如下:

请回答:

Z

DW0

DATA

ENDS

CODE

SEGMENT

ASSUMECS

CODE,DS

START:

MOV

AX,DATA

MOV

DS,AX

MOV

AL,X

CMP

AL,0

JGEL

ADD

AL,Y

MOV

AH,0

ADC

AH,0

MOV

Z,AX

JMP

EXIT

L:

SUBAL,Y

MOVAH,

0

SBBAH,

0

EXIT:

MOVAH

,4CH

INT21H

CODE

ENDS

ENDSTART

该程序计算的表达式是什么?

1)

DATA

(2)程序运行后,Z中的内容是什么?

10.现有程序如下:

DATA

SEGMENT

BUF

DB

0F3H

S

DB

0

DATA

ENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVAL,BUFTESTAL,80HJZLNEGALL:

MOVS,AL

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

请回答:

(1)该程序完成什么功能?

(2)程序运行后S中的内容是什么?

11.现有程序如下:

DATASEGMENTSTRDB‘ABCDEFGMABC'

C=$—STR

X=5

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVES,AX

CLD

LEA

SI,STR

ADD

SI,X

MOV

DI,SI

INC

SI

MOV

CX,C

SUB

CX,X

DEC

CX

CMP

CX,0

JBE

EXIT

REP

MOVSB

EXIT:

MOVAH

,4CH

INT

21H

CODE

ENDS

END

START

请回答:

1)该程序完成什么功能?

(2)程序运行后STR中的内容是什么?

12.现有程序如下:

DATASEGMENTXDB96H

YDB0A2H

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOV

AX,DATA

MOVDS

,AX

MOV

AL,X

CMP

AL,Y

JG

L

XCHG

AL,Y

L:

MOVBL

,AL

MOV

CL,4

SHR

AL,CL

CMP

AL,9

JBE

M

ADD

AL,7

M:

ADDAL

,30H

MOV

DL,AL

MOV

AH,2

INT

21H

AND

BL,0FH

CMP

BL,9

JBE

N

ADD

BL,7

N:

ADDBL

,30H

MOV

AH,2

MOV

DL,BL

INT

21H

MOV

DL,‘H'

MOV

AH,2

INT

21H

MOV

AH,4CH

INT

21H

CODEENDS

ENDSTART

请回答:

(1)该程序完成什么功能?

(2)程序运行后显示的内容是什么?

13.现有程序如下:

DATA

SEGMENT

D0

DB

‘DATA

0$'

D1

DB

‘DATA

1$'

D2

DB

‘DATA

2$'

D3

DB

‘DATA

3$'

X

DB

02H

TAB

DW

DIS0,

DIS1,DIS2,DIS3

DATA

ENDS

CODESEGMENT

MOV

DS,AX

LEA

BX,TAB

MOV

AL,X

AND

AL,3

MOV

AH,0

SHL

AX,1

ADD

BX,AX

JMP

WORDPTR[BX]

DIS0:

LEA

DX,D0

JMP

EXIT

DIS1:

LEA

DX,D1

JMP

EXIT

DIS2:

LEA

DX,D2

JMP

EXIT

DIS3:

LEA

DX,D3

EXIT:

MOV

AH,9

INT

21H

MOV

AH,4CH

INT

21H

CODE

ENDS

END

START

START:

MOVAX,DATA

请回答:

(1)该程序完成什么功能?

2)程序运行后显示输出的是什么?

14.现有程序如下:

DATA

SEGMENT

X

DB

3

Y

DB

45H

W

DB

0

DATA

ENDS

CODE

SEGMENT

ASSUMECS:

CODE,

DS:

START:

MOVAX,DATA

MOV

DS,AX

MOV

BX,OFFSET

TAB

MOV

AL,X

MOV

AH,0

AND

AL,3

SHL

AX,1

ADD

BX,AX

JMP

BX

EXIT:

MOV

AH,4CH

INT

21H

TAB:

JMP

SHORTM0

DATA

(2)程序运行后W中的内容是什么?

15,现有程序如下:

DATA

SEGMENT

W

DB

X

DB

25

Y

DW

0

DATA

ENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOV

DS,AX

MOV

AL,X

MOV

BL,W

CMP

BL,0

JZ

L1

CMP

BL,1

JZ

L2

CMP

BL,2

JZ

L3

MOV

BL,AL

MUL

AL

JMP

EXIT

L1:

ADD

AL,100

L:

MOV

AH,0

ADC

AH,0

JMP

EXIT

L2:

ADD

AL,200

L3:

JMP

SUB

L

AL,100

MOV

SBB

AH,0

AH,0

EXIT:

MOV

Y,AX

INT

21H

CODE

ENDS

END

START

1)

请回答:

(2)若W中的内容为5,程序运行后Y中的内容是多少?

5.4.5程序填空题。

下列程序是判断BUF元清0,否则就将其置

MOV

(1)

(2)

MOVFLAG,

L3

MOVFLAG,

该程序完成什么功能?

字缓冲区中有符号数的大小,当其数值大于一1。

请在程序的空格处填上适当的指令。

AX,

100时,就将FLAG字节单

BUF

M:

MOV

AH,4CH

INT

21H

下列程序是判断

X和

Y有符号字数据的大小,当

1,当X中的数

据小于

Y中的数据时就将Z送一

的指令。

MOV

AX,X

(1)

(2)

JG

M

MOV

Z,—1

JMP

EXIT

L:

MOV

Z,0

JMP

EXIT

M:

(3)

EXIT:

MOV

AH,4CH

L:

1

2.

X中的数据大于

1,否则将Z清0,

INT21H

Y中的数据时,就将Z置请在程序的空格处填上适当

—X,当

iX=Y时执行

X+Y,其运算后的结果存放在W中。

请在程序的空格处填上适当的指

令。

MOV

AX,X

MOV

BX,Y

CMP

AX,BX

(1)

JB

M

ADD

AX,BX

3•下列程序是判断两个无符号字数据X、Y的大小,当X>Y时执行X—Y,当XVY时执行Y

 

JMP

EXIT

M:

XCHG

AX,BX

SUB

AX,BX

EXIT:

MOV

W,AX

Y时,

若为字

MOV

AX,X+2

MOV

BX,X

CMP

AX,Y+2

JB

L1

(1)

CMP

BX,Y

(2)

L1:

(3)

JMP

EXIT

L2:

MOV

F,1

EXIT:

MOV

AH,4CH

INT

21H

下列程序是将

BUF字节缓冲区中的两位十六进制数转换成两位十六进制数

ASCII码,

换结果存放在

Y单元中的程序。

请在程序的空白处填上的适当的指令。

MOV

AL,BUF

(1)

SHR

AL,CL

(2)

JBE

L

ADD

AL,7

L:

ADD

AL,30H

MOV

Y,AL

MOV

AL,BUF

(3)

CMP

AL,10

(4)

ADD

AL,7

M:

ADD

AL,30H

MOV

Y+1,AL

MOV

AH,4CH

INT

21H

MOVAH,4CH

INT21H

4•设X、Y是双精度32位无符号数变量,下列程序是完成2个数大小的判断,当X大于

将字节变量F置1,否则将字节变量F清0,请在程序的

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

当前位置:首页 > 高等教育 > 文学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1