微机与接口技术知识点总结
总结一下考试可能会考的知识点。
8086
8086处理器概述
内部结构
从功能上看,8086可分为两大部分:执行部件EU(Execution Unit) 和 总线接口BIU(Bus Interface Unit) 。
执行单元EU
负责进行所有指令的解释和执行,同时管理有关的寄存器。
相关寄存器:4个通用寄存器(AX、BX、CX、DX)、4个专用寄存器(SI、DI、SP、BP)、PSW状态寄存器
全称和功能:#执行部件EU
总线接口BIU
负责完成取指令送指令队列,配合执行部件的动作,从内存单元或者I/O端口取操作数,或者将操作结果送到内存单元或者I/O端口。
相关寄存器:指针寄存器IP和四个段寄存器(CS、SS、DS、ES)
还包括:6字节指令队列缓冲器和20位地址加法器
寄存器功能和地址加法:#总线接口部件BIU
8086储存器管理
8086有20条地址总线,最大寻址空间为:2^20B = 1MB。从00000H到0FFFFFH。在对存储器进行操作时,内存一般可分成4个段,分别称为代码段、数据段、堆栈段和附加数据段,每个段存放不同性质的数据,进行不同的操作。
详情:段的分配
引脚
- AD15~AD0:地址/数据总线
- A19/S6~A16/S3:地址/状态信号
- BHE(低)/S7(bushighenable/status):允许总线高8位数据传送/状态信号
- RD/(read):读信号,输出,三态,低电平有效
- READY(22脚):准备就绪信号,输入,READY=1代表I/O端口准备好数据
8086总线的操作时序
指令格式和寻址方式
通常一条指令包括一个或两个操作数,双操作数分别称为源操作数(SRC)和目的操作数(DST)
指令总结
加粗为考试考点
指令类 |
指令名称 |
指令助记符 |
数据传送 |
数据传送 |
MOV、LEA、LDS、LES、LAHF、SAHF |
堆栈操作 |
PUSH、POP、PUSHF、POPF |
|
数据交换 |
XCHG、XLAT |
|
输入输出 |
IN、OUT |
|
算术运算 |
加法 |
ADD、ADC、INC |
减法;比较 |
SUB、SBB、DEC、NEG;CMP |
|
乘法 |
MUL、IMUL |
|
除法 |
DIV、IDIV |
|
扩展 |
CBW、CWD |
|
十进制调整 |
AAA、AAS、DAA、DAS、AAM、AAD |
位操作 |
逻辑运算 |
AND、OR、NOT、XOR、TEST |
移位运算 |
SAL、SAR、SHL、SHR |
|
循环移位 |
ROL、ROR、RCL、RCR |
|
串操作 |
串传送 |
MOVS、MOVSB、MOVSW |
串存取 |
STOS、STOSB、STOSW、LODS、LODSB、LODSW |
|
串比较 |
CMPS、CMPSB、CMPSW |
|
串搜索 |
SCAS、SCASB、SCASW |
|
串输入输出 |
INS、INSB、INSW、OUTS、OUTSB、OUTSW |
|
程序控制 |
调用 |
CALL、RET |
中断 |
INT、INTO、IRET |
|
重复操作 |
LOOP、LOOPE/LOOPZ、LOOPNE/LOOPNZ、JCXZ |
|
跳转 |
JA/JNBE、JAE/JNB、JB/JNAE、JBE/JNA、JG/JNLE、JE/JZ、JNE/JNZ、JGE/JNL、JL/JNGE、JNC、JC、JNS、JS、JP/JPE、JNP/JPO、JNO、JO |
|
处理器控制 |
清除标志 |
CLC、STC、CMC、CLD、STD、CLI、STI |
时序控制 |
NOP、WAIT、HLT、ESC |
|
前缀操作 |
重复前缀 |
REP、REPZ/REPE、REPNZ/REPNE |
段前缀 |
ES:、DS:、CS:、SS: |
|
总线封锁前缀 |
LOCK |
比较两个数大小的转移指令的现行指令都是CMP。小结:
比较情况 |
无符号数 |
带符号数 |
||
指令助记符 |
满足条件 |
指令助记符 |
满足条件 |
|
A<B |
JB/JNAE/JC |
CF=1 |
JL/JNGE |
SF⊕OF=1且ZF=0 |
A<=B |
JBE/JNA |
CF=1或ZF=1 |
JLE/JNG |
SF⊕OF=1或ZF=1 |
A>B |
JA/JNBE |
CF=0且ZF=0 |
JG/JNLE |
SF⊕OF=0且ZF=0 |
A>=B |
JAE/JNB |
CF=0或ZF=1 |
JGE/JNL |
SF⊕OF=0或ZF=0 |
汇编程序
并行接口8255A
8255A是Intel公司生产的通用可编程并行接口芯片,8255A采用40脚双列直插封装,单一+5V电源,全部输入/输出与TTL电平兼容。它有三个输入/输出端口:端口A、端口B、端口C。每个端口都可通过编程设定为输入端口或输出端口,但有各自不同的方式和特点。端口C可作为一个独立的端口使用,但通常是配合端口A和端口B的工作,为这两个端口的输入/输出提供控制联络信号。
工作方式选择控制字(考试重点)
工作方式选择控制字 查看详细
端口C按位置位/复位控制字 查看详细
8255A的工作方式
8255A有3种工作方式,可以通过编程来进行设置。
可编程定时器/计数器8253
可编程定时器/计数器,是一种软硬件结合的定时器/计数器,将定时器/计数器电路做成通用的定时器/计数器并集成到一个芯片上,定时器/计数器工作方式又可由软件来控制选择。这种定时器/计数器芯片可直接对系统时钟进行计数,通过写入不同的计数初值,可方便地改变定时与计数时间,在定时期间不占用CPU资源,更不需要CPU管理。Intel公司生产的8253就是这样的可编程定时器/计数器芯片。8253具有三个独立的功能完全相同的16位减法计数器,24脚DIP封装,由单一的+5V电源供电。
8253的控制字和读写操作(考试重点)
8253的控制字主要用于:选择哪个计数器通道工作,决定用8位的计数值或是用16位的计数值,按二进制计数或按十进制计数(BCD码),工作在那种方式。
8253的初始化编程(写操作) 、 当前计数值的读取(读操作)
8253的工作方式(6种)
- 方式0 —— 计数到零产生中断请求
- 方式1 —— 可重触发的单稳态触发器
- 方式2 —— 分频器
- 方式3 —— 方波发生器
- 方式4 —— 软件触发选通方式
- 方式5 —— 硬件触发选通方式
六种工作方式小结
在六种工作方式中,只有方式0在写入控制字后OUT输出为低电平,其他五种方式OUT输出都为高电平。方式2、方式4和方式5都是输出宽度为一个CLK周期的负脉冲,输出波形都相同,但方式2是连续工作的,方式4是由软件触发的,方式5是由硬件门控脉冲触发的。
一般情况下,GATE信号为低电平时禁止计数,为高电平时允许计数,方式1和方式5则需要有由低变高的上升沿触发脉冲来启动计数。
8253在计数过程中写入新的计数初值,对计数过程的影响见表所示。