- 相关推荐
微型计算机原理及应用(一)
解释题
微处理器【解答】由大规模集成电路芯片构成的中央处理器(CPU),叫做微处理器。微型计算机【解答】以微处理器为基础,配以内存储器、输入输出接口电路、总线以及相应的辅助电路而构成的计算机裸机,叫做微型计算机。微型计算机系统【解答】微型计算机系统由硬件系统和软件系统组成。即由微型计算机、配以相应的外部设备(如打印机、显示器、键盘、磁盘机等),再配以足够的软件而构成的系统。单板机【解答】将微处理器、RAM、ROM以及I/O接口电路,再配上相应的外设(如小键盘、LED显示器等)和固化在ROM中的监控程序等,安装在一块印刷电路板上构成的微型计算机系统称为单板机。运算器【解答】运算器是直接完成各种算术运算、逻辑运算的部件,主要由ALU(Arithmetic and Logic Unit,算术逻辑部件)、通用寄存器、标志寄存器等组成。地址总线【解答】地址总线是CPU对内存或外设进行寻址时,传送内存及外设端口地址的一组信号线。地址总线的条数多少决定了CPU的寻址能力。数据总线【解答】数据总线是CPU与内存或外设进行信息交换时,所用的一组数据信号线。它决定了CPU一次并行传送二进制信息的位数, 反映出CPU的“字长”这个重要性能指标。控制总线【解答】控制总线是在CPU与外部部件之间传送控制信息(如读/写命令、中断请求命令等)的一组信号线。1-2 单片机应包括哪些基本部件?其主要应用于哪些领域?【解答】一般单片机芯片中包括微处理器、RAM、ROM、I/O接口电路、定时器/计数器,有的还包括A/D、D/A转换器等。其主要应用于智能化仪器仪表及工业控制领域。1-3 按图1-11和图1-12,写出取第二条指令操作码和执行第二条指令的过程。【解答】ADD AL,12H指令的取指过程:IP的值(002H)送入地址寄存器AR;IP的内容自动加1,变为003H;AR将地址码通过地址总线送到存储器的地址译码器,经译码后选中002H单元;微处理器给出读命令MEMR;所选中的002H单元内容04H送上数据总线DB;数据总DB上的数据04H送到数据寄存器DR;因是取指操作,取出的是指令操作码04H,即由DR送入指令寄存器IR;IR中的操作码经指令译码器ID译码后,通过PLA发出执行该指令的有关控制命令。指令操作码04H 经译码后CPU知道这是一条把AL内立即数12H相加的指令。立即数12H在指令的第二字节中,则执行第二条指令就是从内存中取出指令的第二字节送ALU的I2端把AL的内容送到I1端,并在ALU中做加法运算,然后把运算结果通过ALU的O端再送到AL中ADD AL,12H指令的执行过程:
IP的值(003H)送入地址寄存器AR;IP的内容自动加1,变为004H;AR将地址码通过地址总线送到存储器的地址译码器,经译码后选中003H单元;微处理器给出读命令MEMR;所选中的003H单元内容12H送上数据总线DB;DB上的数据12H送到数据寄存器DR;由指令操作码的译码可知,指令要求把第二字节的数据送入ALU进行运算,则DR上的数据12H通过内部总线送到ALU的I2端; 将AL 中的内容送到ALU的I1端;在ALU中作加法、然后将运算结果通过内部总线送回到AL中。
到此第二条指令执行完毕。1-4 计算题
【解答】
(17.562) 10 = (10001.100011)2
(1101011011.10101) 2 = (859.65625)10
(1000) 10 = (3E8)16
(10000) 10 = (2710)16
(3F9) 16 = (1017)10
(1101011011.10101) 2 = (35B.A8)16
(5D7.5C)16 = (10111010111.010111)2
(497.72) 10 = (010010010111.01110010)BCD
有一32位浮点数的格式如下:
0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
则该数的十进制表示为 +0.82421875 。
(10)按上题浮点格式,所能表示的最大正数为(1-2-23)*2+127 ,最小负数为 -2-150 ,最小绝对值为 2-150 。
(11)十进制+123的补码为01111011 ,十进制-123的补码为10000101。
∵ [+123]原 =01111011
[+123]反 =01111011
∴ [+123]补 =01111011
∵ [-123]原 =11111011
[-123]反 =10000100
∴ [-123]补 =10000101 (12)十进制数+0.99609375的补码为: [+0.99609375]补=0.11111111
十进制数-0.99609375的补码为: [-0.99609375]补=1.00000001
(13) 已知X=0.110001,Y=-0.001001, 则X+Y=0.101000
∵ ; [X]补=0.110001
[Y]补=1.110111
∴ [X+Y]补=[X]补+[Y]补=0.110001+1.110111=0.101000
(14) 已知X=0.101100,Y=-0.100111, 则X-Y=1.010011
∵ [X]补=0.101100
[Y]补=1.011001
[-Y]补=0.100111
∴ [X-Y]补= [X]补+[-Y]补=0.101100+0.100111=1.010011
已知X=0.1001, Y=0.1101, 则X+Y=1.0110 ,有溢出
∵ [X]补=0.1001
[Y]补=0.1101
∴ [X+Y]补=[X]补+[Y]补=0.1001+0.1101=1.0110 (有溢出)
已知X=-1110,Y=-1100,则X+Y=+0110 , 有溢出
[X]补=1.0010
[Y]补=1.0100
[X+Y]补=[X]补+[Y]补=1.0010+1.0100=10.0110 (有溢出)
第二章 微处理器结构
2-1 解释题
AD0~AD15双重总线
【解答】双重总线就是采用分时的办法复用总线。8086CPU在每一个总线周期的T1时, AD0~AD15用作地址总线传输地址信号,而在总线周期的其它T状态为数据总线,用作传输数据。
逻辑地址
【解答】在程序中所涉及的地址叫做逻辑地址。逻辑地址由两部分组成,段基址:段内偏移地址
物理地址
【解答】信息在存储器中实际存放的地址叫做物理地址。物理地址=段基址*16+段内偏移地址。
溢出
【解答】带符号数的运算结果超出计算机所能表示的数值范围称为“溢出”。
指令
【解答】控制计算机完成某一个基本操作的命令(如:传送、加、移位、输出、输入等)叫做指令。
(6) 等待周期TW
【解答】当被选中进行读写的存储器或I/O设备,无法在总线周期规定的T状
态内完成数据的读写操作时,就由该存储器或外设向CPU的READY引脚发一个低电平信号,请求延长总线周期,等待它们的读写操作完成。
8086CPU受到该请求后,就在T3和T4之间插入一个等待周期 TW(TW也以时钟周期为单位),加入TW的个数取决于READY的持续时间。在TW期间,总线上的状态一直保持不变。
(7) 空闲周期Ti
【解答】在两个总线周期之间,当总线上无数据传输操作时,则系统总线处于空闲状态,此时即执行空闲周期Ti,Ti也以时钟周期T为单位,至于到底插入多少个Ti与8086CPU执行的指令有关。
(8) 指令的寻址方式
【解答】所谓指令的寻址方式是指在指令中操作数的表示方式。
2-2 扼要说明EU和BIU的功能
【解答】EU从BIU的指令队列中获得指令,然后执行该指令,完成指令所规定的操作,EU不与外部总线相联系。
BIU同外部总线连接为EU完成所有的总线操作,并在∑地址加法器中形成20位内存物理地址。
2-3 写出寄存器AX、BX、CX、DX、SI、DI的隐含用法
【解答】
AX:乘除法指令中用作累加器、I/O指令中作为数据寄存器。AL还在BCD指令和XLAT指令中作累加器。
BX;间接寻址时,作为地址寄存器和基址寄存器。在XLAT指令中用作基址寄存器。
CX:串操作指令和LOOP指令时用作循环次数计数器。CL在循环和移位指令中用作循环和移位次数计数器。
DX:字乘、字除指令中用作高字积、被除数高字辅助寄存器。I/O指令间接寻址时作端口地址寄存器。
SI:间接寻址时,作为地址寄存器和变址寄存器、串操作时的源变址寄存器。
DI:间接寻址时,作为地址寄存器和变址寄存器、串操作时的目的变址寄存器。
2-4写出8086CPU的标志寄存器中三个控制位的功能
【解答】
DF:方向标志。决定在进行串操作时,每执行一条串操作指令,DF=0时对源、目的操作数地址的修正是递增、DF=1时是递减。
IF:中断允许标志。表示目前系统是否允许响应外部的可屏蔽中断请求。IF=1时允许、IF=0时不允许。
TF:陷阱标志。当TF=1时,是“单步工作方式”,常用于程序的调试。微处理器每执行完一条指令便产生一个内部中断,转去执行一个中断服务程序,可以借助中断服务程序来检查每条指令的执行情况。TF=0是“连续工作方式”,程序连续执行。
2-5 说明段寄存器的作用
【解答】8086CPU内部数据通道和内部寄存器均为16位,而8086CPU的地址线有20条,可以寻址1MB空间。为了寻址1MB地址,CPU引入了“分段”管理的概念,把可直接寻址的1MB内存空间分成了策划能够作“段”的逻辑区域,每个段的最大物理长度为64K,段寄存器就是用来存放段的16位起始地址的。8086 CPU有4个段寄存器CS、DS、ES、SS,分别用来存储代码段、数据段、附加数据段、堆栈段的起始地址。
2-6 执行如下指令后,标志寄存器中各状态位之值
MOV AX,32C5H
ADD AX,546AH
【解答】
MOV AX,0E453H
ADD AX,0C572H
【解答】
2-7说明8086CPU最大方式和最小方式工作时的主要区别
【解答】8086CPU工作于最小模式时,用于构成小型的单处理机系统,而工作于最大模式时用于构成多处理机和协处理机系统。这两种模式的主要区别是最大模式系统的控制总线增加了一片专用的总线控制器芯片8288。
2-8 说明8086系统中内存储器的物理地址的形成过程。
【解答】8086CPU存储器物理单元的20位物理地址是通过将16位的“段基址”左移4位和16位的“段内偏移地址”在 20位地址加法器中相加得到的。“段基址”存放在段寄存器CS、SS、DS、ES中,而“段内偏移地址”由SP、BP、SI、DI、IP、BX以及上述寄存器的组合而形成。
2-9有一双字87654321H的地址为30101H,画出其在字节编址的内存中的存放情况。
【解答】
2-10 说明8086的指令周期、总线周期和时钟周期的区别和关系。
【解答】
执行一条指令所需要的时间称为指令周期,不同的指令周期是不等长的。在取指令过程中以及执行指令时取操作数或存运行结果,都要通过总线,因此一个总线周期中可能由一个或几个总线周期组成。
CPU从存储器或输入输出端口存取一个字节或字的时间叫做总
线周期。8086CPU的总线周期至少由4个时钟周期组成,分别以T1、T2、T3、T4表示。
时钟周期是CPU的时间基准,由计算机的主频决定。例如8086 CPU的主频为5MHZ,则一个时钟周期为1/(5*106)=0.2*10-6s=0.2s=200ns
2-11 根据8086 I/O的读写时序图,回答下列问题:
地址信号在哪段时间内有效?
【解答】在读写总线周期的T1时间内有效。
读与写操作的区别?
【解答】读总线周期中,数据在进入T3状态时才出现在复用总线上,而在写周期中数据在T2状态时就出现在复用总线上。
I/O读写时序同存储器读写时序的区别?
【解答】I/O读写时序同存储器读写时序没有什么区别,只是M/IO信号的状态不同。当进行内存读写操作时,M/IO为高电平;而进行I/O端口读写操作时M/IO为低电平。
什么情况下需要插入等待周期TW?
【解答】当内存或I/O端口存取速度慢,无法在CPU的总线周期内完成相应操作时,需要插入一个或几个等待周期TW ,以延长相应总线周期。
2-12 扼要说明80286同8086的主要区别。
【解答】80286是一种高性能的16位微处理器,片内集成有存储管理和保护机构,能用四层特权支持操作系统和任务的分离,能可靠地支持多用户和多任务系统。它的实地址方式兼容了8086的全部功能,同时它增加了保护虚地址方式。80286有24条地址线,在实地址方式下只使用20条地址线,有1MB的寻址能力;在保护虚地址方式下,使用24条地址线,有16MB寻址能力,它能将每个任务的230字节(1GB)的虚地址映射到224字节的物理地址中去。
80286的内部由地址部件AU、指令部件IU、执行部件EU和总线部件BIU四大部分组成,和8086的EU与BIU组成相比,四个部件的并行操作,进一步提高了吞吐率、加快了处理速度。
2-13 扼要说明80486同80386的主要区别。
【解答】80486是继80386之后新的32位微处理器,同80386相比,在相同的工作频率下,其处理速度提高了2~4倍。80486采用了RISC(精简指令系统计算机)技术,降低了执行每条指令所需要的时钟数;80486采用了与80386不同的突发式总线技术,有效地解决了微处理器同内存之间的数据交换问题;80486内部集成了FPU(浮点部件)和Cache(超高速缓冲存储器),CPU和FPU、CPU和Cache之间都采用高速总线进行数据传送,使其处理速度得到极大的提高。
80486的在体系结构上除沿用80386的总线接口部件BIU、指令预取部件IPU、指令译码部件IDU、执行部件EU、存储器管理部件SU和PU、控制部件外,为提高性能又增加了高速缓存部件Cache、高性能浮点处理部件FPU。
2-14扼要说明Pentium同Pentium Pro的主要区别。(略)
2-15扼要说明Pentium MMX的特点。(略)
2-16扼要说明Pentium Ⅱ同 Pentium Ⅲ的特点 。 (略)
第三章 8086微处理器的指令系统
3-1 指出下列各指令中源操作数和目的操作数的寻址方式,并说明操作数的类型(注:字节数据或字数据)
(1)MOV SI,1000H
(2)MOV BL,[1000H]
(3)MOV [BX+0100H],CX
(4)MOV BYTE PTR [BP] [SI],100
(5)MOV AX,[BX+DI+0004H]
【解答】 源操作数 目的操作数 操作数类型
(1) 立即寻址 寄存器寻址 字类型
(2) 直接寻址 寄存器寻址 字节类型
(3) 寄存器寻址 基址寻址 字类型
(4) 立即寻址 基址加变址寻址 字节类型
(5) 基址加变址寻址 寄存器寻址 字类型
3-2 指出下列各非法指令的错误原因
MOV AL,BX
【解答】源与目的操作数类型不一致。
MOV CL,200H
【解答】源操作数太大了,CL是8位寄存器,能存储的最大数只能到FFH。
MOV CS,AX
【解答】不允许用传送指令给CS赋值。
MOV DS,3000H
【解答】8086没有给段寄存器直接置值的指令,应该通过寄存器辗转设置。
MOV [DI],[SI]
【解答】存储器单元之间不可直接传送,即两个操作数不能同为内存操作数。
MOV AL,[CX]
【解答】CX不可以作为间址寄存器,只能用BX、BP、SI、DI。
MOV AL,[SI] [DI]
【解答】 基址加变址寻址时 ,基址寄存器只能用BX或BP,变址寄存器只能用SI或DI,这里源操作数寻址用[SI+DI]是错误的。
ADD BX,DS
【解答】DS段寄存器不能当通用寄存器用,故不可以出现在ADD指令中。
INC [BX]
【解答】 [BX]寻址数据类型不明确,应加类型说明 BYTE PTR [BX] 或 WORD PTR [BX]。
(10) SHL AX
【解答】缺少一个操作数。正确格式应为SHL AX, 1或SHL AX, CL(1或CL为移位次数)。
设DS=1000H,SS=2000H,AX=1A2BH,BX=1200H,CX=339AH,BP=1200H, SP=1352H,SI=1354H,(11350H)=0A5H,(11351H)=3CH,(11352H)=0FFH,(11353H)=26H,(11354H)=52H,(11355H)=0E7H,(126A4H)=9DH,(126A5H)=16H,(21350H)=88H,(21351H)=51H
下列各指令都在此环境下执行,在各小题的空格中填入相应各指令的执行结果。
MOV AX,1352H
【解答】AX=1352H
MOV AX,[1352H]
【解答】AX=26FFH
MOV 0150H [BX],CH
【解答】(11350H)=33H, (11351H)=3CH
MOV AX,0150H [BP]
【解答】AX=5188H
POP AX
【解答】AX=(21352H), SP=1354H
ADD [SI],CX
【解答】(11354H)=0ECH, (11355H)=1AH, SF=0, ZF=0, PF=1, CF=1, OF=0
SUB BH,0150H [BX] [SI]
【解答】BH=75H, SF= 0, ZF=0, PF=0, CF=1, OF=0
INC BYTE PTR 0152H [BX]
【解答】(11352H)=00H, (11353H)=26H, CF=0
INC WORD PTR 0152H [BX]
【解答】(11352H)=00H, (11353H)=27H, CF=0
(10) SAR BYTE PTR 0150H [BX],1
【解答】(11350H)=0D2H, CF=1, OF=0
(11)SAL BYTE PTR 0150H [BX],1
【解答】(11350H)=4AH, CF=1, OF=1
写出下列无条件转移指令执行后的CS和IP值。
【解答】
CS的值 IP的值
(1) 2000H 016EH+2+0FFE7H=0157H
(2) 2000H 016EH+2+0016H=0186H
(3) 2000H 16C0H
(4) 3000H 0146H
(5) 2000H 1770H
(6) 3000H 0146H
3-5 阅读下列各小题的指令序列,在后面空格中填入该指令的执行结果。
【解答】
(1) AL=02H, BL=85H, CF=1
(2) AX=0000H, CF=0
(3) AX=0000H, CF=0
(4) BX=0FFFFH, CF=1
写出每条指令执行后各寄存器内容的变化情况,并画出堆栈的存储情况。
【解答】
(2) 转向 L1
(3) 转向L2bsp; LE
(3) NB, NBE, NL, NLE
(4) NB, NBE, NL, NLE
(5) B, BE, NL, NLE
(6) B, BE, L, LE
(7) B, BE, L, LE
(8) NB, BE, NL, LE
用移位和循环指令编写一段指令序列,实现将在DX:AX中的32位二进制数乘2及除2的功能。
【解答】
乘2功能 除2功能
SHL AX,1 SHR DX,1
RCL DX,1 RCR AX,1
乘2功能 除2功能
SAL AX,1 SAR DX,1
RCL DX,1 RCR AX,1
3-10 数0~15的平方值存放在数据段起始地址为1000H的内存连续单元中,用XLAT指令编写一段指令序列,实现用查表法求得数N(0~15)得平方值。
【解答】MOV BX,1000H
MOV AL,N ;N为0~15之间任意一个数
XLAT ;N的平方值在AL中
3-11 编写一段指令序列,测试AL的内容,若低4位全为0,就转移去由标号NEXT表示的目标地址执行程序,否则就继续顺序执行下去。
【解答】TEST AL,0FH
JZ NEXT
3-12 寄存器AX和BX各有两位非压缩BCD数,编写一段指令序列,将这两个两位非压缩BCD数的和存入AX。
【解答】 ADD AL,BL ;个位加
AAA ;个位非压缩BCD加法调整
MOV CL,AL ;个位BCD和暂保存在CL
MOV AL,AH
ADD AL,BH ;十位加
AAA ;十位非压缩BCD加法调整
MOV AH,AL
MOV AL,CL ;两位非压缩BCD和存入AX
3-13 用串操作指令编写一段指令序列。
【解答】 (1)MOV SI,0200H
MOV DI,1400H
STD
MOV CX,100
REP MOVSB
(2)MOV DI,0100H
MOV CX,100
CLD
MOV AX,2A84H
REPNZ SCASW
JZ FOUND
【微型计算机原理及应用(一)】相关文章:
计算机审计一般原理及应用03-22
微型计算机技术在电台维护中的应用12-01
公钥密码原理及其应用12-27
小概率事件原理及其应用03-07
浅谈小概率事件原理及其应用03-07
记忆原理在语文教学中的应用03-09
PC/104模块Diamond-MM-AT的原理与应用12-05
从自动刹车系统的工作原理中阐述应用11-23