微机原理及接口技术习题课
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
答:8086/8088 系统中堆栈的位置由 SS 和 SP 初始化后确立:其中(SS)*16 决定了堆栈段起始 单元的地址,即堆栈段首址;(SS)*16+(SP 初值)决定了堆栈段最后一个单元的地址,即栈 底;(SS)*16+(SP 现值)决定了堆栈段当前可用单元的地址,即栈顶。
显然,堆栈首址并不是栈低。一般来说,在堆栈所在的内存区内,栈底为高地址端。堆栈
填空题
1.若 SS=5310H,SP=0E30H,其物理地址为( )。
2.若 CH=07H,CL=08H,执行指令 ADD CH,CL 后,AF=( ),CF=( ),OF=( ),PF=( )。
3.指令由( ) 和( ) 两个字段构成。
4. 条件转移指令 JNE 的测试条件是( )。
5.若用指针(BP)访问存储器,则数据包含在( ) 段中。
6.写出下列程序段的 功能 MOV AL,N AND N,0FH MOV BL,N SHR AL,4 MOV BH,AL
8.下面程序段执行后 AL=? ABC DW 2152H,3416H, 5731H,4684H MOV BX,OFFSET ABC MOV AL,3 XLAT 10. 执行下面的程序 段后 AX=? TAB DW 1,2,3,4,5, 6 ENTRY EQU 6 MOV BX,OFFSET TAB ADD BX,ENTRY MOV AX,[BX]
判断题
1.指令 MOV AX,[BX]的源操作数是寄存器寻址方式。
2.对堆栈区的操作必须遵循先进先出的原则。
3.比较两个带符号数的大小,可根据 CF 标志来判断。
4.逻辑操作符 AND,OR,XOR 和 NOT,只能用于数字表达
5.不能给段寄存器赋立即数。
6.OF 位可用来表示有符号数的溢出。
7.无条件转移指令只能用于段内直接转移。
6. 若 AX=1234H,SP=1000H,指令 PUSH AX 执行后 AX=( ),SP=( ) 。
7.指令采用( )寻址方式时操作数是在代码段中。
阅读程序
1. 程序中数据定义如下:
2.分析下列程序段,说出其功能。MOV AX,
DATA1 DW ?
1000H
DATA2 DB 32 DUP(?)
若(CS)=5200H 时,物理转移地址为 5B230H,则当 CS 的内容被设定为 7800H,物理转移地 址应为多少?
答 : 按题 目条 件可 知该 转 移地 址距 CS 所指 代 码段 的段 基址 的偏 移 量为 9230H ( 即 = 5B230H-52000H),因此若(CS)=7800H,则物理转移地址应为:78000H +9230H=81230H。
15。若 ES 段有一个字符串‘12FG3LM5C’,名为 ARRAY,下面程序执行后,CX 值是多少?
(B)
CLD
LEA DI,ES:ARRAY
MOV AL,‘G’
MOV CX,9
REPNE SCASB
HLT
A。9
B。5
C。4
D。0
16。执行下列指令后,DX=? MOV CX,10 MOV DX,12 NEXT: ADD DX,CX DEC CX LOOP NEXT HLT
某系统中,已知建立堆栈时 SS=2360H,SP=0800H,经过一段时间后,SP 的内容变为 0700H,
则堆栈中有多少个字的数据( )
A、80H
B、50H
C、100 D、100H
对于由 8086/8088 CPU 组成的系统,堆栈的位置如何确立?堆栈的首址(即 SS 中的值)是不是 栈底?为什么?
7.执行下列程序段后, AX=? MOV AX,0702H MOV BH,09H AAD DIV BH
9.执行下面的程序段后 AX=? MOV CX,5 MOV AX,50 NEXT: SUB AX,CX LOOP NEXT HLT
11. 执行下面程序段后 AX= ARRAY DW 1,2,3,4, 5,6,7,8,9,10 COUNT EQU $-ARRAY XOR AX,AX MOV CX,COUNT MOV SI,OFFSET ARRAY NEXT:ADD AX,[SI] INC SI LOOP NEXT
A1 DB ?
A2 DB 10
K1 EQU 1024
(1)MOV K1,AX (2)MOV A1,AX
(3)CMP A1,A2 (4)K1 EQU 2048
解答:(1)K1 为常量,不能用 MOV 指令赋值;
(2)A1 为字节,AX 为字变量,不匹配;
(3)A1 未定义,无法做比较指令;
(4)K1 重新赋值前,必须用 PURGE 释放。
(C) 2,1,2,3,3,2,1,0
(D) 1,2,3,3,3,1,0,1,0,1
下列有关指令指针寄存器的说法中,哪一个是正确的(
)。
A、IP 存放当前正在执行的指令在代码段中的偏移地址
B、IP 存放下一条将要执行的指令在代码段中的偏移地址
C、IP 存放当前正在执行的指令在存储器中的物理地址
D、IP 存放当前正在执行的指令在存储器中的段地址
1。若定义 DAT DW ‘12’ ,则 DAT 及 DAT+1 单元的数据是(A) A。32H,31H B。31H,32H C。00H,0CH D。00H,12H
2。下列指令中不影响标志位的是(D)
A。ADD BX,CX
B。SUB BX,1000
C。SAR DX,1
D。DIV CX
3。串操作中有 REP 的指令结束的条件是(D)
(12+10+8+6+4+2)=42))
17。CPU 中 PC 存放的是(B) A。指令 B。指令地址 C。操作数 D。操作数地址
18。执行下列指令后 AL=? (48) MOV AL,128 MOV CL,2 SHR AL,CL MOV CL,AL SHR AL,1 ADD AL,CL
19。8086CPU 中,时间周期、指令周期和总线周期的费时长短的排列是( C )。
D:MOV AX,[BX + CX]
23. 使用 8086 汇编语言的伪操作指令定义: VAL DB 2 DUP(1,2,3 DUP(3),2 DUP(1,0)) 则在
VAL 存储区内前十个字节单元的数据是( )。
(A) 1,2,3,3,2,1,0,1,2,3
(B) 1,2,3,3,3,3,2,1,0,1
A。ZF=1
B。ZF=0
C。CX》0
D。CX=0SP=0100-2=00FEH,SS+SP=20000H+00FEH=200FEH
4。指出下面数据段定义的错误
DATA SEGMENT
X DB 332H
ENDS 5。下面指令不合法的是(A) A。IN AX,03F8H B。MOV BX,AX C。REP CMPSB D。SHR BX,CL 6。设 SS=2000H,SP=0100H,执行 PUSH BP 后栈顶的地址是 P=0100-2=00FEH,SS+SP=20000H+00FEH=200FEH 7。下面指令中为直接寻址的是(B) A。ADD AX,WORD PTR [BX+SI] B。ADD AX,X C。INC CX D。MOV BX,7FFFH 8。执行下列程序后,AX=? (0300H) TAB DW 1,2,3,4,5,6
假定 VAR1 和 VAR2 为字变量,LAB 为标号,试指出下列指令的错误之处。
(1)ADD VAR1,VAR2 (2)SUB AL,VAR1
(3)JMP LAB[CX]
(4)JNZ VAR1
(5) MOV [1000H],100
(6)SHL AL, 4 数。
对于下面的符号定义,指出下列指令的错误。
21.CLD 指令是 MOVSB 指令的使用条件之一。
22.段寄存器间不能直接进行数据传送。
23.要把变量 BUFF 的有效地址送给 BX,可用 MOV BX,BUFF 指令。
24.当对堆栈段的数据进行操作时,其操作数的有效地址可保存在 BP 中。
25.TEST 指令属于逻辑运算指令。
26.CS 和 IP 都不能作传送指令的目的操作数。
A:时间周期>指令周期>总线周期
B:时间周期>总线周期>指令周期
C:指令周期>总线周期>时间周期
D:总线周期>指令周期>时间周期 20。CPU 中 PC
存放的是
20。8086CPU 中,控制线 ALE 的作用是。 ( D )
A:数据总线收发器方向控制
B:存储器存取操作控制
C:数据总线收发器有效控制
D:地址/数据线分离控制
ENTRY EQU 3 MOV BX,OFFSET TAB ADD BX,ENTRY MOV AX,[BX]EMORY=01,00,02,00,03,00,从三号单元读一个字到 AX 9。执行下列指令后,AL=? (AL=AL*10) MOV AL,10 SHL AL,1 MOV BL,AL SHL AL,1 SHL AL,1 ADD AL,BL 10。执行下列指令后,AL=? (34H) BUF DW 2152H,3416H,5731H,4684H MOV BX,OFFSET BUF MOV AL,3
21。8086 中,存储器物理地址形成算法是。 ( B )
A:段地址+偏移地址
B:段地址左移 4 位+偏移地址
C:段地址×16H+偏移地址
D:段地址×10 +偏移地址
22。下列指令中,不正确的指令是。 ( D )
A:MOV [BX+SI],AX
B:MOV AX,[BX + SI]
C:MOV AX,SI
8.MOV AX,[BP]的源操作数的物理地址为 16*(DS)+(BP)
9.指令 MOV DI,OFFSET [BX][SI]是正确的。
10.指令 MOV CS,BX 是非法的。
11.指令 NOT AX,BX 是合法的。
12.MOV [BX][BP],AX 是对的。
13.8086 中对堆栈单元的存取操作是以字节为单位。
INC BX
LOOP AGAIN
4.写出下列程序段的功能 LEA SI,BUFFER LEA DI,ARRAY MOV CX,100 XOR BL,BL LP: CMP [SI],01H
JNZ LP1
INC BL LP1:INC SI
LOOP LP MO来自百度文库 [DI],BL
5.写出下列程序段的功 能 MOV CX,16 MOV AX,N MOV BH,0 LP0: SHL AX,1 JC LP INC BH LP: LOOP LP0 MOV SUM,BH
初始化后,未压入数据时,栈底与栈顶是重合的。当堆栈压入数据后,栈顶地址总是小于栈底
地址,位于低地址端。
若 CS 为 0A000H,试说明现行代码段可寻址物理空间的范围。 答:因为 8086 系统中可寻址的最大逻辑段长度为 64K,所以当 CS 为 0A000H,即段基址为 CS*16 =0A0000H 时,现行代码段可寻址物理空间的范围为:0A0000H ~ 0AFFFFH。
14.JMP 指令要影响标志位。
15.INC 指令影响所有状态标志。
16.欲交换寄存器 SI,DI 的内容,可用指令 XCHG SI,DI 实现。
17.CPU 中的程序计数器 IP 中存放的是指令的逻辑地址。
18.两个符号相同的数相减不会产生溢出。
19.汇编程序就是汇编语言程序。
20.相对寻址中的位移量只能用 16 位表示。
MOV DS,AX
DATA3 DD ?
MOV ES,AX
COUNT EQU $-DATA1
MOV SI,0100H
此时 COUNT 的值是( )。
MOV DI,0200H
MOV CX,50D
REP MOVSB
3. 写出下列程序段的功能 MOV BX,2000H MOV DS,BX XOR AL,AL MOV CX,100 AGAIN: MOV [BX],AL
XLAT
11。执行下列指令后,AX=? MOV CX,5 MOV AX,50 NEXT: SUB AX,CX
LOOP NEXT
HLT
(25)
12。汇编语言源程序经汇编后不能直接产生 A。OBJ 文件 B。LST 文件 C。CRF 文件 D。EXE 文件 13。若 AL=10101101B,为使其内容变为 01011101B,应执行那条指令 A。NOT B。AND C。XOR D。OR 14。设 VAR1 及 VAR2 是用 DW 定义的变量,下列指令正确的是(A) A。MOV VAR1,20H B。MOV AL,VAR1 C。MOV VAR1,VAR2 D。MOV 2000H,VAR2
显然,堆栈首址并不是栈低。一般来说,在堆栈所在的内存区内,栈底为高地址端。堆栈
填空题
1.若 SS=5310H,SP=0E30H,其物理地址为( )。
2.若 CH=07H,CL=08H,执行指令 ADD CH,CL 后,AF=( ),CF=( ),OF=( ),PF=( )。
3.指令由( ) 和( ) 两个字段构成。
4. 条件转移指令 JNE 的测试条件是( )。
5.若用指针(BP)访问存储器,则数据包含在( ) 段中。
6.写出下列程序段的 功能 MOV AL,N AND N,0FH MOV BL,N SHR AL,4 MOV BH,AL
8.下面程序段执行后 AL=? ABC DW 2152H,3416H, 5731H,4684H MOV BX,OFFSET ABC MOV AL,3 XLAT 10. 执行下面的程序 段后 AX=? TAB DW 1,2,3,4,5, 6 ENTRY EQU 6 MOV BX,OFFSET TAB ADD BX,ENTRY MOV AX,[BX]
判断题
1.指令 MOV AX,[BX]的源操作数是寄存器寻址方式。
2.对堆栈区的操作必须遵循先进先出的原则。
3.比较两个带符号数的大小,可根据 CF 标志来判断。
4.逻辑操作符 AND,OR,XOR 和 NOT,只能用于数字表达
5.不能给段寄存器赋立即数。
6.OF 位可用来表示有符号数的溢出。
7.无条件转移指令只能用于段内直接转移。
6. 若 AX=1234H,SP=1000H,指令 PUSH AX 执行后 AX=( ),SP=( ) 。
7.指令采用( )寻址方式时操作数是在代码段中。
阅读程序
1. 程序中数据定义如下:
2.分析下列程序段,说出其功能。MOV AX,
DATA1 DW ?
1000H
DATA2 DB 32 DUP(?)
若(CS)=5200H 时,物理转移地址为 5B230H,则当 CS 的内容被设定为 7800H,物理转移地 址应为多少?
答 : 按题 目条 件可 知该 转 移地 址距 CS 所指 代 码段 的段 基址 的偏 移 量为 9230H ( 即 = 5B230H-52000H),因此若(CS)=7800H,则物理转移地址应为:78000H +9230H=81230H。
15。若 ES 段有一个字符串‘12FG3LM5C’,名为 ARRAY,下面程序执行后,CX 值是多少?
(B)
CLD
LEA DI,ES:ARRAY
MOV AL,‘G’
MOV CX,9
REPNE SCASB
HLT
A。9
B。5
C。4
D。0
16。执行下列指令后,DX=? MOV CX,10 MOV DX,12 NEXT: ADD DX,CX DEC CX LOOP NEXT HLT
某系统中,已知建立堆栈时 SS=2360H,SP=0800H,经过一段时间后,SP 的内容变为 0700H,
则堆栈中有多少个字的数据( )
A、80H
B、50H
C、100 D、100H
对于由 8086/8088 CPU 组成的系统,堆栈的位置如何确立?堆栈的首址(即 SS 中的值)是不是 栈底?为什么?
7.执行下列程序段后, AX=? MOV AX,0702H MOV BH,09H AAD DIV BH
9.执行下面的程序段后 AX=? MOV CX,5 MOV AX,50 NEXT: SUB AX,CX LOOP NEXT HLT
11. 执行下面程序段后 AX= ARRAY DW 1,2,3,4, 5,6,7,8,9,10 COUNT EQU $-ARRAY XOR AX,AX MOV CX,COUNT MOV SI,OFFSET ARRAY NEXT:ADD AX,[SI] INC SI LOOP NEXT
A1 DB ?
A2 DB 10
K1 EQU 1024
(1)MOV K1,AX (2)MOV A1,AX
(3)CMP A1,A2 (4)K1 EQU 2048
解答:(1)K1 为常量,不能用 MOV 指令赋值;
(2)A1 为字节,AX 为字变量,不匹配;
(3)A1 未定义,无法做比较指令;
(4)K1 重新赋值前,必须用 PURGE 释放。
(C) 2,1,2,3,3,2,1,0
(D) 1,2,3,3,3,1,0,1,0,1
下列有关指令指针寄存器的说法中,哪一个是正确的(
)。
A、IP 存放当前正在执行的指令在代码段中的偏移地址
B、IP 存放下一条将要执行的指令在代码段中的偏移地址
C、IP 存放当前正在执行的指令在存储器中的物理地址
D、IP 存放当前正在执行的指令在存储器中的段地址
1。若定义 DAT DW ‘12’ ,则 DAT 及 DAT+1 单元的数据是(A) A。32H,31H B。31H,32H C。00H,0CH D。00H,12H
2。下列指令中不影响标志位的是(D)
A。ADD BX,CX
B。SUB BX,1000
C。SAR DX,1
D。DIV CX
3。串操作中有 REP 的指令结束的条件是(D)
(12+10+8+6+4+2)=42))
17。CPU 中 PC 存放的是(B) A。指令 B。指令地址 C。操作数 D。操作数地址
18。执行下列指令后 AL=? (48) MOV AL,128 MOV CL,2 SHR AL,CL MOV CL,AL SHR AL,1 ADD AL,CL
19。8086CPU 中,时间周期、指令周期和总线周期的费时长短的排列是( C )。
D:MOV AX,[BX + CX]
23. 使用 8086 汇编语言的伪操作指令定义: VAL DB 2 DUP(1,2,3 DUP(3),2 DUP(1,0)) 则在
VAL 存储区内前十个字节单元的数据是( )。
(A) 1,2,3,3,2,1,0,1,2,3
(B) 1,2,3,3,3,3,2,1,0,1
A。ZF=1
B。ZF=0
C。CX》0
D。CX=0SP=0100-2=00FEH,SS+SP=20000H+00FEH=200FEH
4。指出下面数据段定义的错误
DATA SEGMENT
X DB 332H
ENDS 5。下面指令不合法的是(A) A。IN AX,03F8H B。MOV BX,AX C。REP CMPSB D。SHR BX,CL 6。设 SS=2000H,SP=0100H,执行 PUSH BP 后栈顶的地址是 P=0100-2=00FEH,SS+SP=20000H+00FEH=200FEH 7。下面指令中为直接寻址的是(B) A。ADD AX,WORD PTR [BX+SI] B。ADD AX,X C。INC CX D。MOV BX,7FFFH 8。执行下列程序后,AX=? (0300H) TAB DW 1,2,3,4,5,6
假定 VAR1 和 VAR2 为字变量,LAB 为标号,试指出下列指令的错误之处。
(1)ADD VAR1,VAR2 (2)SUB AL,VAR1
(3)JMP LAB[CX]
(4)JNZ VAR1
(5) MOV [1000H],100
(6)SHL AL, 4 数。
对于下面的符号定义,指出下列指令的错误。
21.CLD 指令是 MOVSB 指令的使用条件之一。
22.段寄存器间不能直接进行数据传送。
23.要把变量 BUFF 的有效地址送给 BX,可用 MOV BX,BUFF 指令。
24.当对堆栈段的数据进行操作时,其操作数的有效地址可保存在 BP 中。
25.TEST 指令属于逻辑运算指令。
26.CS 和 IP 都不能作传送指令的目的操作数。
A:时间周期>指令周期>总线周期
B:时间周期>总线周期>指令周期
C:指令周期>总线周期>时间周期
D:总线周期>指令周期>时间周期 20。CPU 中 PC
存放的是
20。8086CPU 中,控制线 ALE 的作用是。 ( D )
A:数据总线收发器方向控制
B:存储器存取操作控制
C:数据总线收发器有效控制
D:地址/数据线分离控制
ENTRY EQU 3 MOV BX,OFFSET TAB ADD BX,ENTRY MOV AX,[BX]EMORY=01,00,02,00,03,00,从三号单元读一个字到 AX 9。执行下列指令后,AL=? (AL=AL*10) MOV AL,10 SHL AL,1 MOV BL,AL SHL AL,1 SHL AL,1 ADD AL,BL 10。执行下列指令后,AL=? (34H) BUF DW 2152H,3416H,5731H,4684H MOV BX,OFFSET BUF MOV AL,3
21。8086 中,存储器物理地址形成算法是。 ( B )
A:段地址+偏移地址
B:段地址左移 4 位+偏移地址
C:段地址×16H+偏移地址
D:段地址×10 +偏移地址
22。下列指令中,不正确的指令是。 ( D )
A:MOV [BX+SI],AX
B:MOV AX,[BX + SI]
C:MOV AX,SI
8.MOV AX,[BP]的源操作数的物理地址为 16*(DS)+(BP)
9.指令 MOV DI,OFFSET [BX][SI]是正确的。
10.指令 MOV CS,BX 是非法的。
11.指令 NOT AX,BX 是合法的。
12.MOV [BX][BP],AX 是对的。
13.8086 中对堆栈单元的存取操作是以字节为单位。
INC BX
LOOP AGAIN
4.写出下列程序段的功能 LEA SI,BUFFER LEA DI,ARRAY MOV CX,100 XOR BL,BL LP: CMP [SI],01H
JNZ LP1
INC BL LP1:INC SI
LOOP LP MO来自百度文库 [DI],BL
5.写出下列程序段的功 能 MOV CX,16 MOV AX,N MOV BH,0 LP0: SHL AX,1 JC LP INC BH LP: LOOP LP0 MOV SUM,BH
初始化后,未压入数据时,栈底与栈顶是重合的。当堆栈压入数据后,栈顶地址总是小于栈底
地址,位于低地址端。
若 CS 为 0A000H,试说明现行代码段可寻址物理空间的范围。 答:因为 8086 系统中可寻址的最大逻辑段长度为 64K,所以当 CS 为 0A000H,即段基址为 CS*16 =0A0000H 时,现行代码段可寻址物理空间的范围为:0A0000H ~ 0AFFFFH。
14.JMP 指令要影响标志位。
15.INC 指令影响所有状态标志。
16.欲交换寄存器 SI,DI 的内容,可用指令 XCHG SI,DI 实现。
17.CPU 中的程序计数器 IP 中存放的是指令的逻辑地址。
18.两个符号相同的数相减不会产生溢出。
19.汇编程序就是汇编语言程序。
20.相对寻址中的位移量只能用 16 位表示。
MOV DS,AX
DATA3 DD ?
MOV ES,AX
COUNT EQU $-DATA1
MOV SI,0100H
此时 COUNT 的值是( )。
MOV DI,0200H
MOV CX,50D
REP MOVSB
3. 写出下列程序段的功能 MOV BX,2000H MOV DS,BX XOR AL,AL MOV CX,100 AGAIN: MOV [BX],AL
XLAT
11。执行下列指令后,AX=? MOV CX,5 MOV AX,50 NEXT: SUB AX,CX
LOOP NEXT
HLT
(25)
12。汇编语言源程序经汇编后不能直接产生 A。OBJ 文件 B。LST 文件 C。CRF 文件 D。EXE 文件 13。若 AL=10101101B,为使其内容变为 01011101B,应执行那条指令 A。NOT B。AND C。XOR D。OR 14。设 VAR1 及 VAR2 是用 DW 定义的变量,下列指令正确的是(A) A。MOV VAR1,20H B。MOV AL,VAR1 C。MOV VAR1,VAR2 D。MOV 2000H,VAR2