微机原理复试大纲:8086/8259A/8255/8253命题边界与考点 简介这份 PDF 名为研究生复试《微机原理与接口技术》大纲面向准备研究生复试笔试的考生用于快速了解考试范围与复习重点不过内容预览显示其实际为天津理工大学 2017 年硕士研究生复试考试大纲涉及《电力系统分析》科目。压缩包内共 1 个 PDF 文件体积约 48KB属于轻量级文档便于随时查阅。文档按考试科目、参考书目、考试方式与考查知识范围展开涵盖电力系统稳态分析、暂态分析、潮流计算、频率与电压调整、短路计算、派克变换、静态与暂态稳定性及等面积法则等要点并对掌握、熟悉、了解程度作出标注。当前已有 492 人学习下载可供复试考生对照参考书目搭建复习框架、定位重点章节、安排计算专题与考前查漏补缺也可作为核对复试笔试时长和分值的依据。1. 复试大纲不是复习目录是一张命题边界图复试前两周拿到这份《微机原理与接口技术》大纲 PDF多数人的处理方式是把它当目录用8086、存储器、中断、8255、8253 逐条打勾打完勾心里就踏实了。真正拉开差距的地方在于大纲的动词是有权重的——写「掌握」的条目命题人默认你能算、能写、能画时序写「了解」的条目最多出一两个填空或者干脆变成面试里的追问。把「掌握」和「了解」混在一起复习等于用同样的时间成本去换不同权重的分数。这份 PDF 的用法应该是先按动词把条目分成「必出题」和「防冷门」两堆再把「必出题」逐条翻译成可以判分的具体动作比如「掌握中断响应过程」要能写出向量表地址计算公式并能手写一段 ISR 骨架。适合手里已经有教材、但不知道复试会往哪个方向挖的人。互联网上流传的回忆版真题版本杂乱大纲才是唯一不会骗人的那份文件。2. 从大纲条目反推 8086 存储与总线的考点权重2.1 把条目拆成概念、公式、操作三层大纲条目是粗粒度的直接背它没有意义。我一般把每条拆成三层概念层能不能用自己的话讲清术语、公式层有没有可以代入数值的表达式、操作层能不能写出寄存器级的代码或时序步骤。拆完之后凡是三层都有的条目就是复试笔试里最可能出大题的部分。大纲条目概念层公式层操作层权重判断8086 内部结构寄存器分组、EU/BIU无寻址方式判断高存储器组织分段、逻辑地址物理地址计算、容量扩展片数地址译码连线高总线与时序总线周期、T 状态周期时间换算读时序图分析中中断系统中断类型、优先级向量地址计算ISR 编写高并行接口 8255三种方式控制字拼装初始化程序高定时器 8253六种工作方式计数初值计算初始化程序高把这张表贴在书桌前比抄十遍目录有用。判断权重的经验法则是任何能用一行公式算出数值、又能用一段汇编写出来的条目几乎必考因为这类题目好判分、区分度也够。如果 PDF 是扫描件先用 OCR 转成文本再用关键词把「掌握」「熟悉」「了解」三类动词高亮出来这一步在半小时内就能做完比逐页翻要快得多。2.2 物理地址与存储器容量的两把算尺8086 的地址计算是复试里出现频率最高的送分题也是最容易因为粗心丢分的地方。核心只有一句话物理地址等于段基址左移四位再加偏移量。左移四位等价于乘 16也等价于在十六进制后面补一个 0。def physical_address(seg: int, off: int) - int: 8086 物理地址计算段基址 16 位偏移 16 位结果 20 位 addr (seg 4) off return addr 0xFFFFF # 20 根地址线超出部分回绕 print(hex(physical_address(0x1234, 0x5678))) # 0x179B8 print(hex(physical_address(0xFFFF, 0x0010))) # 0x00000回绕这段代码做了两件事先做移位加法再用 0xFFFFF 掩码把结果截回 20 位。第二个测试用例特意选了 (FFFFH:0010H)它算出的是 100000H超过 20 位后回绕成 00000H这是 8086 真实存在的硬件行为面试里问「会不会溢出」时答「会回绕」比答「出错了」更准确。参数上要记住段基址和偏移都是 16 位无符号数段基址不要求 16 字节对齐但习惯上会给成整段。另一把算尺是存储器扩展的芯片数量。公式是总片数 总容量 / 单片容量×总位数 / 单片位数。比如用 1K×4 的片子拼 64KB 的存储空间就是 (64K/1K)×(8/4) 64×2 128 片换成 8K×8 的片子就是 8×1 8 片。复试里常在这里加一个陷阱问「地址线需要多少根」64KB 对应 16 根片内地址线和片选地址线要分开说。2.3 总线周期里那几个容易记错的时间参数一个基本总线周期由 T1 到 T4 四个时钟状态组成T1 期间 CPU 输出地址并发出 ALE 锁存信号T2 期间地址线让出来进入数据传送准备。8086 常见的 5MHz 主频下时钟周期 200ns一个不插等待周期的总线周期就是 800ns。如果外设慢插入 TW 等待状态每插一个就再加 200ns。BHEA0实际操作00在 16 位数据线上一次传送一个字偶地址01只用高 8 位数据线传送一个字节10只用低 8 位数据线传送一个字节11无效组合不产生总线操作这张表的关键结论是偶地址字可以一个总线周期传完奇地址字要拆成两个总线周期。复试里经常会问「为什么编译器喜欢把变量对齐到偶地址」答案就在这里减少一次总线周期就是省时间。算时间题时把 ALE、读/写信号的有效区间标在草稿纸上比凭记忆作答靠谱得多。3. 中断系统与 8259A 的寄存器级复现3.1 中断向量表四个字节决定跳转去哪儿8086 的中断向量表固定占用内存最低的 1KB即 00000H 到 003FFH一共 256 个中断向量每个向量占 4 字节。低两字节存服务程序的偏移量 IP高两字节存段基址 CS所以向量 n 的入口地址就是 n×4。这个公式必须背到条件反射因为它是所有中断题目的起点。; 在 DOS 环境下把 08H 号中断IRQ0指向自定义服务程序 cli ; 关中断防止写入半截向量时被响应 xor ax, ax mov es, ax ; ES 0000H指向向量表段 mov bx, 20h ; 08H * 4 20H即向量 08H 的入口 mov word ptr es:[bx], offset my_isr ; 填 IP mov word ptr es:[bx2], seg my_isr ; 填 CS sti ; 开中断前四行是定位ES 清零指向段 0BX 用向量号乘 4 得到表内偏移。中间两行分别写入偏移和段基址顺序不能反写反了就是 CS 当 IP 用。最后 sti 恢复中断。要注意的是 cli 和 sti 之间不能有太多代码否则会丢外部中断实际项目里我一般先把新的入口准备好只剩两条 mov 留在临界区里。3.2 8259A 的七个命令字与端口分工8259A 难在命令字多但只要抓住端口分工就不乱A0 为 0 的偶地址用于写 ICW1、OCW2、OCW3A0 为 1 的奇地址用于写 ICW2、ICW3、ICW4 和 OCW1。初始化必须按 ICW1 到 ICW4 的顺序连续写中间不能插别的操作。命令字写入端口关键位含义常用取值ICW1偶地址D4 必须为 1D3 触发方式D1 单片或级联D0 是否需要 ICW413HICW2奇地址D7~D3 是中断类型号高 5 位08HICW3奇地址主片标记哪个引脚接从片从片写级联编号00HICW4奇地址D01 为 8086 模式D1 自动 EOID4 特殊全嵌套01HOCW1奇地址8 位屏蔽字1 表示屏蔽该路FEHOCW2偶地址D7D6D5001 表示普通 EOI20HOCW3偶地址D1D0 选择读取 IRR 或 ISR0AHICW1 取 13H 的含义拆开看D41 是必须的标识位D30 表示边沿触发D10 表示单片使用D01 表示后面还要写 ICW4。ICW2 取 08H 意味着 IRQ0 到 IRQ7 的中断类型号依次是 08H 到 0FH这是 PC 体系里的历史约定很多题目直接沿用。OCW1 取 FEH 是最低位为 0其余为 1也就是只放行 IRQ0屏蔽其余七路。3.3 一段能跑通的初始化与中断服务骨架; 8259A 初始化边沿触发、单片、8086 模式、只放行 IRQ0 mov al, 13h out 20h, al ; ICW1 写主片偶地址 mov al, 08h out 21h, al ; ICW2 中断类型号基址 mov al, 01h out 21h, al ; ICW4 8086 模式普通 EOI mov al, 0FEh out 21h, al ; OCW1 屏蔽字 my_isr proc far push ax push dx ; 自定义处理逻辑 mov al, 20h out 20h, al ; 发送普通 EOI通知 8259A 本次中断结束 pop dx pop ax iret my_isr endp初始化四条 out 必须严格按顺序执行因为 ICW 是靠写入次数来区分阶段的中间跳一条就会把 ICW4 当成 ICW3 处理8259A 后续行为全部错位。ISR 里的保护现场用的是 push恢复顺序必须与压栈顺序相反这是栈的后进先出特性决定的写反了寄存器值就串了。结尾用 iret 而不是 ret因为 iret 会额外弹出标志寄存器和 CS:IP少了任何一个都会跑飞。EOI 放在服务逻辑之后发属于非嵌套模式如果想让高优先级中断能打断当前服务就要在 ISR 入口处就发 EOI这是复试里区分「背过」和「真懂」的一个小分水岭。4. 8255 与 8253 的端口编程套路4.1 8255 控制字拼装与端口分配8255 的控制字只有 8 位但 D7 决定它到底是控制字还是位复位操作这是最常见的踩坑点。D71 才是方式设置D70 时处理器把这次写入理解成对 C 口某一位的置位或复位。拼装的顺序是固定的D7 固定写 1D6 到 D3 管 A 组A 口方式、A 口方向、C 口高四位方向D2 到 D0 管 B 组B 组方式、B 口方向、C 口低四位方向。假设要 A 口方式 0 输出、B 口方式 0 输入、C 口全部输出逐位写出来就是 1 000 0 0 1 0也就是 82H。位D7D6 D5D4D3D2D1D0含义标志位1A 组方式A 口方向C 口高 4 位方向B 组方式B 口方向C 口低 4 位方向本示例100 方式 00 输出0 输出0 方式 01 输入0 输出对应的初始化只要两行mov dx, 0FFFEH ; 假设控制口地址为 FFFEH mov al, 82H ; A 口输出、B 口输入、C 口全部输出 out dx, al写完之后A 口地址是 FFFCHB 口是 FFFDHC 口是 FFFEH 的上一级分配具体映射取决于译码电路考试里通常直接给出。如果题目要求读回状态直接对端口地址用 in 指令即可不需要再动控制字。4.2 8253 计数初值与六种工作方式8253 的题目基本是两个方向给时钟频率求初值或者给初值问输出频率。公式只有一条计数初值 输入时钟频率 / 输出频率。要提醒的是初值 0 代表 65536 而不是 0因为计数器是减到 0 再回绕。方式名称输出特征典型场景0计数结束产生中断写初值后 OUT 变低减到 0 变高事件计数1可编程单稳态GATE 上升沿触发输出一个负脉冲定宽脉冲2频率发生器周期性负脉冲分频器3方波发生器占空比接近 1:1 的方波时钟源4软件触发选通计数到 0 输出一个负脉冲软件定时5硬件触发选通GATE 触发后输出负脉冲硬件同步方式 2 和方式 3 是复试里最常考的两种因为它们在硬件分频和时钟生成里用得最多。区分点在于方式 2 输出的是窄脉冲方式 3 输出的是方波写初值时如果有奇偶问题方式 3 对奇数初值会把高电平多算一个时钟。/* 8253 通道 0 工作在方式 3输入 1MHz输出 1kHz */ outportb(0x43, 0x36); /* 控制字通道0、先低后高、方式3、二进制计数 */ outportb(0x40, 0xE8); /* 初值低字节1000 0x03E8 */ outportb(0x40, 0x03); /* 初值高字节 */控制字 0x36 拆开是 0011 0110高两位 00 选通道 0接着两位 11 表示先写低字节再写高字节再三位 011 是方式 3最低位 0 表示二进制计数而不是 BCD 计数。初值 1000 换算成十六进制是 0x03E8所以低字节写 0xE8、高字节写 0x03顺序不能颠倒否则 8253 会把两个字节拼成 0xE803输出频率直接差出几十倍。这个顺序错误几乎是初学者必踩的一次坑调试时用示波器量 OUT 引脚频率能立刻确认。4.3 端口地址译码与常见题型对照端口地址由译码电路决定74LS138 这类三线八线译码器是复试简答题的常客。给出一段地址范围要能反推哪几根地址线参与译码、哪些是片内地址。经验做法是把地址范围的二进制写出来两端相同的位就是译码位不同的位就是片内地址位。题型给出条件要求输出易错点控制字拼装各端口工作方式一个十六进制控制字D7 忘记置 1初值计算输入与输出频率两个字节的初值高低字节顺序反了地址范围译码器连接图端口地址区间混淆片内与片选地址线中断流程中断源与向量号ISR 与 EOI 位置EOI 时机写成固定答案这四类题在复试卷子里基本是轮着出做透一张表比刷十套零散题目有效。练习时建议手边放一张自制的寄存器对照卡把 8255、8253、8259 的控制口和命令字并排列出来做题时随时核对几次之后就能脱离卡片。5. 冲刺阶段的查漏技巧把大纲改写成可判分的问句复习到后期最大的问题是「感觉自己都会了」但说不清到底会什么。我常用的验证方式是把大纲条目逐条改写成可判分的问句标准是这个问句必须有一个能写在答题纸上的明确答案要么是数值要么是代码要么是步骤序列。像「掌握中断系统」这种表述是没法自测的改写成「IRQ5 对应的中断类型号和向量表地址分别是多少写出计算过程」就变成了可以当场验证的题目。每改写一条就在旁边打一个标记能立刻说出答案的打勾需要翻书的打叉翻书之后仍然说不完整的画圈。大纲条目改写后的自测问句验证方式存储器组织段地址 2000H、偏移 3A00H 的物理地址是多少手算三秒内出结果总线时序8MHz 下插入两个等待周期的总线周期是多少纳秒列式换算中断系统写出 8259A 从 ICW1 到 ICW4 的完整写入序列默写四行代码并行接口A 口方式 0 输入、B 口方式 0 输出的控制字逐位拼装后转十六进制定时器2MHz 时钟下要得到 500Hz 方波怎么初始化写端口操作打圈的那些条目就是最后几天唯一需要动手写的东西打勾的每天快速扫一眼保持手感就行。这个方法的另一个好处是能反过来暴露大纲里那些被忽略的角落比如时钟周期换算、片选地址线的位数平时看着不起眼一旦命题人把它和中断或译码电路拼在一起出综合题没准备过的人当场就会卡住。做综合题时先在草稿纸左侧画出信号走向的骨架标出每一条线索对应的公式或寄存器再往右侧填数值和代码一次成型率比直接硬写高很多也能在面试老师追问时清楚地指出自己每一步的依据。本文还有配套的精品资源点击获取