微机原理第四章习题及答案
- 格式: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各为多少?