资讯动态

微机原理期末复习攻略:8086汇编与接口芯片考点精讲

发布时间:2026/9/6 20:42:12 来源:尧图企业网站定制
简介北航《微机原理》期末复习PDF面向正在准备期末考试的北航本科生及自学该课程的学生系统梳理了微机概论、运算基础、8086/8088微处理器、汇编语言程序设计、可编程接口芯片8253/8255等以及输入输出与中断等章节的核心考点。文档以复习大纲形式展开内含BCD/ASCII编码、原码补码反码、物理地址计算、寻址方式、伪指令使用、8253初始化、8255工作方式等难点细节并附各章典型练习题号便于按图索骥、查漏补缺。资源为1个PDF文件大小约4.57MB目录式结构清晰阅读与打印都方便。已有318人浏览学习对考前集中梳理知识体系、把握出题重点很有帮助适合配合课堂讲义和教材进行高强度冲刺复习。 如果给北航的《微机原理》期末复习定一个关键词我会选熟而不是难。课程配套的复习资料PDF动辄几百页PPT里的时序图、引脚图、地址波形图看起来每个都像考点但真正拉开分数差距的其实是少数几类反复出现的题型。作为把《微机原理与接口技术》这门课从看得懂硬啃到写得对的过来人我想聊聊我踩过坑之后才想明白的复习逻辑哪些内容必须背到条件反射哪些大题只需要套固定套路以及怎样把一份期末复习资料用得比单纯从头翻到尾高效得多。1. 期末不是背教材北航这门课的真正考点分布1.1 试卷结构里藏着的主次关系北航的期末卷子通常由选择、填空、简答、汇编编程、接口综合几类题型组成。别被题型名字唬住它们背后考的是同一条能力链认识芯片引脚、会算地址范围、能写初始化代码。选择题和填空题考的是认不认得编程题和接口题考的是用不用得来。这两类能力不能均匀用力得把大头时间压在后者。从往届流传的复习资料和考后反馈来看章节权重差异很明显。CPU内部结构加寻址方式大概占两成汇编语言编程占两到三成存储扩展和接口芯片合起来能占到近一半。所以复习顺序应该是接口芯片最高优先级然后是存储扩展接着是汇编编程最后才是CPU结构和基础概念。这个顺序和教材章节顺序恰好相反但很符合试卷的分数分布。我给当时的复习列过一张优先级表大致长这样内容模块典型考点期末权重经验估复习优先级CPU内部结构与总线时序寄存器、物理地址、总线周期15%~20%高七种寻址方式与指令系统MOV限制、LEA、XLAT、标志位变化20%左右高汇编语言编程循环、查表、子程序、DOS调用20%~25%很高存储器扩展芯片片数、地址译码、地址范围15%~20%很高接口芯片8255A、8253、8259A、ADC/DAC25%~30%最高如果你手上的复习资料有往年真题或模拟题先拿来做一次定位看自己在哪一块最犹豫再按上表的优先度分配时间。不要从第一章平推到最后这是最容易被PDF厚度带偏的做法。1.2 把复习资料当成检索目录而不是阅读材料我见过不少同学拿到《微机原理》的PDF后从第一页开始往前读读到第20页就开始犯困最后只记得几个概念名词一做题还是空白。正确打开方式是先把目录、章节小结和所有图表快速扫一遍重点标记带控制字初始化地址范围字样的部分再对照往年题目标出高频章节。PDF里的图往往比正文更重要——时序图、译码电路连线图、芯片引脚图考试时很可能只改几个参数原封不动出现在卷面上。把这些图单独截出来或打印出来旁边用红笔标注这里考过这里容易漏。整理完以后整份资料就变成了一本检索目录看到题干提到8255的A口立刻定位到方式控制字和PC口的置位控制字看到组成4K×8存储系统立刻想到芯片片数和地址线分配。后面做综合题时翻资料的速度会直接影响你的答题信心。2. 8086内部结构与寻址方式选择填空高频区的快速清账2.1 寄存器、物理地址、总线周期的三件套8086CPU那一章很多同学觉得不就是14个寄存器加一个地址计算公式吗实际上选择填空特别喜欢从细节里挖坑。寄存器要按功能分类记忆别死记字母寄存器分类隐含用途AX累加器乘除法、I/O指令默认使用BX基址寄存器常作查表基址可间址CX计数寄存器循环、移位、串操作计数DX数据寄存器I/O端口地址、乘除扩展SP/BP堆栈指针/基址指针SP指向栈顶BP默认配合SS段SI/DI源变址/目的变址串操作中SI指向源、DI指向目的CS/DS/SS/ES段寄存器代码段/数据段/堆栈段/附加段IP指令指针恒指向下一条待取指令FLAGS标志寄存器状态位ZF、CF、SF、OF等与控制位IF、DF等物理地址计算是保命题物理地址 段基址 × 16 偏移地址也就是段基址左移4位再加偏移。比如DS3000H偏移为2000H物理地址就是32000H。北航的选择题经常反过来考给你物理地址和偏移让你反推段地址或者故意把×16写成×10H看你会不会掉坑。总线周期这一块一般不会考特别深但要知道一个基本总线周期包含T1、T2、T3、T4四个时钟周期T1期间ALE有效用于锁存地址。搞清楚时钟周期、总线周期、指令周期三者的关系就够了一个指令周期由若干总线周期组成一个总线周期由若干时钟周期组成。简答题如果碰到两三句话说清楚就行。2.2 七种寻址方式的分组判别寻址方式这块我复习时最大的感受是不要按顺序背要按操作数来源分组。操作数在指令里立即数寻址。例如MOV AX, 1234H。操作数在寄存器里寄存器寻址。例如MOV AX, BX。操作数在内存里地址怎么算这就是剩下五种要解决的问题。直接用常数给出地址叫直接寻址放在BX/SI/DI里叫寄存器间接寻址BX/SI/DI再加一个位移量叫寄存器相对寻址BX加SI/DI叫基址变址寻址再加上位移量叫相对基址变址寻址。这里面最容易考的坑有两个第一MOV AX, [2000H]和MOV AX, 2000H的区别前者从内存2000H单元取数后者把立即数2000H送给AX第二如果寄存器间接寻址用的是BP默认段寄存器是SS而不是DS很多题专门在这里设陷阱。我整理过一个速查表做题时对着看非常稳寻址方式书写格式默认段寄存器一句话记忆立即寻址数值无数是操作数本身寄存器寻址寄存器名无数在寄存器里直接寻址[偏移量]DS地址是一个常数寄存器间接[BX]/[SI]/[DI]/[BP]DS/SS地址在寄存器里寄存器相对[BXdisp]等DS/SS寄存器里的地址加位移基址变址[BX][SI]等DSBX加SI/DI相对基址变址[BX][SIdisp]DS在上一项基础上加位移这些细节在单选里分值不高但往往是拉分题。能把整张表默写出来的同学选择填空基本不会失分。3. 汇编大题的本质先翻译人话需求再写代码3.1 数据搬运与统计类循环模板汇编编程大题很少让你写全新算法题目本质上是一句人话需求加一堆已知条件。比如从DATA开始的100个字节数据中统计负数个数结果存入RESULT单元。这类题的关键是先确认数据是字节还是字再决定用哪些寄存器。我当时的通用解法是三步第一步用CX作循环计数器第二步用SI或DI做地址指针第三步在循环体里完成判断和统计。给个可以直接套的模板DATA SEGMENT DATA1 DB 12H, 80H, 0F1H, ... ; 100个带符号字节 RESULT DB ? DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA START: MOV AX, DATA MOV DS, AX XOR BX, BX ; BX清零准备统计负数个数 MOV CX, 100 ; 循环次数 MOV SI, OFFSET DATA1 NEXT: MOV AL, [SI] ; 取一个字节 TEST AL, 80H ; 只检测最高位不影响原数据 JZ PLUS ; 最高位为0说明是非负数跳过 INC BX ; 最高位为1负数个数加1 PLUS: INC SI ; 指向下一个字节 LOOP NEXT MOV RESULT, BX MOV AH, 4CH INT 21H CODE ENDS END START这里有个小知识点判断负数为什么用TEST AL, 80H而不用CMP AL, 0因为TEST只做按位与不改变原值而且直接判断符号位比CMP后再看SF或OF要少一层思考。如果数据是16位带符号字就要测TEST AX, 8000H道理一样。3.2 查表、子程序、DOS调用的套路查表题是北航期末的常客通常配合XLAT指令。用XLAT前把表首地址放入BX待查索引放入AL执行后AL自动变为表项内容。要注意表必须存放在以BX为基址的可寻址段内数据定义时用DB逐项列出。子程序题则是另外一套写法。题目要求将某个功能写成子程序时记得三件事开头PUSH保护现场结尾POP恢复现场再RET参数可以通过寄存器传递也可以直接定义为全局变量代码中用到哪些寄存器就保护哪些寄存器别多也别少。一个标准子程序框架可以默写成这样SUB1 PROC NEAR PUSH AX PUSH SI ... ; 子程序功能代码 POP SI POP AX RET SUB1 ENDPDOS功能调用也必须会用。最常见的是MOV AH, 09H加LEA DX, STRING再INT 21H输出字符串这时字符串必须以$结尾输出单个字符用MOV AH, 02H把字符放入DL。很多同学在数据段里忘写$或者把OFFSET写成DWORD PTR导致结果不对白白丢分。3.3 常见丢分点按我批改过课程作业的经验汇编题丢分点非常集中循环里随手用了CX做其他事结果LOOP的计数被破坏MOV DS, AX之前先给DS赋了段地址方向搞反LEA DX, STRING和MOV DX, OFFSET STRING分不清其实两者等价两个内存单元不能直接CMP [SI], [DI]必须先把一个取到寄存器中断服务程序结尾写了RET而不是IRET子程序里忘记保护和恢复现场导致主程序跑飞。编程题是按步骤给分的。即使结果算错只要循环结构、地址指针、计数器的逻辑是完整的也能拿到大部分过程分。所以考试时千万不要因为某个细节卡住就整题放弃能写多少写多少。4. 存储扩展与接口芯片两道大题的常规打法4.1 存储器扩展的三步计算法存储器扩展题通常给你一款芯片的规格比如用21141K×4位组成4K×8位的RAM让你算需要多少片、怎么连接、地址范围是多少。这类题按三步走就不会乱。第一步算芯片总数。芯片总数 系统总容量÷单芯片容量。注意单位要统一系统容量是4K×8位单芯片是1K×4位所以一共需要(4K×8)/(1K×4)8片。如果只算片数容易错建议拆成位扩展和字扩展两步先用2片1K×4位并成1K×8位这是位扩展再用4组1K×8位拼成4K×8位这是字扩展。第二步分配地址线。1K容量需要10根地址线对应CPU的A0~A94K容量需要12根地址线A0~A11。A0~A9连接每片芯片的10根地址引脚A10、A11留给译码器产生片选信号。第三步画译码电路并计算地址范围。如果A11A10分别接译码器的两个输入四组芯片的片选分别对应00、01、10、11那地址范围就很清晰地分成四段片选状态地址范围按A0~A11编址A11A1000000H~3FFHA11A1001400H~7FFHA11A1010800H~BFFHA11A1011C00H~FFFH写完整地址时要补上高位地址线比如在16位地址总线上实际范围是0000H~03FFH、0400H~07FFH等。很多资料里会专门讲部分译码和全译码的区别。部分译码意味着有些高位地址线没参与译码芯片会被映射到多块地址空间也就是地址重叠全译码则地址唯一。填空题非常喜欢在这里设坑题目写了采用部分译码你就得知道地址范围不止一组。4.2 8255A、8253、8259A、ADC/DAC的初始化默写清单接口章节才是《微机原理与接口技术》真正的主角。复习接口芯片时最忌讳逐个引脚死背数据手册正确方法是抓住三样东西芯片功能、控制字、初始化流程。8255A可编程并行接口是必考中的必考。复习重点有三个端口A/B/C的三种工作方式、方式控制字、C口的置位/复位控制字。方式控制字的格式要烂熟D71表示这是方式控制字D6D5确定A口方式D4确定A口输入/输出D3确定C口高4位输入/输出D2确定B口方式D1确定B口输入/输出D0确定C口低4位输入/输出。比如题目要求8255A的A口工作于方式0输出B口方式0输入C口高4位输出、低4位输入控制字从高到低逐位写出就是10000010B也就是82H。初始化代码模板MOV DX, 0FFFEH ; 控制口地址具体数值由译码电路决定 MOV AL, 82H ; 方式控制字 OUT DX, AL控制口地址怎么算记住8255A内部有A1A0两根端口选择线A1A000对应A口01对应B口10对应C口11对应控制口。给出一段地址译码电路时先由片选信号算出基地址再按A1A0偏移推出四个端口地址。8253/8254可编程定时器/计数器也要会初始化。控制字格式中D7D6选择计数器0/1/2D5D4决定读写格式00锁存、01只读低8位、10只读高8位、11先低后高D3D2D1选择工作方式D0选择BCD还是二进制计数。初始化顺序永远是先写控制字到控制口再写计数初值到对应计数器端口。方式3方波输出、方式0计数结束中断、GATE门控信号的作用这三个知识点在简答题里反复出现。8259A中断控制器需要掌握ICW1、ICW2、ICW4和OCW1的关键位。ICW2用来设定中断类型码的高5位中断请求IR0~IR7对应的类型码就是低3位从000到111。比如ICW2写入40H则IR0对应40HIR7对应47H。级联和优先级的知识点也要看但一般不会考到芯片内部细节。ADC0809和DAC0832在综合题里经常以数据采集/输出系统的面目出现。ADC0809是8通道逐次逼近型模数转换器主要引脚有INTR转换结束信号、START启动转换、OE输出使能、ALE地址锁存DAC0832是8位电流输出型DAC需要外接运算放大器把电流转为电压控制引脚有ILE、CS、WR1等。复习时抓住启动转换—查询/中断等待完成—读取数据这条流程再配合8255A或8253组成系统。4.3 综合应用题的答题结构北航的接口综合题通常会给你一幅完整的地址译码图图上标着8255A、8253、ADC0809等芯片的片选逻辑。第一小问往往是写出各端口地址第二小问让完成8255A初始化第三小问让编写读取一次ADC数据的程序。我的答题顺序非常固定先根据译码电路推出片选地址范围再根据A1A0等引脚确定端口地址然后写控制字初始化最后按“启动转换→等待→读数据”的流程写程序段。这样做的好处是哪怕第三问的程序写错了前面的地址计算和控制字也能拿分综合题最怕的就是一口气只写答案、没有过程。平时实验里写过的交通灯、数码管显示、按键扫描程序大概率会以类似逻辑出现在期末卷面上多翻翻实验报告比临时背新题有用得多。5. 考前一周怎么把复习资料变成肌肉记忆5.1 动手默写别只用眼睛看考前一周最容易出现的状态是我看着都会一合上就忘。这是因为微机原理的接口代码本质上是手部记忆只看不写等于没复习。我当时给自己定的任务是每天把8255A方式控制字、8253控制字、8259A初始化流程、DAC0832的直通方式代码各默写一遍。第一遍写得很慢还会卡在控制字的具体位定义上写到第二遍第三遍基本上只要看到端口地址手下就能自动写出完整的初始化序列。默写不是抄写一定要先合上资料写完再翻开对照。写错的地方就是你复习资料里最需要重点回看的盲区用红笔单独标出来。如果某个芯片的初始化流程连续两天都默写正确说明这个考点基本稳了。5.2 把作业错题和实验报告回捞一遍北航的作业、实验报告、随堂思考题里有很多题目会在期末换个数据重出。比如实验里做过利用8253产生方波驱动LED闪烁期末简答题可能变成说明8253方式3的输出特点原理一模一样。复习资料如果有一份现成的考点清单先把清单上的每一条对着作业找一遍找到就勾掉找不到就重点标记。错题不要只看答案要重新做。做对了才算这一题真正消化。那些以前连思路都没有的题考前再看往往会发现哦原来就是把存储扩展和8255A初始化拼在一起。经过这一轮回捞你对整门课知识框架的感受会从一堆杂乱芯片变成几个固定套路。5.3 进考场前的最后10分钟考前最后10分钟不要再塞新知识。盯住四样东西快速过一遍就够了条件转移指令JZ/JNZ/JC/INC的跳转条件、8255A方式控制字的D71标志、8253控制口的写入顺序、常见端口地址范围的计算方法。如果你习惯准备一页A4手写公式纸上面可以浓缩记录最重要的控制字格式、地址线分配和典型初始化代码考前看这一张纸优于翻几十页PDF。最后分享一个考场上的经验拿到卷子先花两分钟扫一眼所有大题先做最有把握的接口综合题再回头抠选择填空。那不是因为大题分多而是因为接口题一旦思路通了写起来很快而选择填空里的某个细节可能卡你五分钟。时间花在最容易拿分的题目上是这门课期末最实用的策略。把复习资料里的每张图、每个控制字反复用到形成条件反射进了考场你会发现所谓难题不过是场景换了、参数变了核心套路还是那几个。本文还有配套的精品资源点击获取

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价