资源描述
一、填空题
1、8086CPU有(20)根地址线,能寻址的最大空间是( 1MB );8086CPU内部的段寄存器是( 16 )位,故存储器每个段的最大长度为( 64KB )。
2、16位带符号数的能表达的数值范围是(-32768~ +32767 ),当算术运算的结果超过8位、16位、32带符号数能表示的范围时,标志寄存器的( OF )位会置位。
3、假设某个字的值是1234H,其低位字节地址是30H,高位字节地址是31H,那么该字的地址是(30H )。
4、8086CPU从内部功能上可分为(执行部件)和(总线接口部件)两个独立的功能部件。
5、 存储器的物理地址是指(存储器的绝对地址,即20位的实际地址),存储器的逻辑地址是指(程序设计时采用的存储器地址)。是由(段基址)和(段内偏移地址)组成的。
6、物理地址=段地址×16+偏移地址,设段地址=1234H,偏移地址=5678H,则逻辑地址为(1234H:5678H),物理地址为(179B8H )。
7.系统总线是计算机内部的大动脉,将不同的功能部件连接在一起,计算机的系统总线分为( 地址总线 ) 、(数据总线 ) 和 ( 控制总线 )三大类。
8. 8086系统中的寻址方式包括(立即寻址)、(直接寻址)、(寄存器寻址)、(寄存器间接寻址)、(寄存器相对寻址)、(基址变址寻址)、和(相对基址变址寻址)组成的。
9. 当对堆栈操作时, 8086 会自动选择(SS)值作为段基值,再加上由 (SP)提供的偏移量形成物理地址。
10. 每条指令的执行过程中是由(取指) 、 (译码) 和 (执行)等操作组成。
11. 计算机 CPU 与输入 / 输出设备之间交换的信息包括 (数据信息) 、(状态信息) 和 (控制信息)三类信号。
12.指令MOV AX,[BX+SI+6]源操作数的寻址方式( 相对基址加变址寻址 )。
二、选择题
1. 指令MOV AX,ES:[BX][SI]中,源操作数的物理地址是( B ) 。
A. 16*(DS)+(BX)+(SI) B. 16*(ES)+(BX)+(SI)
C. 16*(SS)+(BX)+(SI) D. 16*(CS)+(BX)+(SI)
2.汇编指令“MOV AX,20[DI]”将从存储器中读( B )字节的内容到累加器。
A. 1 B. 2 C. 3 D. 4
3.对于指令“MOV AX,1267H”,指令中的立即数1267H是存储在( C)中。
A.数据段 B. 堆栈段 C. 代码段 D.附加段
4.8086 CPU 系统执行传送指令MOV时( D )。
A.影响标志位 B.影响DF方向标志位 C.影响CF进位标志 D.不影响状态标志位
5.与“MOV BX,OFFSET VAR ”指令完全等效的指令是 ( D )。
A.MOV BX,VAR B.LDS BX,VAR C.LES BX,VAR D.LEA BX,VAR
6.以下寄存器中,属于数据寄存器的是( A )
A、BX B、SP C、SI D、DI
7.存储器操作数的有效地址直接取自一个基址寄存器或变址寄存器的寻址方式是( B )
A、直接寻址 B、寄存器间接寻址 C、基址寻址 D、变址寻址
8.( A )是构成存储器的最基本的单位。
A、存储单元 B、存储段 C、存储体 D、芯片
9. 在机器内部操作中,CPU与存储器之间信息交换使用的是( B )。
A、逻辑地址 B、物理地址 C、有效地址 D、相对地址
三、简答题
1.10 在计算机中,一个汉字使用几位二进制进行编码? 16位
1.11 计算机的硬件由哪几部分组成?分别的作用是?中央处理单元CPU、内部存储器、输入/输出接口及系统总线组成。
(1)CPU 解释执行指令并进行运算的部件;
(2)存储器 临时或永久性保存计算机的软件资源;
(3)输入/输出接口 作为中央处理机与外部设备之间的连接通道,将CPU发出的控制信号和数字信号转换成外设所能识别的数字符号或者具体指令, 或将外设发送给CPU的数据和状态信息转换成CPU所能接受的数字信息;(大部分同学在第三点略写了,扣1分)
(4)系统总线 系统部件之间实现传送地址、数据和控制信息的操作。
2.2 微处理器主要由三部分组成:
按功能可分为两部分:总线接口单元BIU(Bus Interface Unit)和执行单元EU(Execution Unit)。
总线接口单元BIU是8086 CPU在存储器和I/O设备之间的接口部件,负责对全部引脚的操作,即8086对存储器和I/O设备的所有操作都是由BIU完成的。所有对外部总线的操作都必须有正确的地址和适当的控制信号,BIU中的各部件主要是围绕这个目标设计的。它提供了16位双向数据总线、20位地址总线和若干条控制总线。
其具体任务是:负责从内存单元中预取指令,并将它们送到指令队列缓冲器暂存。CPU执行指令时,总线接口单元要配合执行单元,从指定的内存单元或I/O端口中取出数据传送给执行单元,或者把执行单元的处理结果传送到指定的内存单元或I/O端口中。
执行单元EU中包含1个16位的运算器ALU、8个16位的寄存器、1个16位标志寄存器FR、1个运算暂存器和执行单元的控制电路。这个单元进行所有指令的解释和执行,同时管理上述有关的寄存器。EU对指令的执行是从取指令操作码开始的,它从总线接口单元的指令队列缓冲器中每次取一个字节。如果指令队列缓冲器中是空的,那么EU就要等待BIU通过外部总线从存储器中取得指令并送到EU,通过译码电路分析,发出相应控制命令,控制ALU数据总线中数据的流向。
2.3 8086微处理器内部共有14个16位寄存器,包括通用寄存器,指针与变址寄存器,段寄存器,指令指针和标志寄存器。
(1)通用寄存器:通用寄存器又称数据寄存器,既可作为16位数据寄存器使用,也可作为两个8位数据寄存器使用。当用作16位时,称为AX、BX、CX、DX。当用作8位时,AH、BH、CH、DH存放高字节,AL、BL、CL、DL存放低字节,并且可独立寻址。这样,4个16位寄存器就可当作8个8位寄存器来使用。
(2)段寄存器:段寄存器共有4个CS、DS、SS、ES。代码段寄存器CS表示当前使用的指令代码可以从该段寄存器指定的存储器段中取得,相应的偏移值则由IP提供;堆栈段寄存器SS指定当前堆栈的起始地址;数据段寄存器DS指示当前程序使用的数据所存放段的起始地址;附加段寄存器ES则指出当前程序使用附加段地址的起始位置,该段一般用来存放原始数据或运算结果。
(3)指针和变址寄存器:堆栈指针SP用以指出在堆栈段中当前栈顶的地址。入栈(PUSH)和出栈(POP)指令由SP给出栈顶的偏移地址。基址指针BP指出要处理的数据在堆栈段中的基地址,故称为基址指针寄存器。变址寄存器SI和DI用来存放当前数据段中某个单元的偏移量。
(4)指令指针与标志寄存器:指令指针IP的功能跟Z80 CPU中的程序计数器PC的功能类似。正常运行时,IP中存放的是BIU要取的下一条指令的偏移地址。它具有自动加1功能,每当执行一次取指令操作时,它将自动加1,使它指向要取的下一内存单元,每取一个字节后IP内容加1,而取一个字后IP内容则加2。某些指令可使IP值改变,某些指令还可使IP值压入堆栈或从堆栈中弹出。标志寄存器FLAGS是16位的寄存器,8086共使用了9个有效位,标志寄存器格式如图2.5所示。其中的6位是状态标志位,3位为控制标志位。状态标志位是当一些指令执行后,表征所产生数据的一些特征。而控制标志位则可以由程序写入,以达到控制处理机状态或程序执行方式的表征。
2.4 (1)6个状态标志位:
① OF(Overflow Flag)溢出标志(一般指补码溢出)
OF=1:在运算过程中,如操作数超过了机器表示的范围称为溢出。
OF=0:在运算过程中,如操作数未超过了机器能表示的范围称为不溢出。
② SF(Sign Flag)符号标志
SF=1:记录运算结果的符号为负。
SF=0:记录运算结果的符号为正。
③ ZF(Zero Flag)零标志
ZF=1:运算结果为0。
ZF=0:运算结果不为0。
④ CF(Carry Flag)进位标志
CF=1:记录运算时从最高有效位产生进位值。
CF=0:记录运算时从最高有效位不产生进值。
⑤ AF(Auxiliary Carry Flag)辅助进位标志
AF=1:记录运算时第3位(半个字节)产生进位值。
AF=0:记录运算时第3位(半个字节)不产生进位值。
⑥ PF(Parity Flag)奇偶标志
PF=1: 结果操作数低8位中有偶数个1。
PF=0: 结果操作数低8位中有奇数个1。
(2) 控制标志位有3个:
① TF(Trap Flag)跟踪(陷阱)标志位
TF=1 ,每执行一条指令后,自动产生一次内部中断,
使CPU处于单步执行指令工作方式,便于进行程序调试,用户能检查程序。
TF=0, CPU正常工作,不产生陷阱。
②IF(Interupt Flag)中断标志位
IF=1, 允许外部可屏蔽中断。CPU可以响应可屏蔽中断请求。
IF=0, 关闭中断。CPU禁止响应可屏蔽中断请求。
¨ IF的状态对不可屏蔽中断和内部软中断没有影响。
③DF(Direction Flag)方向标志位
DF=1,每次串处理操作后使变址寄存器SI和DI减量,使串处理从高地址向低地址方向处理。
DF=0,每次串处理操作后使变址寄存器SI和DI增量, 使串处理从 低地址向高地址方向处理。
¨ DF方向标志位,用于串处理指令中的控制方向,属于一种控制信息。
2.5 8086CPU有20位地址总线,它可寻址的储存空间为1MB,而8086指令给出的地址编码只有16位,指令指针和变址寄存器也都是16位,所以CPU不能直接寻址1MB空间,所以采用分段管理。每个段的大小可达64 KB,这样段内地址可以用16位表示。
2.6 物理地址是指CPU和存储器进行数据交换时实际所使用的地址。
逻辑地址是程序使用的地址。
20位物理地址形成:由16位段地址和16位偏移地址组成。
段地址:只取段起始地址高16位值。
偏移地址:指在段内某内存单元物理地址相对段起始地址的偏移值。
2.7 低16位地址线作为I/O端口寻址线,最多可寻址 65536 (64KB)个端口。
四、 计算题(要求写计算过程)
1.已知堆栈段指针寄存器(SP)= 1076H,入栈4个数后(SP)=?,再出栈5个数后(SP)=?
答:入栈4个数后SP=SP-8=1076H-8=106EH,再出栈5个数后SP=SP+10=106EH +10=1078H
2. 已知(DS)=3000H,(ES)=5500H,(SI)=0A20H,(BX)=0400H,(SS)=4000H,(BP)=0020H,数据段中的字单元MASK偏移地址为0030H,那么下列各指令的源操作数的寻址方式是什么?
其物理地址是多少?
(1)MOV DX,[BP] (2)MOV AX,[1000H]
(3)MOV AX,MASK[BX] (4)MOV AX,ES:[BX+SI]
答:
(1)寄存器间接寻址 40020H (2)直接寻址 物理地址为31000H
(3)变址/寄存器相对寻址 30430H (4)基址加变址寻址 物理地址为55E20H
五、指出下列指令的错误。
(1)ADD AX,CL (2)MOV AL,A2H
(3)MOV CS,2000H (4)MOV [AX],[SI]
答:
(1)操作数间位数不匹配 改为 ADD AX,CX 或ADD AL,CL
(2)源操作数以十六进制的A~F开头,应在前面加0,改为 MOV AL,0A2H
(3)代码段寄存器不能赋初值,其他段寄存器可以,但也不能用立即数直接赋值,改为 MOV AX, 2000H MOV DS, AX
(4)AX不能作为间接寻址方式,改为 MOV AX,[SI]
六、指出下列指令源操作数的寻址方式
MOV AX,00H; 立即寻址
SUB AX,AX; 寄存器寻址
MOV AX,[BX]; 寄存器间接寻址
MOV AX,TABLE; 直接寻址
MOV AL,ARAY1[SI]; 寄存器相对寻址
MOV AX,[BX+6]; 寄存器相对寻址
展开阅读全文