汇编语言期末复习题大全(免费)

第1章:基础知识

1、在汇编语言程序的开发过程中使用宏功能的顺序是

( C )。 DX

A、宏定义,宏调用 B、宏定义,宏展开

C、宏定义,宏调用,宏展开 D、宏定义,宏展开,宏调用

2、汇编语言源程序中,每个语句由四项组成,如语句要完成一定功能,

那么该语句中不可省略的项是( B )。 DX

A、名字项 B、操作项 C、操作数项 D、注释项

3、可屏蔽中断就是它的请求是否被CPU响应要受 ( IF )的控制。

4、使用LINK连接命令,执行后可生成文件的扩展名为( EXE )。

5、十六进制数88H,可表示成下面几种形式,请找出错误的表示(④ )。 ① 无符号十进制数136 ② 带符号十进制数-120

③ 压缩型BCD码十进制数88 ④ 8位二进制数-8的补码表示

6、指令指针寄存器是(IP )。 DX

7、汇编语言语句格式中对名字项的规定如下,请找出其中错误的说法(B)

A.名字的第一个字符可以是大写英文字母及小写英文字母

B.名字的第一个字符可以是字母、数字及、@、_

C.名字的有效长度≤31个字符

D.在名字中不允许出现$

8、CS寄存器属于( 段寄存器 )。

第2章:8086/8088的寻址方式和指令系统

1、下列指令属于基址加变址寻址方式的是( MOV DX,DS:[BP][SI] )。

2、当程序顺序执行时,每取一条指令语句,IP指针增加的值是

( D )。

A.1 B.2 C.3 D.由指令长度决定的

3、下列属于合法的指令是( D ) DX

A.MOV DS,ES B.MOV [SI],[DI] C.MOV AX,BL

D.MOV [DI],BL

4、若AX=349DH,CX=000FH。则执行指令AND AX,CX后,AX的值是

( 000DH )。 DX

5、设DS=8225H,DI=3942H,指令NEG BYTE PTR[DI]操作数的物理地

址是( 85B92H ) DX

6、下列寄存器组中在段内寻址时可以提供偏移地址的寄存器组是

( B ) DX

A、AX,BX,CX,DX B、BX,BP,SI,DI

C、SP,IP,BP,DX D、CS,DS,ES,SS

7、对寄存器AX的内容乘以4的正确指令序列是( SHL AX,

1 SHL,AX,1 )。 DX

8、执行INC指令除对SF、ZF有影响外,还要影响的标志位是

( OF,AF,PF )。 DX

9、设DH=10H,执行NEG DH指令后,正确的结果是

( DH=0F0H CF=1 )。 DX

10、下列传送指令中有语法错误的是( A )。 DX

A、MOV CS,AX B、MOV DS,AX C、MOV SS,AX D、MOV ES,AX

11、下面指令执行后,改变AL寄存器内容的指令是

( D )。

A、TEST AL,02H B、OR AL,AL C、CMP AL,BL

D、AND AL,BL

12、执行除法指令后,影响的标志位是( AF,CF,OF,PF,SF,

ZF都不确定 )。 DX

13、执行下面指令序列后,结果是( AX=0FF82H )。 DX

MOV AL,82H

CBW

14、与MOV BX,OFFSET VAR指令完全等效的指令是

( D )。

A、MOV BX,VAR B、LDS BX,VAR C、LES BX,VAR D、

LEA BX,VAR

15、在段定义时,如果定位类型用户未选择,就表示是隐含类型,其

隐含类型是( PARA )。 DX

16、MOV SP,3210H

PUSH AX 执行上述指令序列后,SP寄存器的值是

( 320EH )。 DX

17、BUF DW 10H DUP(3 DUP(2,10H),3,5)

上述语句汇编后,为变量BUF分配的存储单元字节数是

( 100H )。 DX

18、MOV AH,7896H

ADD AL,AH

上述指令执行后,标志位CF和OF的值是( CF=1,OF=0 )。 DX

19、完成将带符号数AX的内容除以2的正确指令是( SHR AX,1 )。 DX

20、在汇编语言程序中,对END语句的叙述正确的是( C )。 DX

A.END语句是一可执行语句 B.END语句表示程序执行到

此结束

C.END语句表示源程序到此结束 D.END语句在汇编后要产生

机器码

21、已知BX=2000H,SI=1234H,则指令MOV AX,[BX+SI+2]的源操作

在(数据段中偏移量为3236H的字节)中。 DX

22、下面指令序列执行后完成的运算,正确的算术表达式应是

(y=x2-1)。 DX

MOV AL,BYTE PTR X

SHL AL,1

DEC AL

MOV BYTE PTR Y,AL

23、已知(AX)=1234H,执行下述三条指令后,(AX)= (0000H)。 DX

MOV BX,AX

NEG BX

ADD AX,BX

A.1234H B.0EDCCH C.6DCCH D.

24、将DX的内容除以2,正确的指令是(C)。 DX

A.DIV 2 B.DIV DX,2 C.SAR DX,1 D.SHL DX,1

25、有如下指令序列: DX

ORG 40H

DA1 DW 0AB12H,8574H

„„

MOV AX,DA1

MOV BX,OFFSET DA1

上述指令执行后,寄存器AX和BX的值分别为( AB12H,40H )。

26、下列数值表达式和地址表达式中,错误的是( D )。 DX

A.MOV AL,8*14+4 B.MOV SI,OFFSET BUF+13

C.MOV CX,NUM2-NUM1 D.MOV CX,NUM2+NUM1

27、数据段定义如下: DX

X1 DB 10H,50,1

X2 DW 10H,20,3

X3 DD ?

COUNT EQU X3-X1

变量COUNT的值是( 9 )。

28、为使CX=-1时,转至MINUS而编制了一指令序列,其中错误的序

列是( C )。 DX

A、INC CX JZ MINUS B、SUB CX,OFFFFH JZ

MINUS

C、AND CX,OFFFFH JZ MINUS D、XOR CX,OFFFFH JZ MINUS

29、AL和VAR字节单元中分别存放一个带符号数,执行CMP AL,VAR

时,如AL>VAR,那么溢出位和符号位 的关系是( OF=SF )。 DX

30、下面是关于汇编语言程序中使用RET的描述,不正确的是

( C )。 DX

A.每一个子程序中允许有多条RET指令。 B.每一个子程序结束

之前一定要有一条RET指令。

C.每一个子程序中只允许有一条RET指令。 D.以过程形式表示

的代码段,一定有RET指令存在。

31、在串操作指令前使用重复前缀指令REPE,终止串的重复操作条件

是( CX=0或ZF=0 )。 DX

32、用MOV指令将十进制64以组合型BCD码格式送入AX,正确使用

的指令是( MOV AX,0604H )。 DX

38、当执行指令ADD AX,BX后,若AX的内容为2BA0H,设置的奇偶

标志位PF=1,下面的叙述正确的是( ④)。 DX

① 表示结果中含1的个数为偶数 ② 表示结果中含1的个数为奇数

③ 表示该数为偶数 ④ 表示结果中低八位含1的个数为偶数

39、AND,OR,XOR,NOT为四条逻辑运算指令,下面的解释正确的是

( C ) DX

A.指令XOR AX,AX执行后,AX内容不变,但设置了标志位

B.指令OR DX,1000H执行后,将DX最高位置1,其余各位置0

C.指令AND AX,OFH执行后,分离出AL低四位

D.NOT AX,执行后,将AX清0

40、完成对CL寄存器的内容乘以4的正确操作是( C ) DX

A.ROL CL,1 B.MUL 4

ROL CL,1

C.SHL CL,1 D.MOV CL,2

SHL CL,1 SHL CL,CL

41、下面各传送指令中,正确的是( C ) DX

A.MOV [DI],[SI] B.MOV[DX+DI],AL C.MOV WORD PTR

[BX],0100H D.MOV AL,BX

42、要实现使BETA的值为56,应采用语句为( BETA EQU 56 ) DX

43、REPZ CMPSW指令,重复执行的终止条件是( CX=0或ZF=0 ) DX

44、下面程序段执行后,AL中的内容是( 21H ) DX

MOV AX,8833H

ADD AL,AH

DAA

45、完成将累加器AL清零,并使进位标志CF清零,下面错误的指令

是(① )。 DX

① MOV AL,00H ② AND AL,00H ③ XOR AL,AL ④ SUB AL,AL

46、下列指令执行后总是使CF=0,OF=0的是( AND)。 DX

47、完成同指令XCHG AX,BX相同功能的指令或指令序列是(④ )。 DX

① MOV AX,BX ② MOV BX,AX

③ PUSH AX

POP BX

④ MOV CX,AX

MOV AX,BX

MOV BX,CX

48、设AH=0,AL=06H,BL=09H,执行指令

ADD AL,BL AAA

之后,其结果应是(AH=01,AL=05 )。 DX

49、设AL=0B4H,BL=11H,指令“MUL BL”和指令“IMUL BL”分别

执行后OF,CF的值为(OF=1,CF=1 )。 DX

50、在串操作指令前使用重复前缀指令REPE,终止串的重复操作条件

是(CX=0或ZF=0 )。 DX

51、下面指令中,合理而有意义的指令是(④ )。 DX

① REP LODSB ② REP SCASB ③ REP CMPSB ④ REP MOVSB

52、在下列串操作指令中,同时使用源串和目的串地址指针的指令是

( D ) DX

A.STOSW B.LODSW C.SCASW D.CMPSW

53、AL=0AH,下列指令执行后能使AL=05H的是( C ) DX

A.NOT AL B.AND AL,0FH C.XOR AL,0FH D.OR AL,

0FH

54、DA1 DW‘AB’,‘CD’,‘EF’,‘GH’

MOV AX,DA1+3

指令执行后AX中的内容是( ‘FC’ )。 DX

55、在汇编语言程序中,对END语句的叙述正确的是( ③)。

① END语句是一可执行语句 ② END语句表示程序执行到此

结束 ③ END语句表示源程序到此结束 ④ END语句在汇编后要产生机器码

56、下面的数据传送指令中,错误的操作是(④ )。 DX

① MOV SS:[BX+DI],1000H ② MOV DX,1000H ③ MOV WORD

PTR[BX],1000H ④ MOV DS,2000H

57、下面指令执行后,变量DAB中的内容是(0F5H )。 DX

DAW DW2A05H

DAB DB 0FAH

:

MOV AL,BYTE PRT DAW

SUB DAB,AL

59、设数据段中已有:

DA1 DB 12H,34H

DA2 DW 56H,78H

下面有语法错误的语句是(② )。 DX

① ADR1 DW DA1 ② MOV DA1+1,AX ③ MOV BYTE PTR DA2+1,AL

④ MOV WORD PTR DA1+1,AX

60、 DATA SEGMENT

TA1 DW 0102H,0304H,0506H

TA2 DB 02H,03H,04H

:

MOV BX,DS:[0006H]

AND BX,0FFH

AND BH,[BX]

上述指令序列运行后,BX的内容是( 0402H)。 DX

69、

ARY DW 10 DUP(?)

MOV AL,TYPE ARY

MOV BL,LENGTH ARY

MOV CL,SIZE ARY

上述MOV指令序列执行后的结果是什么?

AL=2

BL=10

CL=20

70、设某数据段: JD

DATA SEGMENT

ORG 20H

NUM1=8

NUM2=NUM1+10H

DA1 DB 'COMPUTER'

DB 0AH,0DH

COUNT EQU $-DA1

DA2 DW'CO','MP','UT','ER'

DATA ENDS

试回答:(1)DA1的偏移地址是: 20H (2)COUNT的值是 0AH

(3)DA2+5字节单元的内容是 ‘U’的ASCII码_

71、已知

AX=0FF60H,CF=1

MOV DX,96

XOR DH,0FFH

SBB AX,DX

执行上述指令序列后,AX=_________0__________,CF=______0__________。 CXFX

74、假定(DX)=10111001B,(CL)=0.3,(CF)=1,试确定下列各条

指令单独执行后,DX中的值。 JD

(1)SHR DX,1 (2)RCR DL,1 (3)RCL DX,CL 答:(1)

005CH (2) 00DCH (3) 05CCH

77、在某子程序的开始处要保护AX,BX,CX,DX四个寄存器信息,在

子程序结束时要恢复这四个寄存器信息。例如: JD

PUSH AX\

PUSH BX \ 保护现场

PUSH CX /

PUSH DX/

:

}恢复现场

试写出恢复现场时的指令序列。

答:

POP DX

POP CX

POP BX

POP AX

85、STRING DB ‘ABCDEFGHIJ'

:

MOV AH,01 ;从键盘输入字符1~9

INT 21H

AND AL,0FH

DEC AL

XOR AH,AH

MOV BX,OFFSET STRING

ADD BX,AX

MOV BL,[BX]

MOV AH,02H ;显示输出

INT 21H

:

试回答:

(1)上述程序段的功能是什么? CXFX

根据从键盘输入的字符‘1’~‘9’,确定在显示器上显示

STRING中第几个字符。(2)如从键盘输入字符‘4',程序段有什么结果?

显示器显示字符‘D’

86、已知:

BX=4567H

NEG BX

INC BX

NEG BX

DEC BX

程序段执行后,BX=____4565H___,CF=___1_____。 CXFX

87、已知数据段中定义

DAT1 DB 12H,34H,56H,78H

MOV CX,0

MOV AX,WORD PTR DAT1

MOV CL,DAT1+3 当程序段执行完后AX=___3412H____,CX=__0078H_____。 CXFX

88、DA1 DB 83H,72H,61H,94H,5AH

MOV CX,WORD PTR DA1

AND CX,0FH

MOV AL,DA1+3

SHL AL,CL 上述指令序列执行后,AL=__0A0H____,CL=__03H____。 CXFX

89、现有如下程序段: CXFX

DATA SEGMENT DA3 EQU 1234H

ORG 0020H DA4 EQU $-DA2

DA1 DW 12H,23H DA5 DB 31H,32H

DA2 DB 11H,21H DATA ENDS

请回答:(1)该程序段已占有的存储字节数是多少?(2)符号名

DA4的值是多少?符号名DA5的值是多少?

答:(1) 该程序段已占有的存储字节数是8个字节。(2) 符号名DA4

的值为2,符号名DA5的值是0026H。

90、执行下列程序段后,回答问题。 CXFX

ORG 1221H MOV BX,OFFSET NUM

NUM DW 12H MOV CL,BYTE PTR NUM+1

„ MOV CH,TYPE NUM

MOV AX,NUM HLT

请问:(AX)=______,(BX)=______,(CX)=______。

答:(AX)=0012H (BX)=1221H (CX)=0200H

91、执行下列指令后AX、BX寄存器的内容? CXFX

MOV SI,10H

MOV AX,1234H

MOV [SI+12H],AX

LEA BX,[SI]

MOV [SI+14H],BX

答:AX为1234H,BX为22H

LES BX,DWORD PTR [SI+12H]

95、在NUMW单元存放有一个0-65535范围内的整数,将该数除以500,

商和余数分别存入QU1和REM单元,请在空行处各填上一条指令完善该程序。 CXTK

MOV AX,NUMW

____ MOV BX,500_________

XOR DX,DX

DIV BX

MOV QUI,AX

____ MOV REM,DX _________

96、已知数据段中定义

DAT1 DB 12H,34H,56H,78H

MOV CX,0

MOV AX,WORD PTR DAT1

MOV CL,DAT1+3

当程序段执行完后AX=___3412H _____,CX=___0078H _____。 CXFX

97、DA1 DB 83H,72H,61H,94H,5AH

MOV CX,WORD PTR DA1

AND CX,0FH

MOV AL,DA1+3

SHL AL,CL

上述指令序列执行后,AL=___0A0H ____,CL=___03H ____。 CXFX

98、DA3 EQU WORD PTR DA4

DA4 DB 0ABH,89H

SHR DA3,1

MOV DX,DA3

SHL DA4,1

MOV CX,DA3

上述程序段运行后,CX=____44AAH _____,DX=_____44D5H _______。 CXFX

第3章:8086汇编语言程序格式

1、指令JMP FAR PTR DONE属于(段间转移直接寻址)。 DX

2、下列叙述正确的是(C)。 DX

A.对两个无符号数进行比较采用CMP指令,对两个有符号数比较

用CMPS指令

B.对两个无符号数进行比较采用CMPS指令,对两个有符号数比

较用CMP指令

C.对无符号数条件转移采用JAE/JNB指令,对有符号数条件转移

用JGE/JNL指令

D.对无符号数条件转移采用JGE/JNL指令,对有符号数条件转移

用JAE/JNB指令

3、一个有128个字的数据区,它的起始地址为12ABH:00ABH,请给

出这个数据区最末一个字单元的物理地址是(12C59H)。 DX

4、某存储单元的物理地址是12345H,可以作为它的段地址有( D ) DX

A.2345H B.12345H

C.12340H D.1234H

5、在执行DAA指令,当高四位BCD码校正时产生进位,如要把此进位

值送入AH中,对这进位值的操作应是(进位值在CF中,校正后根据CF内容再加在AH中) DX

6、执行后使BX=0的同时也使CF=0,OF=0的指令是( XOR BX,BX ) DX

7、在执行下列指令时,需要使用段寄存器DS的指令是( D ) DX

A.STOSW B.ADD AL,CL

C.NEG BX D.INC DA[BX]

8、无论BH中原有的数是奇数或偶数,若要使BH中的数一定为奇数,

应执行的指令是( OR BH,01H ) DX

9、比较两个带符号的数A、B,当A=B时程序转移,测试的条件为

( ZF=1 ) DX

10、使用DOS系统功能调用时,使用的软中断指令是( B ) DX

A.INT 21 B.INT 10H

C.INT 16H D.INT 21H

11、十六进制数0FFF8H表示的十进制正数为____+65528____,表示的

十进制负数为____-32760____。TK

12、CPU的标志寄存器中标志位,可以分为两大类,其中一类称为___状态_____标志位,另一类称为____控制____标志位。 TK

13、当标志位___CF___=1时表示无符号数运算产生溢出,而当标志位__ OF____=1是表示带符号数运算产生溢出。 TK

14、在程序执行过程中,IP寄存器中始终保存的是 (下一条指令的

首地址)。 DX

15、PSW寄存器中共有___6___位条件状态位,有___3___位控制状态

位。()。 DX

16、串指令中的目的操作数地址是由___ ES:[DI]___提供。

17、8086CPU在基址加变址的寻址方式中,变址寄存器可以为(SI或

DI)。 DX

18、什么叫寻址方式?常用的寻址方式有哪些? JD

答:寻址方式是指寻找指令中操作数所在地址的方法。

常用的寻址方式有:立即寻址、直接寻址、寄存器寻址、寄存器间接

寻址、变址寻址、基址加变址、隐含寻址等。

第4章:顺序程序设计

1、编写分支程序,在进行条件判断前,可用指令构成条件,其中不能

形成条件的指令有( D )。

A、CMP B、SUB C、AND D、MOV

第5章:分支程序设计

1、检查二个无符号数的关系,若要实现AL≥BL时分支去LOP1处,那么在“CMP AL,BL”指令后应跟的分支指令是( JC LOP1 ) DX

2、下面指令序列测试BH中的数是否为奇数,若为奇数则转移至K1处,

横线处的指令应为( )。 DX

TEST BH,01H

__JNE_______K1

3、测试BL寄存器内容是否与数据4FH相等,若相等则转NEXT处执行,

可实现的方法是( ②)。 DX

① TEST BL,4FH

JZ NEXT

② XOR BL,4FH

JZ NEXT

③ AND BL,4FH

JZ NEXT

④ OR BL,4FH

JZ NEXT

4、当一个带符号数大于0FBH时程序转移,需选用的条件转移指令是

( JNLE)。 DX

5、

MOV BL,64H

MOV CL,03H

XOR AX,AX

AGAIN:ADD AL,BL

ADC AH,0

DEC CL

JNZ AGAIN

问:(1)该程序段完成的功能是:将AX内容乘3送BX中 CXFX

(2)AX=___012CH_____。

6、

MOV DL,AL

NOT DL

TEST DL,04H

JE NEXT

NEXT:„

若上述程序段执行时产生分支,说明AL中的数第几位一定为1?

程序段执行后CF是多少? CXFX

第2位;CF=0

7、设AX,BX中的数一个为正数,一个为负数,下面程序段完成将正

数送到PLW单元中存放,请将程序中所缺指令语句补上。 CXTK

TEST AX,8000H

__JE K1或JZ K1_________

MOV PLW,BX

JMP DONE

K1:__MOV PLW,A___________

DONE:

8、下面程序段是判断寄存器AH和AL中第3位是相同,如相同,AH

置0,否则AH置全1。试把空白处填上适当指令。 CXTK

___ XOR AH,AL____

AND AH,08H ____ JE ZERO_____

MOV AH,OFFH

JMP NEXT

ZERO:MOV AH,0

NEXT:„„

9、以BUF为首址的字节单元中,存放了COUNT个无符号数,下面程序

段是找出其中最大数并送入MAX单元中。 CXTK

BUF DB 5,6,7,58H,62,45H,127,„„

COUNT EQU $-BUF

MAX DB?

MON BX,OFFSET BUF

MOV CX,COUNT-1

MOV AL,[BX]

LOP1:INC BX

____ CMP AL,[BX]_______ __

JAE NEXT

MOV AL,[BX]

NEXT:DEC CX _____ JNZ LOP1___________

MOV MAX,AL

12、

AND AL,AL

JZ BRCH1

RCR AL,1

JZ BRCH2

RCL AL,1

INC AL

JZ BRCH3

:

上述程序运行后,试回答: CXFX

(1)当(AL)=__0________时,程序转向BRCH1

(2)当(AL)=__1________时,程序转向BRCH2

(3)当(AL)=__-1________时,程序转向BRCH3

15、现有一子程序: CXFX

SUB1 PROC PLUS:TEST BL,80H

TEST AL,80H JE EXITO

JE PLUS XCHANGE:XCHG AL,BL

TEST BL,80H EXITO:RET

JNE EXITO SUB1 ENDP

JMP XCHANGE

试回答:

(1)子程序的功能是什么?

(2)若调用子程序前AL=9AH,BL=77H,则返回主程序时,

AL=______,BL=______。

答:(1)子程序的功能是判别AL和BL中的数是否为异号数,当为异号

时交换,否则不变。

(2) AL=77H, BL=9AH

17、阅读如下程序段,回答所提出的问题,假定X1,X2,XN为无符号数。 CXFX

ORG 100H

BLOK DW X1,X2,„,XN

COUNT EQU($-BLOLOK)/2

RESULT DW COUNT,?

LEA BX,BLOK-2

MOV CX,RESULT

XOR AX,AX

GOON:ADD BX,2

CMP AX,[BX]

JAE NEXT

MOV AX,[BX]

NEXT:LOOP GOON

MOV RESULT+2,AX

程序段执行完,回答下述问题

RESULT+2字存储单元的内容=______

BX=______

程序循环次数=______

答: RESULT+2字存储单元的内容是MAX(X1, X2, „ XN)

BX= 100H + 2×(COUNT-1)

程序循环次数= COUNT

18、下面程序的功能是什么? CXFX

MOV AX,X

CMP AX,Y

JGE LAB

XCHG AX,Y

LAB:MOV X,AX 答:选择X,Y中的较大值存入X中

19、某程序欲用单个字符显示的2号功能调用去显示STRING中的字符

串‘COMPUTER’(不显示字符‘$’!).试在空白处填上适当的一条指令。 CXTK

STRING DB‘COMPUTER’,‘$’

MOV BX,0FFSET STRING

LOP:MOV DL,[BX]

MOV AH,02H

INT 21H

_____ INC BX_______________

_____CMP [BX],24H________

JNE LOP

20下面程序段是判断寄存器AH和AL中第3位是相同,如相同,AH置

0,否则AH置全1。试把空白处填上适当指令.CXTK

____ XOR AH,AL_______________

AND AH,08H _____ JE ZERO______________

MOV AH,OFFH

JMP NEXT

ZERO:MOV AH,0

NEXT:„„

21、在表TABLE处存放着N个无符号字节数,求表中前10个字节数的

总和并保存在AX寄存器中。如果总和值超过AX寄存器的容量,则置AX寄存器内容不变。请在程序中的空格处填入适当指令使其完整。 CXTK

LEA BX,TABLE (2)

MOV CX,10 JC END0

MOV SUM,AX DON:INC BX

MEXT: (1)

(3)

ADC AH,0 ENDO:HLT

JNC DON 答: (1) ADD AL, [BX] (2) MOV AX, SUM (3) LOOP

NEXT

22、试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字

母显示出来。 BC

答: BEGIN:MOV AH,1

INT 21H

CMP AL,’a’

JB STOP

CMP AL,’z’

JA STOP

SUB AL,20H

MOV DL,AL

MOV AH,2

INT 21H

JMP BEGIN

STOP:RET

26、下列程序片段用来分别统计ARRAY数组中奇数和偶数的个数。请

在空白处填写合适的指令。 CXTK

DATA SEGMENT

ARRAY DW 23ABH,1570H,567,1765H,46,5210H

COUNT EQU ($-ARRAY)/2

DA1 DB ?

DA2 DB ?

DATA ENDS

„„

LEA SI,ARRAY

MOV CX,COUNT

LOP1:MOV AX,[SI]

TEST AX,0001H

JZ LOP2

INC BL

JMP LOP3

LOP2:INC BH

LOP3: ADD SI,2

DEC CX

JNZ LOP1

MOV DA1,BL

MOV DA2,BH

第6章:循环程序设计

1、循环控制指令LoopNZ/LoopNE控制循环继续执行的条件是(CX≠0且ZF=0) DX

2、循环指令LOOPNZ终止循环的条件是( CX=0,或ZF=1 )。 DX

4、下列描述中,执行循环的次数最多的情况是( A )。 DX

A.MOV CX,0 B.MOV CX,1

LOP:LOOP LOP LOP:LOOP LOP

C.MOV CX,0FFFFH D.MOV CX,256

LOP:LOOP LOP LOP:LOOP LOP

5、

DATA SEGMENT

S9 DB0,1,2,3,4,5,6,7,8,9

DATA ENDS

LEA SI,S9

LEA,DI,S9+1

MOV CX,5

LOP: MOV AL,[SI]

XCHG AL,[DI]

MOV [SI],AL

ADD SI,2

ADD DI,2

LOOP LOP

上述程序段运行后,S9开始的10个字节存储单元内容是什么?

CXFX

S9 DB 1,0,3,2,5,4,7,6,9,8

6、实现将DX:AX中存放的32位数扩大四倍,正确的程序段是(③ )。 DX

① SHL AX,2

ROL DX,2

② RCL AX,2

SHL DX,2

③ MOV CX,2

LOP:SHL AX,1

RCL DX,1

LOOP LOP

④ SHL AX,1

SHL AX,1

RCL DX,1

RCL DX,1

7、在下列指令中, D 指令的执行会影响条件码中的CF位。 DX

A.JMP NEXT B.JC NEXT C.INC BX D.SHL AX,1

8、下列指令执行时出错的是(A)。 DX

A.ADD BUF1,BUF2 B.JMP DWORD PTR DAT [BX] C.MOV AX,

[BX+DI] NUM D.TEST AL,08H

9、在下列指令的表示中,不正确的是(C)。 DX

A.MOV AL,[BX+SI] B.JMP SHORT DONI C.DEC [BX] D.MUL CL

10、在进行二重循环程序设计时,下列描述正确的是(A)。 DX

A.外循环初值应置外循环之外;内循环初值应置内循环之外,外循环之内

B.外循环初值应置外循环之内;内循环初值应置内循环之内

C.内、外循环初值都应置外循环之外

D.内、外循环初值都应置内循环之外,外循环之内

11、条件转移指令JNE的测试条件为(ZF=0)。 DX

12、执行如下程序:

MOV AX,0

MOV BX,1

MOV CX,100

A:ADD AX,BX

INC BX

LOOP A

HLT

执行后(BX)= (101)。 DX

13、上题的程序执行后(AX)= (5050)。 DX

14、对于下列程序段:

AGAIN:MOV AL,[SI]

MOV ES:[DI],AL

INC SI

INC DI

LOOP AGAIN

也可用__ REP MOVSB __指令完成同样的功能。 DX

15、

DA1 DB‘ABCDEFGHI’

DA2 DB 9 DUP(0)

LEA SI,DA1

LEA DI,DA2

MOV CX,9

CLD

LOP: LODSB

SUB AL,10H

STOSB

LOOP LOP

. . .

试问:①写出程序执行后DA2各字节中的数据。 CXFX

②保持程序功能情况下,程序中 可否改写为

123456789;不能更改

16、程序段如下: CXFX

BLK1 DB 46,84,34,-5,20,122,73

:

MOV CX,7

LEA S1,BLK1

NEXT: MOV AL,[SI]

INC SI

TEST AL,81H

LOOPZ NEXT

MOV BL,[SI]

:

请回答程序段运行后:(AL)=___5或0FBH__

(BL)=___14H或20______

17、下面程序的功能是什么? CXFX

STRING DB 100 DUP(?)

MOV AX,SEG STRING

MOV DS,AX

LEA SI,STRING

MOV CX,100

LAB: MOV AL,[SI]

CMP AL,’a’

JB LAB1

CMP AL,’z’

JA LAB1

SUB AL,32

MOV [SI],A

LAB1: INC SI

LOOP LAB

将STRING里的小写字母’a’-‘z’转成相应的大写字母’A’-‘Z’

18、现有下列数据段: CXTK

DATA SEGMENT

STR1 DB‘ABCDEFGHIJKL'

COUNT EQU -STR1

BUF DB COUNT DUP(0)

DATA ENDS

下面程序段是实现把STR1中所有字符逆向传送到BUF缓冲区(即STR1中第一个字符送到BUF的最后一个单元,STR1中最后一字符送到BUF的第一个单元)。试把程序中所空缺的指令填上。

MOV SI,OFFSET BUF-1

MOV DI,OFFSET BUF

MOV CX,COUNT

___CLD_或 STD_____

LOOP:MOVSB

______ SUB SI,2__或____ ADD DI,2__

LOOP LOP

19、下述程序段完成计算2~20之间的偶数的和,并存于AX中。试把空白处填上适当的指令。 CXTK

XOR AX,AX

MOV BX,0

MOV CX,10或MOV CX,0AH

CONT: ADD AX,BX

ADD BX,2

LOOP CONT

20、BEG为起始地址的存储区域中存放有100个字节数据,现将其首、尾颠倒过来,重新排放这100个字节数据。请在程序中的空格处填入适当的指令使其完整。 CXTK

MOV CX,32H

LEA SI,BEG

MOV DI,SI

(1)

DON:MOV AL,[SI]

(2)

MOV [SI],AL

(3)

DEC DI

LOOP DON

HLT

答: (1) ADD DI, 99

(2) XCHG AL, [DI]

(3) INC SI

22、下述程序段完成计算2~20之间的偶数的和,并存于AX中。试把空白处填上适当的指令。 CXTK

XOR AX,AX

MOV BX,0

MOV CX,10或MOV CX,0AH

CONT: ADD AX,BX

ADD BX,2

LOOP CONT


© 2024 实用范文网 | 联系我们: webmaster# 6400.net.cn