微机原理与接口技术.docx
- 文档编号:27956441
- 上传时间:2023-07-06
- 格式:DOCX
- 页数:18
- 大小:24.02KB
微机原理与接口技术.docx
《微机原理与接口技术.docx》由会员分享,可在线阅读,更多相关《微机原理与接口技术.docx(18页珍藏版)》请在冰豆网上搜索。
微机原理与接口技术
微机原理与接口技术
1、8086CPU在内部结构上由哪几部分组成?
其功能是什么?
8086的内部结构分成两部分。
总线接口部件BIU,负责控制存储器与I/O端口的信息读写,包括指令获取与排队、操作数存取等。
执行部件EU负责从指令队列中取出指令,完成指令译码与指令的执行行。
2、8086的总线接口部件有那几部分组成?
其功能是什么?
8086的总线接口部件主要由下面几部分组成:
4个段寄存器CS/DS/ES/SS,用保存各段址;一个16位的指令指针寄存器IP,用于保存当前指令的偏移地址;一个20位地址法器,用于形成20位物理地址;指令流字节队列,用于保存指令;存储器接口,用于与外总线的连接。
3、8086的执行单元(部件)由那几部分组成?
有什么功能?
8086的执行单元部件主要由下面几部分组成:
控制器、算数逻辑单元、标志寄存器、通用寄存器组。
(1)控制器,从指令流顺序取指令、进行指令译码,完成指令的执行等。
(2)算数逻辑单元ALU,根据控制器完成8/16位二进制算数与逻辑运算。
(3)标志寄存器,使用9位,标志分两类。
其中状态标志6位,存放算数逻辑单元ALU运算结果特征;控制标志3位,控制8086的3种特定操作。
(4)通用寄存器组,用于暂存数据或指针的寄存器阵列。
6、8086CPU状态标志和控制标志又何不同?
程序中是怎样利用这两类标志的?
8086的状态标志和控制标志分别有哪些?
(1)标志分两类:
状态标志(6位),反映刚刚完成的操作结果情况。
控制标志(3位),在8086特定指令操作中起控制作用。
(2)利用状态标志可以掌握当前程序操作的结果,例如了解是否产生进位,是否溢出等。
例如利用控制标志可以控制程序的单步调试。
(3)状态标志包括:
包括零标志ZF、符号标志SF、奇偶标志PF、进位标志CF、辅助进位标志AF、溢出标志OF。
控制标志包括:
单步运行标志TF、方向标志DF与中断允许标志IF。
8、8086CPU的形成三大总线时,为什么要对部分地址线进行锁存?
用什么信号控制锁存?
为了确保CPU对存储器和I/O端口的正常读/写操作,要求地址和数据同时出现在地址总线和数据总线上。
而在8086CPU中AD0~AD15总线是地址/数据复用的,因此需在总线周期的前一部分传送出地址信息,并存于锁存器中,而用后一部分周期传送数据。
8086CPU中是通过CPU送出的ALE高电平信号来控制锁存的。
12、在8086中,逻辑地址FFFFH∶0001H、00A2H∶37F0H和B800H∶173FH的物理地址分别是多少?
(1)FFFFH*16+0001H=FFFF0H+0001H=FFFF1H
(2)00A20+37F0=4210H
(3)B8000+173F=B973FH
15、8086/8088CPU的地址总线有多少位?
其寻址范围是多少?
8086/8088CPU的地址总线均为20位,8086/8088CPU的寻址范围为=1MB.
17、8086CPU工作在最小模式(单CPU)和最大模式(多CPU)主要特点是什么?
有何区别?
最小模式接+5V,构成小规模的应用系统,只有8086一个微处理器,所有的总线控制信号均为8086产生,系统中的总线控制逻辑电路,减少到最小;不需总线控制器8288;适用于单一处理机系统。
最大模式接地,用于大型(中型)8086/8088系统中,其中一个主处理器就是8086或8088。
其它的处理器称协处理器,协助主处理器工作,需要总线控制器来变换和组合控制信号,需总线控制器8288;适用于多处理机系统。
24、8086CPU读/写总线周期各包含多少个时钟周期?
什么情况下需要插入TW等待周期?
应插入多少个Tw,取决于什么因素?
什么情况下会出现空闲状态Ti?
8086CPU读/写总线周期包含4个时钟周期。
当CPU与慢速的存储器或外设I/O端口交换信息,系统中就要用一个电路来产生READY信号,并传递给CPU的READY引脚。
CPU在状态的下降沿对READY信号进行采样。
如果无效,那么,就会在之后插入等待状态。
插入的个数取决于CPU接收到高电平READY信号的时间。
CPU在不执行总线周期时,总线接口部件就不和总线打交道,此时,进入总线空闲周期。
第3章8086指令系统
(1)执行下面指令序列后,结果是(A)。
MOVAL,82H
CBW
A、(AX)=0FF82HB、(AX)=8082HC、(AX)=0082HD、(AX)=0F82H
(2)与MOVBX,OFFSETVAR指令完全等效的指令是(D)。
A、MOVBX,VARB、LDSBX,VAR
C、LESBX,VARD、LEABX,VAR
(3)编写分支程序,在进行条件判断前,可用指令构成条件,其中不能形成条件的指令有(D)。
A、CMPB、SUBC、ANDD、MOV
(4)下面指令执行后,改变AL寄存器内容的指令是(D)。
A、TESTAL,02HB、ORAL,AL
C、CMPAL,BD、ANDAL,BL
(7)下列指令中,执行速度最快的是(C)。
A、MOVAX,100B、MOVAX,[BX]
C、MOVAX,BXD、MOVAX,[BX+BP]
10、为什么用増量指令或减量指令设计程序时,在这类指令后面不用进位标志作为判断依据?
増量指令或减量指令不影响进位标志CF。
13、以下是格雷码的编码表:
0——0000,1——0001,2——0011,3——0010,4——0110
5——0111,6——0101,7——0100,8——1100,9——1101
请用换码指令和其它指令设计一个程序段,实现格雷码往ASCII码的转换。
格雷码ASCII码数值
000030H0
000131H1
001033H3
001132H2
010037H7
010136H6
011034H4
011135H5
1000/
1001/
1010/
1011/
110038H8
110139H9
TABLESEGMENT
TAB_DADB30H,31H,33H,32H,37H,36H,34H,35H,0,0
DB0,0,38H,39H
GRADB05H
ASCII_DADB?
TABLEENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
TABLE
START:
MOVAX,TABLE
MOVDS,AX
MOVBX,OFFSETTAB_DA
MOVAL,GRA
XLAT
MOVASCII_DA,AL
CODEENDS
ENDSTART
14、将存放在0A00H单元和0A02H单元的两个无符号数字节相乘,结果存放在地址为0A04H开始的单元中。
MOVAL,[0A00H]
MOVBL,[0A02H]
MULBL
MOV[0A04],AX
15、编程计算((X+Y)*10)+Z)/X,X、Y、Z都是16位无符号数,结果存在RESULT开始的单元。
MOVAX,X
ADDAX,Y
MOVBX,0AH
MULBX;乘积在DX,AX中
ADDAX,Z
ADCDX,0H;考虑进位
MOVBX,X
DIVBX;
MOVRESULT,AX
MOVRESULT+2,DX
HLT
16、分别用一条语句实现下述指明的功能:
(1)AX的内容加1,要求不影响CF。
(INCAX)
(2)BX的内容加1,要求影响所有标志位。
(ADDBX,1)
(3)栈顶内容弹出送DI。
(POPDI)
(4)双字变量AYD存放的地址指针送ES和SI。
(LESSI,AYD)
(5)将AX中数,最高位保持不变,其余全部右移4位。
(SARAX,CL;CL预置4)
(6)将0400H单元中的数,低4位置零,高4位保持不变。
(ANDBYTEPTR[0400H],11110000B)
(7)将BX中的数,对高位字节求反,低位字节保持不变。
(XORBX,0FF00H)
(8)若操作结果为零转向标号GOON。
(JZGOON)
17、检测BX中第13位(D13),为0时,把AL置0,为1时,把AL置1。
TESTBX,0010000000000000B
JZZERO
MOVAL,01H
HLT
ZERO:
MOVAL,0
HLT
18、利用字串操作指令,将1000H~10FFH单元全部清零。
MOVDI,1000H
MOVCX,100H
MOVAL,0
REPSTOSB
19、用串操作指令实现,先将100H个字节数从2170H单元处搬到1000H单元处,然后从中检索等于AL中字符的单元,并将此单元换成空格字符。
MOVCX,0100H
MOVSI,2170H
MOVDI,1000H
REPMOVSB
MOVCX,0100H
MOVDI,1000H
MOVAL,‘A’;假设要检索的字符为A
REPNZSCASB
JZFOUND
JMPNOFOUND
FOUND:
DECDI
MOVBYTEPTR[DI],‘’
NOFOUND:
HLT
20、用循环控制指令实现,从1000H开始,存放有200个字节,要查出字符#(ASCII码为23H),把存放第一个#的单元地址送入BX中。
MOVDI,1000H
MOVCX,200
MOVAL,‘#’
DON:
CMPAL,[DI]
JEFOUND
INCDI
LOOPDON
JMPNOFOUND
FOUND:
MOVBX,DI
NOFOUND:
HLT
第4章汇编语言程序设计
1、分析执行下列指令序列后的结果:
MOVAX,1234H
MOVBX,00FFH
ANDAX,BX
(AX)=0034H
4.2、阅读程序:
1).CLD
LEADI,[0100H]
MOVCX,0080H
XORAX,AX
REPSTOSW
本程序实现了什么功能?
答:
将DS中起始地址为0100H的128个字节单元清零。
4.6、以下为某个数据段,试问各个变量分别占多少字节,该数据段共占多少字节?
DATASEGMENT
VAR1DW9;2字节
VAR2DD10DUP(?
),2;44字节
VAR3DB2DUP(?
,10DUP(?
));22字节
VAR4DB‘HOWAREYOU';11字节
DATAENDS
答:
该数据段共占79字节。
4.9、编程求和Y=A1+A2+….+A100。
其中Ai为字节变量。
DATASEGMENT
TABLEDW1111H,2222H,3333H,2222H
COUNTEQU$-TABLE
YALDW?
YAHDW?
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
MIANPROCFAR
PUSHDS
MOVAX,0
PUSHAX
MOVAX,DATA
MOVDS,AX
MOVDX,0
XORAX,AX;清AX
MOVBX,OFFSETTABLE
MOVCX,4
LP:
ADDAX,[BX];求和
ADCDX,0
INCBX
INCBX;指向下一个数
LOOPLP;未加完,继续
MOVYAL,AX;存和
MOVYAH,DX
MAINENDP
CODEENDS
ENDSTART
4.12、统计数据块中正数与负数的个数,并将正数与负数分别送到两个缓冲区。
BLOCKDB-1,-3,5,6,-2,0,20,10
PLUS_DDB8DUP(?
);正数缓冲区
MINUS_DDB8DUP(?
);负数缓冲区
PLUSDB0
MINUSDB0
MOVSI,OFFSETBLOCK
MOVDI,OFFSETPLUS_D
MOVBX,OFFSETMINUS_D
MOVCX,8;数据个数送CX
GOON:
LODSB;AL←[SI]
TESTAX,80H
JNZJMIUS;为负数,转
INCPLUS;正数个数加一
STOSB;[DI]←AL,传正数
JMPAGAIN
JMIUS:
INCMINUS;负数个数加一
XCHGBX,DI
STOSB;送负数到缓冲区
XCHGBX,DI
AGAIN:
DECCX
JNZGOON
4.18、从60H个元素中寻找一个最大的值,并放到AL中,假设这60个元素放在BUF开始的单元中。
DATASEGMENT
BUFDB0,1,2,3,4,5,6,7,8,9;
DATAENDS
STACKSEGMENT
STADB20DUP(?
)
TOPEQU$-STA
STACKENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,SS:
STACK
START:
MOVAX,DATA
MOVDS,AX
MOVAX,STACK
MOVSS,AX
MOVAX,TOP
MOVSP,AX
MOVCX,10
MOVAL,0
LEABX,BUF
AGAIN:
CMPAL,[BX]
JGENEXT;大于等于转移
MOVAL,[BX]
NEXT:
INCBX
LOOPAGAIN
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
4.19、排序程序设计:
把表中元素按值的大小升序排列。
要求显示排序前和排序后的数据。
DATASEGMENT
TABDB'8095554'
N=$-TAB
OKDB0DH,0AH,'OK!
$'
DATAENDS
STACKSEGMENT
STADB20DUP(?
)
TOPEQU$-STA
STACKENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,SS:
STACK
STAR:
MOVAX,DATA
MOVDS,AX;初始化数据段
MOVAX,STACK
MOVSS,AX
MOVAX,TOP
MOVSP,AX
CALLARRAY
DO:
MOVAH,4CH
INT21H;返回DOS
ARRAYPROCNEAR
PUSHAX
PUSHBX
PUSHCX
PUSHDX
MOVDL,N-1;置外循环次数
MOVDH,1;设有交换标志
XORBX,BX
UPPER:
ORDH,DH;
JZDISP;无交换,已排好序,退出
MOVDH,0;无交换
MOVCX,N-1
SUBCX,BX;CX=CX-I内循环次数
MOVSI,0;指向表首
INNER:
MOVAL,TAB[SI];字符送AL
INCSI;指向下个字符
CMPAL,TAB[SI];比较表中相邻字符
JBEDON;小于
XCHGAL,TAB[SI];否则交换,大字符下
MOVTAB[SI-1],AL;小字符上浮
MOVDH,1;有交换,DH=1
DON:
LOOPINNER;内循环结束?
CX-1
INCBX;一次内循环完成,加一
DECDL;外循环次数减一
CMPDL,0
JNZUPPER;外循环次数非零,继续
DISP:
MOVDX,OFFSETTAB
MOVAH,09H
INT21H;显示排好序的字符
POPDX
POPCX
POPBX
POPAX
RET
ARRAYENDP
CODEENDS
ENDSTAR
第5章微机的输入与输出
5.1、什么叫端口?
通常有哪几类端口?
计算机对I/O端口编址时通常采用哪两种方法?
在8086/8088系统中,用哪种方法对I/O端口进行编址?
(1)CPU和外设进行数据传输时,各类信息在接口中进入不同的寄存器,一般称这些寄存器为端口。
通常有数据端口、状态端口、控制端口。
(2)对端口编址的两种方法。
计算机对内存和I/O端口统一编址;计算机对内存和I/O端口分别进行编址。
(3)在8086/8088系统中用计算机对内存和I/O端口独立编址。
5.2、CPU和输入/输出设备之间传送的信息有哪几类?
数据信息、状态信息、控制信息。
5.3、一般的IO接口电路安排有哪三类寄存器?
它们各自的作用是什么?
(1)安排数据寄存器、状态寄存器、控制寄存器。
(2)数据寄存器:
存放CPU与外设之间传送的数据信息。
状态寄存器:
存放当前外设所处的工作状态。
控制寄存器:
存放CPU通过接口向外设传送控制信息。
5.4、简述CPU与外设进行数据交换的几种常用方式。
CPU与外设之间的数据传输有以下三种方式:
查询方式、中断方式、DMA方式。
(1)程序方式又分为无条件传送方式和条件传送方式两种方式,接口简单。
无条件传送方式用于简单外设,如LED显示器。
条件传送方式用于外设较少、需要联络信号的情形。
(2)中断传送方式需要专门的中断控制电路。
CPU利用率高,速度快,用于外设较多的实时系统。
(3)DMA方式需要专用硬件电路。
外设直接和存储器进行数据传送,效率高,适合大量、快速数据传送,例如硬盘读写等。
5.5、无条件传送方式用在哪些场合?
画出无条件传送方式的工作原理图并说明。
无条件传送方式假设外设已准备好,不查询外设的状态。
输入时,外设的数据已送到三态缓冲器。
输出时,CPU的输出信息已送到输出锁存器的输入端。
软件上只需用输入或输出指令即可完成数据传送。
5.6、条件传送方式的工作原理是怎样的?
主要用在什么场合?
画出条件传送(查询)方式输出过程的流程图。
条件传送数据有三个环节:
(1)CPU从接口中读取状态字。
(2)CPU检测状态字的对应位是否满足“就绪”条件,如不满足,则回到前一步读取状态字。
(3)如状态字表明外设已处于就绪状态,则传送数据。
主要用于需要联络信号(如选通信号)的外设较少的系统。
第7章中断系统
7-1、名词解释
(2)中断向量:
是中断服务程序的入口地址,包括段地址与偏移地址(cs,ip)。
(3)可屏蔽中断:
由外设发出的中断请求,由8086可屏蔽中断引脚INTR引入,受中断标志位IF的控制。
7.2、8086CPU响应中断的条件?
简述8086CPU响应中断处理过程。
【答】CPU响应中断的条件:
(1)有中断源发出的中断请求信号,并保存在中断请求触发器中,直至CPU响应此中断请求之后才清除。
(2)开放总中断。
(3)在现行指令结束后响应中断。
8086CPU的中断处理过程:
CPU自动完成如下工作:
关中断,断点保护,形成中断入口地址。
即获得中断服务程序的入口地址,从而进入中断服务程序。
(2)CPU中断服务。
包括保护现场、CPU开放中断、中断处理、CPU关中断、恢复现场。
(3)中断返回。
7.3、软件中断有哪些特点?
在中断处理子程序和主程序的关系上,软件中断和硬件中断有什么不同之处?
(1)软件中断是由CPU内部事件引起的中断,是确定的;与硬件无关,不执行中断响应周期;除单步中断外,软件中断(内部中断)不可屏蔽;优先级高于硬件中断(外部中断)。
(2)硬件中断由外部事件引起,是随机的,需要执行总线周期,中断类型码由中断控制器提供。
(3)软件中断其中断的发生是确定的。
硬件中断的发生是随机的,主程序中无调用点。
7.4、什么叫中断向量?
它放在哪里?
对应于1CH的中断向量在哪里?
如1CH中断程序从5110H:
2030H开始,则中断向量应怎样存放?
中断向量是中断处理子程序的入口地址,它放在中断向量表中。
由1ch*4=70H知中断向量存放在0000:
0070处。
由于中断处理入口地址为5110H:
2030H,所以2030H应放在0070H,0071H两个存储单元,5110H应放在0072H、0073H这2个单元。
7.7、类型号为20H的中断服务程序入口符号地址为INT-5,试写出中断向量的装入程序片断。
中断向量的地址:
20H×4=10000000=80H
中断向量的装入参考程序:
CLI
PUSHDS
XORAX,AX
MOVDS,AX
MOVAX,OFFSETINT-5
MOVWORDPTR[080H],AX
MOVAX,SEGINT-5
MOVWORDPTR[082H],AX
POPDS
STI
……
INT-5PROCNEAR
…….
IRET
INT-5ENDP
7.9、8259A中IRR、IMR和ISR三个寄存器的作用是什么?
IRR:
保存对应位的中断请求
IMR:
屏蔽对应位的中断请求;
ISR:
保存当前正在服务的中断申请。
第9章并行接口
9.2、8255A的方式选择控制字和置1/置0控制字都是写入控制端口的,那么,它们是由什么来区分的?
当8255A接收到写入控制口的控制字时,就会对最高位即标志位进行测试。
如为1,则将此字节作为方式选择控制字写入控制寄存器;如为0,则此字节作为对端口C的置1/置0控制来处理。
9.3、8255A端口地址为80H~83H,初始化要求:
A组方式0,PA口输入,PC口高半部分输出。
B组方式1,PB口输出,PC的低半部分输入。
控制字:
10010101=95H
MOVAL,B1H
OUT83H,AL
9.4、8255A端口地址为100H~103H,要求通过PA口以中断方式输入,通过PB口以中断方式输出,试编写初始化程序。
控制字=10110100B
MOVAL,10110100B
MOVDX,103H
OUTDX,AL
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 接口 技术