
简介面向北京航空航天大学微机原理课程期末备考的复习资料适合正在学习8086/8088微处理器、汇编程序设计及可编程接口芯片的本科生。PDF按章节梳理了微机运算基础、8086/8088系统结构、寻址方式与指令系统、汇编语言伪指令、8253/8255接口芯片、输入输出与中断等核心考点并附有各章练习题题号便于对照教材逐项查漏补缺。资源为单个PDF文件大小4.57MB内容为课程复习大纲式整理知识点覆盖全面、重点标注清晰可配合课堂讲义和教材使用。已有318人学习对于考前快速回顾体系化概念、检查薄弱环节具有较高参考价值。 期末微机原理怎么复习最高效我翻了北航这份 PDF 之后把 8086 汇编、接口芯片这些最绕的知识点全部拉通了一遍。这篇文章就是我从零到一整理出来的复习框架包含寄存器背后为什么这样设计、8253 和 8255 的初始化参数怎么算、中断向量表到底怎么填以及我踩过的几个典型复习误区。不论你是刚起步还是已经刷完一轮题这篇思路应该能帮你把零散的知识点串成一张能直接上考场的网。1. 复习前先搞懂这门课到底在考什么1.1 先看考点分布再决定时间花在哪北航微机原理期末的重点非常稳定并不是所有章节都同等重要。我对比了近几年的出题习惯后发现8086 CPU 内部结构、寻址方式与指令系统、存储器扩展、中断系统、并行接口 8255 和定时器 8253 这几块加起来占了卷面 80% 以上的分值。很多同学一上来就开始从头翻教材其实效率很低。更合理的做法是先把历年题目的题型分布统计一遍你会发现填空和选择主要集中在寄存器功能、标志位含义、指令执行结果等基础概念。简答题几乎围绕总线周期、中断响应过程、CPU 和外设交换数据的方式展开。编程和接口设计大题基本上固定在 8253、8255 或者存储器芯片组扩展这几个考点上。这也解释了为什么复习资料里反复出现这些内容因为考纲本身就有非常明确的指向性。早点把精力放在这些高频考点上比漫无目的地通读教材要划算得多。1.2 复习资料应该怎么用更高效拿到期末复习 PDF 以后不建议第一遍就从头到尾通读。我试过这种办法读到后面就忘了前面尤其是各种模式波形和时序图看的时候觉得都懂合上书又什么都想不起来。正确打开方式应该是分三步走。第一步先快速浏览目录和总结性内容在脑子里搭一个整体的知识框架搞清楚章节之间的关联比如 CPU 的引脚信号是后面学存储器扩展和 I/O 接口的基础。第二步是重点精读高频考点部分对照教材把原理吃透把 PDF 里面提到的例题动手做一遍。第三步才是刷真题和模拟卷在题目中检验薄弱点再回头翻复习资料查漏补缺。PDF 里的图表和流程总结非常适合用来建立整体框架感。这些浓缩后的知识卡片考前冲刺阶段反复翻看的效率远高于重新读教材。2. 核心必考点拆解CPU 结构2.1 8086 寄存器分两个银行这个设计其实很巧妙8086 CPU 内部比较难理解的地方是内部结构分成了执行部件 EU 和总线接口部件 BIU 两部分。刚开始看这两个词会觉得抽象我用一个更生活化的方式来理解EU 相当于厨房里负责做菜的厨师BIU 是负责买菜和端菜的服务员。厨师只管指令的执行算地址、做运算都由他负责。服务员 BIU 专门和外界打交道预取指令、读写内存数据都是 BIU 的事情。两个部件独立工作BIU 提前把后面的指令取到指令队列里EU 在忙的时候BIU 已经在准备下一条指令了。这样 CPU 就不用每执行一条指令就停下来等内存整体效率高了很多。做复习题的时候有个重要的概念容易搞混地址加法器在 BIU 里面不在 EU 里。物理地址的形成方式是直接背下来的公式但如果你理解了 BIU 的职责就自然能记住地址运算部分属于 BIU。考试如果问哪个部件负责形成物理地址或者哪个部件负责和内存打交道答案都指向 BIU。2.2 物理地址是怎么算出来的8086 有 20 根地址线最大寻址空间是 1MB但内部寄存器只有 16 位最大只能表示 64KB 范围。为了用 16 位的寄存器访问 20 位的物理地址就采用了段加偏移的寻址方式。物理地址的计算公式是段基址左移四位再加上偏移量。用十六进制表示就是段寄存器内容乘以 16 再加上偏移地址。段寄存器的值是 16 位左移四位以后变成 20 位再和一个 16 位的偏移量相加就得到了 20 位的物理地址。实际问题里面经常会给出逻辑地址要求计算物理地址比如给定逻辑地址是一个段地址加一个偏移量那先把段地址转成十六进制乘以 10H然后加上偏移量得到最终地址。这类计算其实不复杂但要注意进制转换的时候千万别粗心算错。另外一个重要的结论是同一个物理地址可以用不同的逻辑地址来表示。因为段基址和偏移量的组合并不唯一这和实际操作中程序分段加载的方式是吻合的。复习的时候如果能理解到这一层遇到概念辨析题就不会被绕进去了。2.3 标志寄存器里那几个标志位考试特别喜欢挖坑标志寄存器是 16 位的但真正考试经常考的只有六个状态标志和三个控制标志。这里面最容易错的是单步中断标志 TF很多题目把它和中断允许标志 IF 混在一起出陷阱。六个状态标志里OF 和 CF 是两个性质完全不同的标志特别容易让人混淆。CF 记录的是无符号数运算的进位或借位OF 记录的是有符号数运算结果是否超出了补码的表示范围。判断标准要看具体场景如果是无符号数运算判断溢出看 CF如果是有符号数运算判断溢出就要看 OF。这个区分在做加减法指令的结果判断题时几乎必考点。还有一个细节对齐标志 AF 用于 BCD 码运算考试偶尔会在填空选择里出现。DF 是方向标志决定串操作指令执行时地址是递增还是递减平时复习容易忽略它实际上在串操作相关的题目里也出现过。把每个标志的触发条件和用途整理成一张表考前多看两遍比临时翻书强很多。3. 汇编指令和寻址方式的复习思路3.1 寻址方式掌握一个主脉络就行寻址方式看起来很多本质上核心问题就是一个操作数在哪里。根据操作数存放的位置可以分成三大类去理解。第一类是操作数在指令代码里这叫做立即寻址优点是指令执行速度快因为取指令的时候数据已经一起取回来了。第二类是操作数在 CPU 寄存器里这就是寄存器寻址执行时直接在 CPU 内部取数速度也很快。第三类是操作数在内存里这一块最复杂。内存寻址又分成直接寻址、寄存器间接寻址、寄存器相对寻址、基址变址寻址和相对基址变址寻址几种方式。记忆的时候不需要死记硬背每种方式的定义关键是要分清地址是怎么算出来的有没有用到基址寄存器有没有用到变址寄存器有没有加上位移量。把握住这个规律以后看到哪种组合就能直接对应到寻址方式名称。有个小技巧寄存器间接寻址只能使用 BX、BP、SI、DI 这四个寄存器。BX 默认数据段BP 默认堆栈段。不加段前缀的时候BP 相关的寻址默认操作的是堆栈段。这个细节考试经常放在判断和选择题目里面考。3.2 指令系统要学会按功能分类记忆指令系统里指令非常多如果一条一条去背又慢又容易忘。更高效的方式是按功能把指令归类然后重点记住每一类里容易出错的点。数据传送指令里MOV 是最基础的看似简单实际上有几个硬性规定容易踩坑。两个内存单元之间不能直接传送数据必须经过寄存器中转。段寄存器不能直接用立即数赋值需要先放进通用寄存器再传给段寄存器。立即数不能直接送给段寄存器这是一个高频错误点。算术运算指令里加减乘除都有各自的注意事项。对标志位的影响、操作数的类型匹配这些都是重点。逻辑运算指令在做位操作类题目时非常有用AND、OR、XOR、NOT、TEST 各自的特点要分清。TEST 指令不保存结果只影响标志位这个特性常常用在位测试场景。串操作指令配合 REP 前缀使用的时候方向由 DF 标志位控制每执行一次操作SI 和 DI 会根据方向标志自动增减。数据传输的字节数由 CX 寄存器控制这些要素连在一起才是一个完整的串操作流程。3.3 汇编语言题的常见形式和答题套路考试里的汇编题基本都是给一段程序让写出执行结果或者补充空缺的指令。做这类题的时候我一般先看程序整体结构搞清楚数据段里定义了些什么然后逐条分析指令对寄存器和存储单元的影响。重点是注意指令执行前后标志位的变化还有分支跳转指令是否真的会跳。遇到编写完整程序的题目核心步骤是初始化段寄存器、设置堆栈、然后才是主要的业务逻辑。很多程序最后需要调用 DOS 功能调用返回操作系统这也是固定的格式要求。编程题更考察综合应用能力平时复习的时候动手写几个典型的小程序很有必要。比如字符串的输入输出、数组元素求和、数据块传送等题型把这类基础框架练熟了考试的时候不管怎么变换核心思路都能套上。4. 存储器和接口芯片重点都在引脚和时序4.1 存储器的扩展其实是在做位扩展和字扩展存储器扩展分两种方向。位扩展就是把多个芯片的地址线并连在一起数据线各接一部分目的是增加字长。比如用 8K×8 的芯片搭成 8K×16 的系统就需要两片芯片并联。字扩展是为了扩展存储容量把芯片的片选信号分别接上译码器输出通过高位地址线来选择具体访问哪一片。考题经常给出一组芯片的容量和技术参数要求计算需要多少片芯片、地址线怎么连接、片选逻辑怎么设计、输出地址范围是多少。计算的时候先把总容量算出来再除以单片的容量。画连接图的时候地址线要看芯片容量需要多少根地址线剩下的高位地址线接译码器作片选用。片选信号的产生方式值得单独关注。完全译码方式每条地址线都参与译码地址是唯一的部分译码方式没有用到的地址线不参与译码一个存储单元可能出现多个地址这在地址范围计算时容易出错。还有一点容易丢分的是存储器芯片的读写控制信号连接。读信号和写信号要分别接对有些芯片是独立的读使能和写使能引脚有些芯片是共用一个写使能引脚接法不同。4.2 8253 定时器芯片初始化编程是送分题8253 有六个工作方式期末考试基本不会全覆盖重点集中在方式 2 和方式 3分别对应频率发生器和方波发生器这两个方式也是实际使用最多的场景。8253 初始化编程的套路非常固定先写入控制字向计数器端口写入计数初值。控制字的格式包括选择哪个计数器通道、读写格式是只读低字节、只读高字节还是先低后高、采用哪种工作方式、计数格式是二进制还是 BCD。计数初值的计算方法分两部分。如果输入时钟频率是已知的想要得到指定的输出频率计数初值就等于输入频率除以输出频率。如果题目要求定时时长那就用定时时间除以时钟周期或者用定时时间乘以输入频率。只要把时钟频率、计数初值、输出频率之间的关系搞清楚这类型题是比较好拿分的。特别提醒一个细节写入计数初值时要先写低字节再写高字节顺序不能反。这对应控制字里的读写格式选择。有的题目会要求计数器工作在方式 0 或方式 1复习的时候把这几种方式的特点简要梳理一下考到的时候就不容易慌。4.3 8255 并行接口芯片关键是理解工作方式的选择8255 有三个端口分两组工作分别是 A 组和 B 组。A 组可以工作在方式 0、方式 1 和方式 2B 组只能工作在方式 0 和方式 1。方式 0 是最基本的输入输出模式三个端口彼此独立没有握手信号使用起来最简单。方式 1 是选通输入输出模式引入了握手信号来实现和外设的同步。方式 2 是双向传输模式一般只用在工作组 A 口。很多同学理解不了为什么需要握手信号这可以用一个生活中的场景来类比食堂打饭如果所有人同时挤到窗口前就会混乱得排不了队。有一位工作人员叫号一个接一个取餐流程就有序多了。方式 1 中的 STB、IBF、OBF、ACK 这些信号就是类似的功能让 CPU 和外设知道什么时候可以发送数据、什么时候已经收到数据。做 8255 的题目时首先要根据题目的需求判断工作方式然后写出初始化控制字最后把控制字写入控制端口进行初始化。控制字的格式里最高位为 1 表示的是方式控制字后面几位分别设置 A 组方式、A 口输入输出方向、C 口高位输入输出方向、B 组方式、B 口输入输出方向、C 口低位输入输出方向。这类编程题一旦理解了原理套路性很强读懂题干条件后按部就班完成初始化环节就可以了。平时可以找几道典型的例题练练手把流程练成肌肉记忆。5. 中断系统和接口技术把过程理顺记忆负担小得多5.1 中断响应过程按步骤来记不用死记硬背中断是微机原理里比较抽象的一部分尤其是中断响应过程涉及到硬件自动完成的操作和程序员编写的中断服务程序之间的配合。按我自己的理解中断响应过程可以拆成几个阶段。首先是 CPU 收到中断请求如果中断请求是屏蔽的那就需要看 IF 标志位是否为 1。然后是判断优先级多个中断同时来的时候CPU 要先响应优先级最高的那个。接下来是获取中断类型号根据类型号在中断向量表中查找中断服务程序的入口地址。后面还要保存断点也就是保护现场最后才能转去执行中断服务程序。中断服务程序的编写有固定的格式先保护现场把需要用的寄存器压栈保存然后处理中断之后恢复现场把保存的寄存器值弹出来最后用 IRET 指令返回。返回的时候 CPU 会自动弹出 CS、IP 和标志寄存器这点需要特别注意。考试里面还有一种问法问你中断响应过程中哪些操作是硬件完成的哪些是软件完成的。这个问题的区分标准在于CPU 自动完成的步骤包括保护断点、获取中断类型号、查向量表跳转软件部分主要包括保护现场和恢复现场这些在中断服务程序里面人为写的内容。5.2 中断向量表这块内容弄清编号规则就很简单中断向量表本质上是一个存储在内存低地址区的查找表用来根据中断类型号读取中断服务子程序的入口地址。每个类型号对应一个四字节的存储单元低地址两个字节是偏移地址 IP高地址两个字节是段基址 CS。做这类题的计算方法很简单。入口地址的存放位置 中断类型号 × 4。比如类型号为 20H那它对应的入口地址就存放在从物理地址 20H×4 80H 开始的四个字节里。如果题目给出这几个字节的数据你就能拼出中断服务程序的入口地址。有个常见误区是8086 的中断向量表一共能容纳 256 个中断类型对应的存储范围是从 00000H 到 003FFH一共 1KB。前 32 个类型通常预留给 Intel 和系统专用用户自定义中断一般从 40H 以后开始使用。这个细节在做扩展题的时候经常涉及到。5.3 I/O 接口的编址方式考试常考区别I/O 端口编址方式有两种独立编址和统一编址。独立编址是把 I/O 端口和内存存储单元分开编址需要使用专门的 I/O 指令来访问端口。使用 I/O 指令的好处是程序清晰易读而且不占用内存空间但是需要单独的读写控制线来区分是访问内存还是访问端口。8086 采用的是这种方式。统一编址则是把 I/O 端口看作内存的一部分不区分访问指令直接用 MOV 指令就可以操作外设端口。这种方式的优点是 CPU 不需要单独的 I/O 指令指令系统更简单也可以灵活运用各种内存访问指令。缺点是占用了内存地址空间。真题里如果在问这个问题往往还会延伸到 CPU 和外设之间交换数据的几种方式。无条件传送适合数据变化缓慢或随时可读的外设查询方式需要 CPU 不断去检测外设状态中断方式让外设主动通知 CPU效率高但需要额外电路支持DMA 方式则是让数据直接在外设和内存之间传送不经 CPU 中转适合高速大批量数据传输。6. 常见问题与复习误区整理6.1 为什么做题的时候总是会看漏条件我自己复习的时候也遇到过这种情况明明知识点都懂一做到大题目就丢分回头看才发现漏了某个条件。在微机原理里面最容易漏掉的条件往往藏在线路图或时序细节里。比如 8253 的输入时钟频率到底是给了周期还是频率两种给法计算方式完全不一样。芯片片选信号是低电平有效还是高电平有效直接关系到地址范围的判断结果。CPU 引脚上的 M/IO 信号是接高还是接低决定了访问的是内存还是外设区域。复习到后期可以把这些容易遗漏的细节整理成一个检查清单。每次做完一道大题后对照清单逐项检查寻址方式是哪种、片选信号极性是什么、计数初值算对没有、控制字的格式字节设置是否正确。顺着清单检查一遍能有效降低粗心失分的情况。6.2 复习时容易出现的三个错误方式第一个错误是把大量时间花在了不常考的内容上。汇编语言指令确实很多但形形色色的指令中有些确实只需要了解而不需要深入掌握比如 BCD 码调整指令、XLAT 查表指令等不建议花太多精力去抠细节。第二个错误是只看不练。微机原理特别注重应用能力的考察尤其是接口芯片的编程题光看例题以为掌握了自己上手写的时候就会出现关键控制字格式记错、端口地址计算错误等问题。指令系统部分大家都会认真记但真正考试的时候容易答错原因是缺少自己完整推导的过程。第三个错误是考前才集中看实验部分的内容。实际上实验中的很多内容都直接对应考试的重点题目尤其是 8253 和 8255 的实验现象和初始化代码这些都是应试的宝贵素材。平时上课没有注意积累的同学复习阶段可以把实验题重新过一遍加深对芯片工作方式的理解。6.3 考前一周的高效冲刺策略临近考试的最后一周不建议再刷新题或者钻研偏题怪题了。我自己的做法是回归基础框架把最容易忘记的细节部分再过一遍。优先看标志位的定义和判断方式把每种指令对标志位的影响梳理出来。然后过一遍指令系统把各类指令的使用格式和易错点重新记忆牢固。接着是接口芯片初始化编程流程尤其是 8253 控制字和 8255 控制字的格式考试大题基本离不开这两个芯片。这段时间还要再整理一遍中断相关的内容包括中断类型号的获取方式、中断向量表的计算等。把这些基础内容理清以后一天安排一套真题来模拟考场节奏重点是训练时间分配和应试心态。我个人在实际操作中还有个经验就是用草稿纸把每次做错的题涉及的知识点单独记下来考前最后一天只看这些内容针对性非常强效果也最明显。与其一直反复看已经掌握的内容不如集中精力补齐真正的知识漏洞。6.4 考场做题的节奏建议微机原理考试的题型多、时间紧张做题节奏会直接影响最终分数。我的建议是拿到卷子先快速浏览一遍整张试卷对题目难易程度做一个初步判断。基础片段控制在合理时间内完成遇到模棱两可的选项不要过分纠结可以先做标记放到后面再回头思考。分析题和编程题要留足时间。这些题目的分值比例比较大而且层层递进第一问算错了后面全都会跟着错。我习惯先把题目的已知条件圈出来像输入时钟频率、端口地址、工作方式要求都给标在题干旁边分析的时候不容易漏掉条件。草稿上先写清步骤然后依次推导如果哪里卡住了也方便快速定位出错的地方。编程题要格外注意控制字格式中的每一位设置不要想当然地凭经验答题。每个题的端口地址和初始条件都不完全一样细节决定成败。只要基础知识点梳理清楚了按部就班地把每一步写完整这类大题的得分率是很有保障的。结尾我在复习北航微机原理这门课的时候最深刻的感受就是内容并不难难的是知识点太分散没有一个清晰的主线把它串起来。如果一开始就搭好 8086 CPU 的结构框架顺着指令系统、存储器、接口芯片、中断系统这条脉络往里填细节后面不管是做真题还是应对变式题都会轻松很多。复习 PDF 里浓缩的总结内容更多是用来检验和巩固知识结构教材加上平时积累的卷面经验同样很重要。希望这篇整理能帮你绕开我踩过的坑复习得更明白考试发挥得更稳。本文还有配套的精品资源点击获取