简介:针对北航《微机原理》课程期末考试,这是一份以课程复习大纲为核心整理的PDF资料,适合北航本科生及相关专业学生系统复习。内容覆盖微机运算基础、8086/8088微处理器、汇编语言程序设计、可编程接口芯片、输入输出与中断等核心模块,具体包括BCD编码、ASCII码、原码/补码/反码与溢出判断,8086指令流水线、寄存器组、物理地址计算、堆栈操作与寻址方式,伪指令和DOS/BIOS中断调用,8253/8255/8259/8250等接口芯片的初始化与控制字设置,以及I/O端口编址和程序传送方式等复习要点。资源为单一PDF文件,大小4.57MB,便于下载后打印或电子阅读。已有318人学习使用,能帮助读者快速定位重点、对照课后练习进行专项突破,考前查漏补缺非常高效。 期末复习这门课,最怕的就是翻开PPT发现前面全忘了,后面更看不懂。北航的“微机原理”覆盖面很大,从8086内部结构到接口芯片、从汇编指令到存储器译码,任何一个环节卡住,真题就没法往下做。我手头的这份“北航-微机原理-期末复习.pdf”把考点收得很全,但光翻一遍PDF用处不大,得把它当成一份“地图”,带着问题去找自己的薄弱点。这篇文章我按自己的复习路径来拆,哪些是必须背的、哪些是必须理解的、哪些是背了就能拿分的,一次说清楚。
适合看这篇内容的人:正在准备期末考试的本科生、复习时间紧张想抓重点的考研党,或者工作中突然要碰X86汇编、接口设计的老工程师。先说结论:微机原理期末能不能过,关键在于把“地址怎么算”“指令怎么用”“芯片怎么配”这三件事串成一条线。
1. 复习前先弄清这门课的骨架
1.1 核心知识模块与考核重心
北航的微机原理课程,整体可以拆成四块:第一是8086/8088微处理器的内部结构,包含寄存器、标志位、流水线、存储器分段这些底层概念;第二是汇编语言指令系统,包括寻址方式、各类指令格式和简单程序设计;第三是存储器扩展与地址译码,Ex:用SRAM、EPROM和译码器搭最小系统;第四是接口技术,重点落在8255、8253、8259这些可编程接口芯片上,外加A/D、D/A转换和串行通信。
期末试卷的题型也基本固定:选择题和填空题考概念细节,比如寄存器位数、中断向量表位置、指令执行周期;简答题让画时序图或解释某个引脚的作用;程序设计题直接从汇编编程和接口初始化里出,尤其爱考8253计数初值计算和8255方式字设置。很多同学挂科,不是卡在最后的大题,而是栽在前面的零碎概念上,所以复习时要先构建框架,再往里面填细节。
1.2 为什么说“先理解总线时序”是复习的突破口
学微机原理最容易出现的一种状态是:寄存器背得滚瓜烂熟,但一到总线时序就发懵。这很正常,因为时序图在PPT上只是几条波形,看起来比寄存器抽象得多。但反过来讲,如果不理解CPU怎么通过地址总线、数据总线和控制总线访问存储器或外设,后面的接口芯片初始化就全是死记硬背。
我复习时用了大概半天时间把8086的“最小模式读周期”彻底理清,之后再去看8255、8253的读写时序,完全是降维打击。建议你也先把这几件事搞透:ALE信号什么时候有效、地址什么时候出现在AD总线上、READY信号是干什么的、为什么需要等待周期。这些概念在填空题里反复出现,还能帮你理解为什么CPU用“地址锁存器+数据缓冲器”扩展总线。
1.3 资料怎么用:别按页数刷,按章节回查
“北航-微机原理-期末复习.pdf”这类汇总资料,优点是考点密集,缺点是信息太密,连续读很容易走神。我的用法是:先快速翻一遍目录,心里有个标星顺序;然后直接去做往年真题,遇到不会的知识点,再回到PDF对应章节精读。这种“以题带点”的复习效率,比从头到尾啃PDF高很多。尤其高频考点,比如物理地址计算、8253计数初值、8255方式控制字,每周至少回查两遍,直到能默写出来为止。
2. 8086核心考点:从内部结构到存储器组织
2.1 寄存器与标志位:背清楚这些,选择题就不丢分
8086的内部寄存器分为通用寄存器、指针与变址寄存器、段寄存器和指令指针,共14个16位寄存器。通用寄存器里AX、BX、CX、DX每个都能再分成高8位和低8位,比如AL、AH;BX这时还兼任基址寄存器,CX在循环指令里自动作为计数器,DX在乘除法中用做辅助寄存器,这些“兼职”身份是考试爱挖的坑。
标志寄存器有9个标志位。其中状态标志6个:CF、PF、AF、ZF、SF、OF;控制标志3个:DF、IF、TF。易错点在于CF和OF的区别,CF是针对无符号数运算的进位或借出,OF是针对有符号数运算的溢出。复习时可以靠口诀强记:“加减看CF、OF,无符号看CF,有符号看OF”。另外DF决定串操作时DI和SI是自增还是自减,串指令前必须要用CLD或STD先设好。
2.2 存储分段与物理地址:20位地址是怎么来的
8086的地址总线是20位,能寻址1MB,但寄存器只有16位,所以必须用“段基址:偏移地址”的方式配合。物理地址=段基址×16+偏移地址,这个×16在二进制里就是左移4位,十六进制里就是在段基址后面补一个0。举个例子,段基址是2000H,偏移地址是1234H,物理地址就是:2000H×16+1234H=20000H+1234H=21234H。
这里有个高频判断题:“段地址和偏移地址都是16位的,一一对应后,一个物理地址是不是只有一种表示方法?”答案是否定的,同一个物理地址可以由多组段:偏移组合表示。比如物理地址21234H,可以是段基址2123H、偏移0004H,也可以是段基址2100H、偏移0234H。很多题会在这里挖坑。
2.3 最小模式和最大模式:引脚复用与总线保持
8086有MN/MX引脚,接地是最大模式,接高电平是最小模式。最小模式下CPU直接产生全部总线控制信号,重点记各引脚功能,比如ALE、DEN、DT/R、RD、WR等。最大模式要用总线控制器8288来产生控制信号,还会涉及总线仲裁,考试时通常会用简答题的形式要求比较两种模式的区别。
另外一个必考点是AD0~AD15的分时复用:在总线周期的T1时刻这些引脚传地址,之后才传数据。所以必须在T1时刻用ALE把地址锁存进锁存器(如74LS373),否则地址会丢失。这个逻辑你能自己画一遍框图,才算真正掌握。
3. 汇编语言与程序设计:从指令到编程题套路
3.1 常用指令与寻址方式速记
这一章最怕的就是“认不出来”。期末复习时要把寻址方式分成五类:立即数寻址、寄存器寻址、存储器寻址(直接、寄存器间接、基址、变址、基址加变址)、端口寻址、串操作寻址。考卷经常给一条指令,让你判断源操作数和目的操作数的寻址方式,比如:MOV AX, [BX+SI+2000H] 这种组合。
指令系统不用逐条背,但以下几类是高频:数据传送类MOV、PUSH/POP、XCHG、XLAT;算术运算类ADD/ADC/SUB/SBB、MUL/IMUL、DIV/IDIV、CMP;逻辑运算类AND/OR/XOR/NOT/TEST;移位类SHL/SHR/SAL/SAR/ROL/ROR/RCL/RCR;串操作类MOVSB/MOVSW、CMPS、SCAS、STOS、LODS;控制转移类JMP、条件跳转、LOOP、CALL/RET;以及IN/OUT端口访问指令。
我复习时踩过一个坑:MUL是隐式操作数的,乘法指令只写一个操作数,另一个操作数默认是AL或AX,结果存到AX或DX:AX里。而DIV也一样,被除数默认是AX或DX:AX。考试时一旦忘了这茬,程序题就算全错。建议把这类“隐含操作数”单独抄在一张纸上,考前半小时过一遍。
3.2 编程题的惯性做法:先搭框架再逐句翻译
期末程序题通常不要求写完整工程,而是让补全代码、计算寄存器结果,或者写一段完成特定功能的小程序。很多同学一上来就敲指令,结果不是漏了段定义就是忘了设段寄存器。我自己的解题顺序是:先把内存模型和段寄存器初始化写出来,再写数据或提示信息,最后才写逻辑功能段。像下面这个“把字符串中大写转小写”的例子,就体现了标准流程:
; 假设DS、CS已经设置好,串以0结尾 LEA SI, STRING AGAIN: MOV AL, [SI] CMP AL, 0 JE DONE CMP AL, 'A' JB NEXT CMP AL, 'Z' JA NEXT ADD AL, 20H ; 大写字母ASCII码 + 20H 变成小写 MOV [SI], AL NEXT: INC SI JMP AGAIN DONE: RET这段代码里的ADD AL, 20H是核心,因为大写字母ASCII码的十六进制比对应小写字母小20H。类似的考点还有数字字符转数值,SUB AL, 30H;十六进制数字转ASCII,大于等于10的加37H。这些“ASCII与数值互转”的技巧,几乎年年都考。
3.3 子程序设计与参数传递的审题步骤
子程序部分重点看三种参数传递方式:寄存器传参、存储器传参、堆栈传参。考试题目会规定用哪种方式,抄题目要求时容易看走眼。寄存器传参最快,但寄存器数量有限;堆栈传参比较灵活,但要注意先进后出,最后一定要把堆栈恢复。写子程序时文档注释要写好,因为卷面批改时,步骤分是按关键指令给分的,比如CALL之前要压栈、RET之后要清栈,这些“配套动作”必须写全。
4. 存储器扩展与接口芯片:不背不行的拿分大头
4.1 存储器扩展:字扩展还是位扩展,先算数据线再算地址线
存储器扩展题一般给一片芯片,比如SRAM 2114是1K×4位,EPROM 2732是4K×8位,让你扩展成一个16K×8位的系统,或者判断需要几片芯片。解题顺序是:先看数据线位数,需要几片做位扩展并成8位;再看地址线容量,需要多少片做字扩展来满足总容量。比如用1K×4位的芯片组成4K×8位,单片容量差4倍,有位扩展2片,有字扩展4片,一共8片。
地址译码是另一个高频考点。需要用74LS138三八译码器产生片选信号,这里一定要分清全译码和部分译码:全译码把所有地址线都参与译码,每个存储器单元只有唯一地址;部分译码有地址线不参与,产生地址重叠,多个地址指向同一单元。考题会问“哪些地址线参与译码、片内地址线是多少根”,这时候需要头脑冷静,别把数据线位扩展和地址线字扩展搞混。
4.2 8255并行接口:方式字和控制字必须会算
8255有三个口A、B、C,分两组工作,A组和C口高4位,B组和C口低4位。方式0是基本输入输出,方式1是选通输入输出,方式2是双向传输,但A口才支持方式2。初始化流程只有两条命令:先向控制字寄存器写方式控制字,再按需设置C口置位/复位字。
考试最爱出的就是给出电路连接,让你写8255的初始化代码。比如A口方式0输入,B口方式0输出,控制字就是1001 1000B,也就是98H。C口的置位/复位功能也常考,置位C口某位的控制字格式是0,然后位选择,再加0或1,比如使C口第3位置1,控制字是0 0000 0111B,即07H。这个计算题如果失分,实在太冤。
4.3 8253定时器、8259中断控制器对比速查
8253有三个独立的16位计数器,工作方式有6种。考试重点是方式0(计数结束产生中断)、方式1(可编程单稳态)、方式3(方波发生器)。计数初值的计算是必考:如果输入时钟频率是1MHz,要产生10ms的定时,计数初值=1MHz×10ms=10000,也就是2710H,用16位二进制写入。要注意先写低8位再写高8位,N=0时代表65536,不是0,这个细节经常出选择题。
8259中断控制器是管理中断优先级的,级联时能管理多达64级中断。重点记中断响应过程:CPU发INTA,8259送上中断类型码,CPU据此到中断向量表找到入口地址。中断向量表位于内存最低地址的1KB空间,也就是00000H~003FFH,每个中断向量占4个字节,所以中断类型码×4就得到向量在表中的偏移量。这个关系式背下来,计算题基本送分。
对于ADC0809和DAC0832,考得相对简单,但需要掌握启动转换和读取结果的基本流程,比如ADC0809通过IN0~IN7选通道,地址锁存信号ALE锁存通道地址,START启动转换,EOC查询转换结束,OE读取数据。这部分往往是简答题的素材,平时没接触过实验的同学要重点补一下。
| 芯片 | 核心功能 | 必背考点 | 常见陷阱 |
|---|---|---|---|
| 8255 | 并行I/O接口 | 方式控制字、C口按位控制 | 控制字寄存器与C口地址混淆 |
| 8253 | 可编程定时/计数 | 方式选择、初值计算与写入顺序 | N=0表示65536,别写成0 |
| 8259 | 中断优先级管理 | 中断类型码×4定位中断向量 | 忘记ICW1和ICW2的配合 |
5. 实验相关考点:别让送分题变成丢分题
5.1 实验考试考什么
北航微机原理实验课一般包括:熟悉MASM/TASM汇编环境,做简单输入输出,数码管显示,8253定时,8255控制交通灯或者步进电机,还有A/D转换这类综合实验。期末笔试里实验内容一般占10~15分,形式主要是填空题和简答题,比如“某实验用8255A口作为输入、B口作为输出,写出方式控制字”“8253工作方式3,写出产生音频信号的初始化步骤”。
这部分复习最有效的方法就是重开仿真软件,把实验挨个跑一遍。如果没有硬件开发箱,用Proteus或DOSBox加MASM也能模拟大部分逻辑。关键是理解每一段实验代码里每条指令的作用,特别是端口地址是怎么来的。一般实验系统中的片选信号会用地址译码器生成,比如系统给8255分配地址为300H~303H,很多人记成300H,其实A口、B口、C口、控制口四个地址是递增的,全都要记。
5.2 实验题的答题套路
遇到“简述实验步骤”这类简答题,别写流水账,按“硬件连接-初始化-主循环-结果观察”四步来答。先写芯片与CPU的连线要点,比如CS片选接到哪个译码输出;再写初始化代码或状态字;然后写主程序的执行逻辑,强调循环读取或中断方式;最后写观察到的现象。这样答,既覆盖得分点,又显得逻辑清楚。实验相关的小知识点里,我最容易被问住的是“数码管动态扫描原理”,要点在于几个数码管共用段选线,通过位选逐一点亮,刷新频率要高于人眼视觉暂留(约50Hz以上),否则会闪烁。
6. 常见失分点与避坑清单
下面是复习时最容易踩的坑,我按频率从高到低列出来,考前至少过一遍:
| 失分点 | 典型错误 | 对策 |
|---|---|---|
| 物理地址计算 | 段基址×16算成左移8位 | 十六进制乘十六进制先转十进制,再验证 |
| 8253初值设置 | 十进制与十六进制混算 | 先算计数次数,再用十六进制表示,注意高/低字节写入顺序 |
| 8255控制字 | 方式控制字与C口按位字弄混 | 记住最高位为1是方式字,为0是C口置位/复位 |
| 中断向量表 | 忘记每个中断向量占4字节 | 中断类型码n对应表地址偏移=4n,表位置在内存最低1KB |
| 标志位含义 | CF与OF混用 | 无符号数进位/借位用CF,有符号数溢出用OF |
| 寻址方式判断 | 分不清基址与变址 | 记住BX和BP是基址寄存器,SI和DI是变址寄存器 |
| 最小/最大模式 | 引脚功能张冠李戴 | 最小模式记CPU直接出控制信号,最大模式记8288 |
另外想说一个通用的复习策略:不要死记硬背数据手册式的表格,而是给自己讲一遍“为什么”。比如8255的方式控制字最高位为1,是想利用同一个端口地址去区分两种命令;8259中断类型码×4对应向量表,是为了在1KB表内装下256个中断;8086地址线20位而寄存器16位,所以用分段来解决。把这些“为什么”想通之后,前面列的那些考点根本不用背,考试时自然能推出来。
复习节奏上,我的安排是:考前两周先把这份PDF快速通读一遍,标记陌生概念;第二周集中刷真题,把错题对应到PDF章节精读;考前两三天进入“背诵模式”,只看速记表和推导过程。最后考前夜再把自己易错的几个计算题手写一遍,比背概念有用得多。
我个人最大的体会是:这门课像拼积木,8086是底座,汇编是插件,接口芯片是外围组件,分开学都很抽象,一旦拼起来运行,反而清晰了。你在复习时如果卡在某个概念上,别急着越过,先把它的“输入-处理-输出”画出来,往往画完就通了。
本文还有配套的精品资源,点击获取