一、 单项选择题
1.下列指令正确的是 [ B]
A.CMP [SI],100 B.CMP WORD PTR [SI],100
C.CMP [SI],100h D.CMP 100h,[SI]
2.下列指令正确的是 [D ]
A.MOV CX,AL B.MOV DS,200h
C.MOV DS,CS D.MOV DS,AX
3.下列指令正确的是 [A ]
A.POP WORD PTR [BX] B.POP BL
C.POP IP D.POP CS
4.下列指令正确的是 [C ]
A.IN DX,AL B.IN DX,AX
C.IN AX,DX D.IN BX,DX
5.DF=1,执行MOVSB指令后 [A ]
A.SI减1,DI减1 B.SI加1,DI加1,CX减1
C.SI减1,DI减1,CX减1 D.SI加1,DI加1,CX加1
6.Intel 8086 I/O寻址空间为 [C ]
A.1MB B.1KB
C.64KB D.32KB
二、填空题
1.二进制数10101001转换为10进制数为 169 D转换为16进制数为 A9 H
1.在移位指令中,用于指定移位位数的操作数只用的寄存器是___CL_____。
2.内存0005CH处4个字节为D2,EF,00,F0,它是中断__17H______的入口地址存放处,它表示该中断处理程序的起始地址为_F000H___ :__EFD2H___。
解析:因为中断类型号和中断向量表中的对应物理地址由倍数4的关系,所以0005CH/4=17h,即得类型号。
3.一条指令为MOV BX,X1,其中X1的偏移地址为16 (十进制)。在DEBUG下,此指令会变为MOV BX,__[0010]______。
4.指令MOV AL, BYTE PTR [BX+SI]中,源操作数的寻址方式是基址变址寻址方式
5.设CF=0,AX=8000H,执行ROR AX,1后,AX=_4000H___,CF=_____0_________。
6.可屏蔽中断是指中断请求是否响应会受到IF的控制。如果IF=_1_,表示允许中断
或开中断
7、请用一条指令实现如下操作:
(1)将AX中划‘X’的位清0
15 5 4 0
┏┳┳┳┳┳┳┳┳┳┳━┳━┳┳┳┳┓
┃┃┃┃┃┃┃┃┃┃┃X┃X┃┃┃┃┃ 指令:__AND AX,FFCFH________________
┗┻┻┻┻┻┻┻┻┻┻━┻━┻┻┻┻┛
(2)寄存器的低四位取反的指令:___XOR AX,000FH____
8、设(CS)=25FFH,(DS)=2140H,(SS)=2510H,(BP)=02D0H,(SI)=0010H,(DI)=0206H,
则(1)指令MOV AX,[BP+SI+2]的源操作数有效地址为__02E2H_,物理地址为_253E2H_
(2)指令MOV AX,[DI+100H]的源操作数有效地址为_0306H__,物理地址为_21706H__.
二、判断题
[判断下述指令的正误。正确的打“√”,错误的打“×”并说明理由]
1.MOV MYDAT [BX] [SI],AX (√)
2.MOV SAVE_DS,DS (√)
3.DIV 12 (× )
4.MOV DS,0 (×)
5.MOV AX,[SI][DI] ( ×)
6、MOV BYTE PTR[BX],10H(√)
三、简答题
1.指出下列各条指令单独执行后相应寄存器的值。
DATAX SEGMENT PARA
X1 DD 12345678h
X2 EQU $-X1
X3 DW 45,0FEAH
X4 EQU $-X1
DATAX ENDS
MOV AX,X2
MOV BX,X4
答:执行后(AX)=0004H
(BX)=0008H (已经更正)
2.中断共有哪几种?
(详见课本)
3.有符号数据定义如下:
X1 DW ?
X2 DB ?
X3 DW ?
编写程序块实现X3=(X2*10-X1/2)/X2。
解:所需程序段如下
MOV AX,X1
SAR AX,1 ;计算X1/2
CWD ;将AX扩展到DX
MOV BX,DX
MOV CX,AX
;………………………..
MOV AX,X1
MOV BX,10
IMUL BX ;计算X1*10
SUB AX,CX
SBB DX,BX ;计算(X2*10-X1/2)
IDIV X2
MOV X3,AX
5. 将数据段中ARRAY开始的20个字节的存储区初始化为20H
;将20个字节的存储区初始化为20H
data segment para public
ARRAY db 20 dup(?)
data ends
code segment
assume cs:code,ds:data,es:data
push ds
mov ax,0
push ax
mov ax,data
mov ds,ax
mov es,ax
;...............................
mov di,offset ARRAY
mov al,20h
mov cx,20
rep stos st1
code ends
end
;================================================================
1在程序执行的过程中,已知(CS)=6C3AH,(SS)=6C62H,(IP)=42H,(SP)=36H;则下一条要执行的指令地址是:( 6C3E2)H,栈顶单元的物理地址是:(6C656 )H
此程序中某条指令 MOV 0100H[BP],AX中,已知此时(BP)=2000H,则AX被存到了(
6E720)H单元。
2 给出完成下列功能的DEBUG命令:
(A) 显示数据段从偏移地址为 1A5H起始的一段存储区单元内容 D DS:01A5
(B) 显示所有寄存器的内容 R
3 已知(CH)=89H,VALUE单元存放的数据为E3H;写出下列指令的执行结果。
(A)OR CH,VALUE (CH)= EB H
(B)AND CH,VALUE (CH)= 81 H
(C)XOR CH,VALUE (CH)= 6A H
(D)XOR CH,00000000B (CH)= 89 H
(E)TEST CH,VALUE (CH)= 89 H
4 假设下列数据在存储区中的地址都是N单元,分别画出它们的存放示意图:
(A) 1234H (B) 01C3B5H
5 判断下列指令是否正确,错误的话改正错误
(A) MOV AL,BX (F )
(B)MOV AL,CL ( T )
(B) INC [BX] ( F )注:因为指令里没有说明操作数的长度问题,可用PTR运算符校正:INC BYTE PTR [BX]或INC WORD PTR [BX]
(C) MOV 5,AL( F )
(D) MOV [BX],[SI]( F )
(E) MOV BL,F5H ( T )
(F) CMP BL,SI ( F )
(G) MOV [100H],3 ( F )
(H) POP AL ( F )
(I) MOV AX,[BX][BP] ( F )
(J) MOV [SI],AL ( T )
(K) OUT [DX],AX ( F )
6 简答
(A) 解释下列指令的功能。
MOV AX,OFFSET ARRAY
把变量ARRAY的偏移地址值送给AX寄存器
DSEG SEGMENT
DB 01H
DSEG ENDS
定义了名字为DESG 一个段,并在此段中第一个单元定义的一个字节变量,值为01H
(B) 请定义一个名字为COUNT 的子程序。
COUNT PROC
…
RET
COUNT ENDP
(C) 写出在DEBUG 环境下 下列程序段中各条指令的执行结果:
MOV CX,3B ((CX)= 3BH )
ADD CX,1C ((CX)= 57H )
SHL CX,1 ((CX)= AEH )
SUB CX,36 ((CX)= 78H )
SHR CX,1 ((CX)= 3CH )
ROR CX,1 ((CX)= 1EH )
(D) 概述中断源的分类?
7 下列各数均为十进制数,请用8位二进制补码计算下列各题,并用16进制数表示其运算结果,同时说明CF、OF标志位的值
(A)(-85) + (76)= F7 H CF= 0 OF= 0
(B)85 – 76= 09H H CF= 1 OF= 0
(C)85-(-76)= A1 H CF= 1 OF=1
注:此处的计算方法是先计算参与运算的两个数的补码形式在进行普通的加减法运算;例:
(C)[85]补码=55h,[-76]补码=b4h,所以55h-b4h=a1h,并且cf=1,of=1
8 阅读程序并填空(答案不唯一)
如果 X>50,转到TOO_HIGH;计算 X-Y,如果溢出转到 OVERFLOW,否则 |X-Y| → RESULT
MOV AX, X
CMP AX, 50
JG TOO_HIGH
SUB AX, Y
JO OVERFLOW
JNS NONNEG
NEG AX
NONNEG:
MOV RESULT, AX
TOO_HIGH:
……OVERFLOW:
…
温馨提示:内容为网友见解,仅供参考