资源描述
汇编总复习
第一章 微型计算机基础
一、 选择题
1.8088是第一代个人计算机所采用的微处理器,其内部数据总路线是 A 。
A.16位 B.8位 C.20位 D.32位
2.8086微处理器,其地址总线是 C 。
A.16位 B.8位 C.20位 D.32位
3.一个完整的计算机系统包括 B 。
A.计算机及其外设 B.硬件系统与软件系统
C.主机、键盘、显示器 D.系统软件、应用软件
4.计算机存储系统中,高速缓冲(CACHE)存储器可以 A 。
A.提高整个系统的存储速度 B.提高存储可靠性
C.增加存储容量 D.作暂存存储器用
5.对存储器按字节进行编址,若某存储器芯片共有10根地址线,则该项存储器芯片的容量为 B 。
A.512B B.1KB C.2KB D.4KB
6.地址总线的宽度与CPU的 A 相关。
A.内在寻址能力 B.字长 C.运算速度 D.运算精度
7.数据总线是 B 的。
A.单向 B.双向 C.某条单向,总体双向 D.高阻
二、真空
1.根据传送的信息不同,一般计算机中的总路线可分为 地址 总线、 数据 总路线和 控制 总线。
2.CACHE是在 CPU 与 内存 之间设置的一个小容量的高速缓冲存储器。
三、综合题
1.设8086CPU内部寄存器CS=B987H,IP=1117H,试计算存储器的物理地址。
CS × 24 + IP = B9870H + 1117H = 0BA987H
2.设某机字长8位(含一位符号位),分别写出下列各二进制数的原码、补码和反码。
0,-0,0.1000,-0.1000,0.1111,-0.1111,1101,-1101
[0]原=00000000 [-0.1000]原=1.1000000 [0.1000]原=0.1000000 [1101]原=00001101
[0]补=00000000 [-0.1000]补=1.1000000 [0.1000]补=0.1000000 [1101]补=00001101
[0]反=00000000 [-0.1000]反=1.0111111 [0.1000]反=0.1000000 [1101]反=00001101
[-0]原=10000000 [0.1111]原=0.1111000 [-0.1111]原=1.1111000 [-1101]原=10001101
[-0]补=00000000 [0.1111]补=0.1111000 [-0.1111]补=1.0001000 [-1101]补=11110011
[-0]反=11111111 [0.1111]反=0.1111000 [-0.1111]反=1.0000111 [-1101]反=11110010
3.写出右边各数的原码、补码和反码。7/16,4/16,1/16,0,-1/16,-4/16,-7/16
[7/16]原=[7/16]补=[7/16]反=7×2-4=0111×2-4 =0.0111
[4/16]原=[4/16]补=[4/16]反=4×2-4=0100×2-4 =0.0100
[1/16]原=[1/16]补=[1/16]反=0001×2-4 =0.0001
[0]原=[0]补=[0]反=0000
[-1/16]原=1.0111 [-1/16]补=1.1001 [-1/16]反=1.1000
[-4/16]原=1.0100 [-4/16]补=1.1100 [-4/16]反=1.1011
[-7/16]原=1.0100 [-7/16]补=1.1100 [-7/16]反=1.1011
第二章 汇编语言与汇编程序
1. 在8086系统中,设(DS)=1000H,(ES)=2000H,(SS)=1200H,(BX)=0300H,(SI)=0200H,(BP)=0100H,VAR的编移量为0060H,请指出下列指令的目标操作数的寻址方式,若目标操作数为存储器操作数,请计算它们的物理地址是多少?
(1) MOV BX,12 (2) MOV AL,128 (3) MOV [BX],DX (4) MOV ES:[SI],AX
(5) MOV VAR,8 (6) MOV [1000H],DX (7) MOV 6[BX],CX
(8) MOV [BX][SI],AX (9) MOV 6[BP][SI],AL
答案:
题号
目标操作数寻址方式
物理地址
⑴
寄存器寻址方式
———
⑵
寄存器寻址方式
———
⑶
寄存器间接寻址方式
DS:[BX]=10300H
⑷
寄存器间接寻址方式
ES:[SI]=20200H
⑸
直接寻址方式
DS:VAR=10060H
⑹
直接寻址方式
DS:1000H=11000H
⑺
寄存器相对寻址方式
DS:[BX+6]=10306H
⑻
基址变址寻址方式
SS:[BX+SI]=10500H
⑼
相对基址变址寻址方式
SS:[BP+SI]=12306H
2. 设(DS)=2000H,(SS)=3000H,(CS)=1200H,(BX)=0300H,(IP)=0100H,指令标号LAB的偏移量为0060H,(20300H)=50H,(20301H)=01H,(20306H)=0BH,(20306H)=05H,试确定以下JMP指令转向的物理地址是多少?
(1) JMP BX (2)JMP 6[BX]
答:(1) ∵ (IP)=(BX)=0300H
∴ 所以转向的物理地址为12300H
(2) ∵(IP)=(DS:[BX+6])=(20306H)=050BH
∴ 所以转向物理地址为1250BH
3. 设(CS)=2000H,CS:0100H单元有一条JMP SHORT LAB指令,若其中的位移量为:
(1)60H (2)80H (3)0E0H
试写出转向目标的物理是多少?
答:因为CS:0100H处存放两字节指令,所以当执行该指令时(IP)=0102H
(1)转向物理地址为:(CS)*10H(IP)+0060H=20162H
(2)转向物理地址为:(CS)*10H(IP)+OFF80H=20082H
(3)转向物理地址为:(CS)*10H+(IP)+OFFEOH=200E2H
4. 试述以下指令的区别
(1) MOV AX,3000H 与 MOV AX,[3000H]
MOV AX,3000H指令源操作数的寻址方式为立即寻址方式,指令执行结果为:(AX)=3000H。而MOV AX,[3000H]指令源操作数的寻址方式为直接寻址方式,指令执行结果为:(DS:3000H)→AX。
(2) MOV AX,MEM 与 MOV AX,OFFSET MEM
MOV AX,MEM指令源操作数的寻址方式为直接寻址方式,指令执行结果为:
(DS:MEM)→AX。而MOV AX,OFFSET MEM指令的执行结果是把MEM的偏移量送AX。
(3) MOV AX,MEM 与 LEA AX,MEM
MOV AX,MEM指令的执行结果是(DS:MEM)→AX。而LEA AX,MEM的执行结果是把MEM的偏移量送AX。
5. 指出下列指令的错误
题目 答案
⑴ MOV [AX],BX 寄存器间接寻址方式不能用AX寄存器
⑵ MOV AL,1280 源操作数超出目标范围
⑶ MOV [BX],9 目标操作数类型未知
⑷ MOV DS,1000H 立即数不能直接送段寄存器
⑸ MOV VAR,[BX] 两个操作数不能同时为存储器操作数
⑹ MOV M1,M2 两个操作数不能同时为存储器操作数
⑺ MOV 6,CX 操作数不能是立即数
⑻ MOV AX,[SI][DI] 源操作数寻址方式错
⑼ MOV CS,AX 操作数不能是代码段寄存器
⑽ MOV BX,OFFSET VAR[SI] OFFSET后只能跟变量或标号名
6. 写出把首址为BUF的字型数组的第4个字送到AX寄存器的指令,要求使用以下几种寻址方式
⑴ 直接寻址方式
⑵ 使用BX的寄存器间接寻址方式
⑶ 使用BX的寄存器相对寻址方式
答案:
⑴ MOV AX,BUF+3*2
⑵ LEA BX,BUF+3*2
MOV AX,[BX]
⑶ MOV BX,3*2
MOV AX,BUF[BX]
7. 设(AX)= 0C5FFH,(BX)= 9E00H,试实现以下要求:
⑴ ADD AX,BX 指令执行后,根据结果设置标志位ZF、SF、CF、OF、AF、PF,并讨论结果的正确性。
答案:
执行ADD AX,BX 指令后,(AX)=0110001111111111B,并且最高位向前有进位。因此, 设置标志位如下:
ZF SF CF OF AF PF
0 0 1 1 0 1
(NZ) (PL) (CY) (OV) (NA) (PE)
讨论结果:
对于无符号数而言,因为CF=1,所以结果不正确。
对于带符号数而言,因为OF=1,所以结果不正确。
8. 编程序使
⑴ 使AL的各位变反。
⑵ BX寄存器低四位置1。
⑶ AX寄存器的低四位清0。
⑷ 使CX寄存器的低四位变反。
⑸ 用TEST指令测试AL寄存器的位0和位6是否同时为0,若是则把0送DH寄存器,否则把1送DH寄存器。
答案:
⑴ NOT AL
⑵ OR BX,000FH
⑶ AND AX,0FFF0H
⑷ XOR CX,000FH
⑸ TEST AL,0100001B
JZ A
MOV DH,1
JMP SHORT B
A: MOV DH,0
B: …
9. 试分析下面的程序段完成什么功能?
MOV CL,4
SHL DX,CL
MOV BL,AH
SHL AL,CL
SHR BL,CL
OR DL,BL
答案:
把DX和AX一对寄存器所形成的32位内容左移四位。其中DX中为高16位,AX中为低16位。
第二-三章 汇编语言与程序设计
1.下面的数据项定义了多少个字节?
DATA_1 DB 6DUP(4DUP(0FFH))
24个字节
2.对于下面两个数据段,偏移地址为10H和11H的两个字节中的数据是一样的吗?
DTSEG SEGMENT
|
DTSEG SEGMENT
ORG 10H
|
ORG 10H
DATA1 DB 72H
|
DATA1 DW 7204H
DB 04H
|
DTSEG END S
DTSEG ENDS
|
不一样,分别是72H,04H和04H,72H。存储字时低8位存在低字节,高8位存在高字节。
3.下面的两个数据项分别设置了多少个字节?
(1)ASC_DATA DB‘1234’
31 H
32 H
33 H
34H
4个字节 ASC_DATA
(2)HEX_DATA DB 1234H
34H
12 H
2个字节 HEX_DATA
4.执行下列指令后,AX寄存器中的内容是什么?
TABLE DW 10,20,30,40,50
ENTRY DW 3
MOV BX,OFFSET TABLE
ADD BX,ENTRY
MOV AX,[BX]
AX寄存器内容为40H
10 H
20H
30 H
40H
50H
TABLE
TABLE+3
5.指出下列指令的错误
(1)MOV AH,BX
源、目的字长度不一致
(2)MOV [SI],[BX]
源、目的不能同时为存贮器寻址方式
(3)MOV AX,[SI][DI]
基址变址方式不能有SI和DI的组合
(4)MOV AX,[BX][BP]
基址变址方式不能有BX和BP的组合
(5)MOV [BX],ES:AX
在8086寻址方式中,AX不能做为基址寄存器使用,而且源、目的不能同时为存贮器寻址方式
(6)MOV BYTE PTR[BX],1000
1000超出一个字节的表述范围
(7)MOV AX,OFFSET [SI]
OFFSET只能用于简单变量,应去除
(8)MOV CS,AX
CS不能作为目的的寄存器
(9)MOV DS,BP
段地址不能直接送入数据段寄存器
6.设(DS)=1BOOH,(ES)=2BOOH,有关存储器地址及其内容如右图所示,请用两条指令把X 装入AX 寄存器。
答案:
LES BX, [2000H]
MOV AX, ES: [BX]
7.试分析下面的程序段完成什么操作?
MOV CL , 04
SHL DX , CL
MOV BL , AH
SHL AX , CL
SHR BL , CL
OR DL , BL
答案: 将DX: AX中的双字左移4位(乘16)
8.假设(CS)=3000H,(DS)=4000H,(ES)=2000H,(SS)=5000H,(AX)=2060H, (BX)=3000H,(CX)=5,(DX)=0,(SI)=206OH,(DI)=3000H,(43000H)=0A006H, (23000H)=OB116H,(33000H)=0F802H,(25060)=00B0H,(SP)=0FFFEH,(CF)=1,(DF)=1,请写出下列各条指令单独执行完后,有关寄存器及存储单元的内容,若影响状态标志寄存器请给出状态标志SF、ZF、OF、CF的值。
( 1 ) SBB AX,BX
( 2 ) CMP AX,WORD PTR[SI+0FAOH]
( 3 ) MUL BYTE PTR[BX]
( 4 ) AAM
( 5 ) DIV BH
( 6 ) SAR AX,CL
( 7 ) XOR AX,0FFE7H
( 8 ) REP STOSB
( 9 ) JMP WORD PYR[BX]
( 10 ) XCHG AX,ES[BX+SI]
答案:
(1) (AX)=0F05FH, (SF)=1, (ZF)=0, (OF)=0, (CF)=1
(2) (SF)=1, (ZF)=0, (OF)=1, (CF)=1
(3) (AX)=0240H, (OF)=1, (CF)=1
(4) (AX)=0906H, (SF)=0, (ZF)=0
(5) (AX)=20ACH
(6) (AX)=0103H, (CF)=0
(7) (AX)=0DF87H, (CF)=0, (OF)=0, (SF)=1, (ZF)=0
(8) (23000H)~(23004H)=60H, 不影响标志位
(9) (IP)=0A006H, 不影响标志位
(10) (AX)=00B0H, (25060)=2060H, 不影响标志位
9.设(CS)=1000H,(DS)=2000H,(ES)=3000H,(SS)=4000H,(SP)=100H,(BX)=200H,(SI)=1,(20200H)=400H,(30200H)=1400H,(20202H)=0004,(20204H)=202H,(21400H)=1234H,(21405H)=5678H
执行下列程序段(注意:不是单条指令),填空回答问题
MOV BP,256 :源字段的寻址方式是 立即寻址方式
:指令执行后(BP)= 100 H
PUSH ES:[BX] :源操作数物理地址= 3200 H
MOV DI,3[BX][SI] :(DI)= 202 H
DEC SI :源字段的寻址方式是 寄存器寻址方式
:指令执行后(SI)= 0 H
INC [DI] :目的操作数物理地址= 20202 H
MOV AX,[DI] :(AX)= 0005 H
ADD -2[BP],AX :目的操作数物理地址= 400FE H
POP BX
MOV AX,[BX+SI] :程序段执行完后,(AX)= 5678 H
10. 已知下列程序段
ADD AL,BL
JO L1
JC L2
CMP AH,BH
JG L3 ;若大于就跳转
JB L4
JMP L5
若给定AX和BX的值如下,说明程序的转向。
(1)(AX)=14C8H,(BX)=808DH
(2)(AX)=D082H,(BX)=9F70H
(3)(AX)=427BH,(BX)=60DCH
(4)(AX)=3F23H,(BX)=50D0H
(5)(AX)=0042H,(BX)=0FF3DH
答案
(1)L1
(2)L3
(3)L2
(4)L4
(5)L3
第五章 存储器及其接口
一个8位微机系统,寻址空间64KB。给定该系统的存储空间分配如下图2 所示。图1是存储器片选信号()的译码电路。表1是译码器74LS139的真值表。
1)将图1译码电路的跳线端子组A、B连上适当的连线,使、、、四个片选信号的逻辑符合存储空间分配的要求;
2)写出四个片选信号、、、的逻辑表达式。
74LS139
G
B
A
Y0
Y1
Y2
Y3
1
X
X
1
1
1
1
0
0
0
0
1
1
1
0
0
1
1
0
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
0
(表1)
2)
第七章 中断技术
一、选择填空
1、8086 微处理器的偏移地址是指 B
A、芯片地址引线送出的20 位地址码;
B、段内某单元相对段首地址的差值;
C、程序中对存储器地址的一种表示;
D、芯片地址引线送出的16位地址码.
2、在下列有关中断向量表的描述中,不正确的有 B
A、中断向量是指中断处理程序的段地址和偏移地址;
B、中断向量是按软中断和硬中断的顺序存放的;
C、中断向量表保存各类中断处理程序的入口地址;
D、每个中断处理程序的入口地址在中断向量表中占4个字节.
3、INT 1AH的中断向量在中断向量表中的地址为 D
A、34H—35H B、34H—37H C、68H—7lH D、68H—6BH
4、8086微处理器的引线INTR 是 C
A、内部复位命令输入线;
B、读内部状态的命令输入线;
C、可屏蔽中断请求输入线;
D、非屏蔽中断请求输入线.
5、8086微处理器所处理的硬件中断是由于 C 而产生的.
A、8086 片内功能部件出现故障;
B、8086 片外功能部件请求服务;
C、8086 片内标志寄存器某标志位置位;
D、8086 被复位.
6、8086 微处理器的中断向量表存放在 B 内.
A、8086 片内的一组寄存器;
B、8086 片外RAM 的O—3FFH存储区;
C、8086 片外RAM 的FFC00H—FFFFFH存储区;
7、8086 微处理器具有处理 B 种中断过程的能力.
A、16; B、256; C、64; D、32.
8、在下列有关中断的描述中,不正确的有 D .
A、显示器中断是一种可屏蔽中断;
B、产生硬中断的条件之一是相应外设的中断屏蔽位为O;
C、开中断时允许CPU 响应外设的中断请求;
D、中断发生时CPU 清除IF,设置TF。
9、在INTEL 8259A 中,当 A ,则对应IRn 的中断请求被屏蔽。
A、IMRn位被置1时; B、IRn位被置1时;
C、IMRn位被置1时; D、IRn位被置O时.
二、问答题
1、什么是硬件中断和软件中断?在PC 机中两者的处理过程有什么不同?
答:硬件中断是通过中断请求线输入电信号来请求处理机进行中断服务;软件中断是处理机内部识别并进行处理的中断过程。硬件中断一般是由中断控制器提供中断类型码,处理机自动转向中断处理程序;软件中断完全由处理机内部形成中断处理程序的入口地址并转向中断处理程序,不需外部提供信息。
2、8259A 初始化编程过程完成那些功能?这些功能由哪些ICW 设定?
答:初始化编程用来确定8259A的工作方式。ICW1确定8259A工作的环境:处理器类型、中断控制器是单片还是多片、请求信号的电特性。ICW2用来指定8个中断请求的类型码。ICW3在多片系统中确定主片与从片的连接关系。ICW4用来确定中断处理的控制方法:中断结束方式、嵌套方式、数据线缓冲等。
3、8259A 在初始化编程时设置为非中断自动结束方式,中断服务程序编写时应注意什么?
答:在中断服务程序中,在返回主程序之前按排一条一般中断结束命令指令,8259A 将ISR中最高优先级位置0,结束该级中断处理以便为较低级别中断请求服务。
4、8086 的中断向量表如何组成?作用是什么?
答:
1)把内存O段中O—3FFH区域作为中断向量表的专用存储区:
2)该区域存放256种中断的处理程序的入口地址;
3)每个入口地址占用4个存储单元,分别存放入口的段地址与偏移地址。
5、若8086 系统采用单片8259A 中断控制器控制中断,中断类型码给定为20H ,中断源的请求线与8259A 的IR4 相连,试问:对应该中断源的中断向量表入口地址是什么?若中断服务程序入口地址为4FE24H ,则对应该中断源的中断向量表内容是什么,如何定位?
答:中断向量表入口地址为:0段的0090H地址。对应4FE24H中断服务程序入口,在向量表中定位情况:(0090H )=24H、(0091H )=00H、(0092H) = EOH、(0093H)= 4FH。
6、试按照如下要求对8259A 设定初始化命令字:8086 系统中只有一片8259A ,中断请求信号使用电平触发方式,全嵌套中断优先级,数据总线无缓冲,采用中断自动结束方式。中断类型码为20H 一27H , 8259A 的端口地址为BOH 和B1H 。
答:ICW1=1BH(送B0H端口), ICW2=20H(送B1H端口),ICW4=03H(送B1端口)
三、判断下列论述是否正确,不正确的请加以改正。
(1)INT 指令执行后,堆栈顶部三个栈单元(SP)、(SP) + 2 、(SP) + 4 依次保存FLAGS 、断点IP 值、断点CS 值。
(2)中断类型号是中断向量表中存放相应中断向量的首地址。
答:(1)不对,堆栈顶部三个栈单元,(SP)、(SP)+2 、(SP)+4依次保存的应是断点IP值、断点CS值、FLAGS 。
(2)不对,中断类型号*4才是相应中断向量的首地址。
展开阅读全文