微机原理第四章习题及答案

  • 格式:docx
  • 大小:35.29 KB
  • 文档页数:6

第 四 章 8086/8088指令系统

一、选择题

1、在数据传送指令中要注意:立即数只能作为( A )。

A.源操作数 B.源操作数或目的操作数

C.目的操作数 D.源操作数和目的操作数

2、对堆栈进行存取操作时需遵守的原则是( B )。

A.先进先出 B.先进后出 C.任意顺序 D.以上都不对

3、MOV AX,[BP+SI]指令源操作数隐含的段地址为( D )。

A.CS B.DS C.ES D.SS

4、堆栈指针SP的作用是用来指示( C )。

A.栈底地址 B.下一条要执行指令的地址

C.栈顶地址 D.上一条要执行指令的地址

5、在指令MOV AX,0执行后,CPU状态标志位ZF的取值( D )。

A.为0 B.为1 C.不确定 D.没影响

6、下列寄存器组中,全部用于寄存器间接寻址方式中的为( C )。

A.AX,BX,CX,IP B.BX,BP,DS,SI

C.BP,BX,SI,DI D.IP,SP,AX,BX

7、若8086 CPU工作于最小方式,则执行指令OUT DX,AL时其引脚信号M/IO和DT/R的电平应是( B )。

A.低,低 B.低,高 C.高,低 D.高,高

8、执行指令MOV AX,DATA后,AX中值为变量DATA的( D )。

A.段值 B.偏移量值

C.数据类型值 D.地址DATA单元中的值

9、下列指令中,不正确的指令是 。( D )

A.MOV AX,BX B.MOV AX,[BX]

C.MOV AL,BL D.MOV AL,[BL]

10、8086CPU在执行MOV AL,[BX]指令的总线周期内,若BX存放的内容为1010H,则BHE和A0的状态是( C )。

A.0,0 B.0,1 C.1,0 D.1,1 11、若 DF=1,执行串操作指令MOVSW时,地址指针变化方式是( D )。

A.SI=SI + 1,DI = DI + 1 B.SI = SI + 2,DI = DI + 2

C.SI = SI-1,DI = DI-1 D.SI = SI-2,DI = DI-2

12、条件转移指令JNE的条件是( C )。

A.CF=0 B.CF=1 C.ZF=0 D.ZF=1

13、若已知SP=6000H,AX=0020H,则执行指令PUSH AX后,SP和SS:SP所指内存单元中的值分别为 ( D )。

A.6002H,00H B.6000H,20H

C.5FFEH,00H D.5FFEH,20H

14、8086CPU在进行无符号数比较时,应根据 标志位来判别。( C )

A.CF和OF B.CF和PF C.CF和ZF D.ZF和OF

15、执行下列程序后,AL=( A )

MOV AL,25H

SUB AL,71H

A.B4H B.46H C.D4H D.66H

二、填空题

1、指出下列指令源操作数的寻址方式:

MOV AX, ARRAY [BX][SI] 基址变址相对寻址

MUL BL 寄存器寻址

MOV AX, [BX][SI] 基址变址寻址

MOV AX, BX 寄存器寻址

MOV AL,TABLE 直接寻址

MOV AX,TABLE[BX+DI] 基址变址相对寻址

MOV AX,[BX] 寄存器间接寻址

2、指令MOV AL,[BX+SI]是一条 基址变址寻址 寻址指令。

3、若(AX)=CFA0H,(BX)=62A0H,执行ADD AX,BX指令后,则(AX)= 3240 H,标志位ZF= 0 ,CF= 1 ,OF= 0 。

4、若(AH)=80H,(AL)=48H,执行SUB AH,AL指令后,(AX)= 3848H 。

5、设(SS)=3000H,(SP)=1000H,(AX)=2A3EH,(BX)=562AH,执行指令PUSH AX后,(SP)= 0FFEH ;再执行指令:

PUSH BX

POP AX

后,(SP)= 0FFEH ,(AX)= 562AH ,(BX)= 562AH 。

6、基址加变址寻址方式中,基址寄存器是指 BX 、 BP ,变址寄存器是指 SI 、 DI 。

7、栈操作指令PUSH和POP必须以 字 为操作数。

8、指令MOV DL,ES:[BX][DI]中,源操作数使用 基址变址 的寻址方式,源操作数在 ES 段中。

9、串处理指令规定源寄存器使用 SI ,源串在 DS 段中;目的寄存器使用 D I ,目的串必须在 ES 段中。

10、若(AL)=01001001B,执行ADD AL,AL指令后,再执行DAA命令,则(AL)= 98H ,(CF)= 0 ,(AF)= 1 。

11、设DS=4500H,AX=0508H,BX=4000H,SI=0320H,当8086以最小方式执行MOV [BX+SI+0100H],AX指令时,引脚M/IO= 1 ,地址总线上的地址= 49420 H。

12、指出下列指令语法是否正确,若不正确请说明原因。

(1) MOV AX,BYTE PTR[SI] 错,类型不匹配

(2) MOV DX,DS:[BP] 对

(3) MOV AX,[DI+SI] 错,SI和DI不能同时作为变址寄存器

(4) MOV DS,2000H 错,立即数不能给DS赋值

(5) MOV 128,CL 错,立即数不能做目的操作数

三、程序题

1、执行下面的程序段后,(CL)= 02H ,(AX)= 0040H 。

XOR BX , BX

MOV AX,10H

MOV CL,2

SAL AL,CL

MOV BL,AL SAL AL,CL

ADD AX,BX

2、下列程序段要求在内存40000H开始的顺序30个单元中存放着8位无符号数,将它们的和放在DX中,试填空完成该程序或自行编制一段程序完成上述功能。

MOV AX,4000H

MOV DS,AX

MOV SI,0000H

MOV CX, 30

XOR AX,AX

GOON: ADD AL, [SI]

ADC AH, 00H

INC SI

DEC CX

JNZ GOON

MOV DX ,AX

3、阅读下列程序并回答问题。

CMP AL,30H

JC L1

CMP AL,3AH

JNC L1

AND AL,0FH

RET

L1:MOV AL,0FFH

RET

问:(1)初值(AL)=37H时,程序段执行结果:(AL)= 07H

(2)初值(AL)=9FH时,程序段执行结果:(AL)= FFH

4、下列程序段中,以X为首址的字单元中的数据依次为1234H、5678H;以Y为首址的字单元中的数据依次为8765H、4321H。阅读程序,给出必要的程序注释并完成程序后的问题。 LEA SI,X ; X单元的偏移地址送给SI

LEA DI,Y ; Y单元的偏移地址送给DI

MOV DX,[SI+2] ; SI加2单元的内容送给DX,DX=5678H

MOV AX,X ; X单元的内容送AX,AX=1234H

ADD AX,X ; AX+AX ,AX=2468H

ADC DX,[SI+2] ; DX的值与SI加2单元的内容相加,

再加上CF, DX=ACF0H

CMP DX,[DI+2]

JL L2

CMP AX,Y

JL L1

JMP EXIT

L1:MOV AX,1

JMP EXIT

L2:MOV AX,2

EXIT:……

以上程序代码执行之后,AX= 2 ;DX= ACF0H

5、在AL中有一个十六进制数的ASCII码,完成下面程序段在每一空白处填上一条适当指令,实现将AL中的ASCII码转换成二进制数。

CMP AL,3AH

JC DONE

SUB AL,7

DONE: SUB AL,30H

HLT

6、 MOV AX,00H

MOV BX,10H

MOV CX,10

LP:INC AX

ADD BX,AX

LOOP LP HLT

以上程序段的功能是什么?程序执行完后,AX、BX、CX各为多少?