北京交通大学微机原理复习提纲2008
更新时间:2024-04-09 08:16:01 阅读量: 综合文库 文档下载
试题类型:选择(10)、填空(10)、指令改错(10分)、简答(15)、读、写程序(20)、存储器扩展(15分)、接口应用(20)
第一章 微机概述
1. 进位计数制
? 表示:
n-1
i=-m
i
(N)k= Σ Ni×K
其中:Ni - 第i位数字
n, m – n整数位数,m小数位数 K – 基数(采用的数字符号的个数) K – 权
在汇编语言中,常用2#,10#,16#,在数的最后用字符B、D、H以示区别。 ? 数制转换(重点)
10->2:整数除2取余,小数乘2取整(均从小数点开始)。 例: 115.625 10->16:10->2->16
2/16->10:按公式计算累加和(按10进制运算规则)
2. 十进制数与字符的编码表示
·BCD码
用4位2#表示1位10#,逢十进一,4位组中各位的权=8,4,2,1
i
非压缩、压缩
·ASCII码(英文字母(大小写),数字) 3.2#运算规则(算术、逻辑)
·加、减、乘、除 ·与、或、非、异或 4. 符号数表示(重点)
·符号表示: 0正,1负,符号在最高位上 补码:符号,数值位变反+1。表示范围?0的表示?
例:-123转换成二进制数补码 ·补码的运算
利用公式:[X+Y]补=[X]补+[Y]补 [X-Y]补=[X]补+[-Y]补
例:X=-1000101 Y=-0110110, 求[X+Y]补
第二章 CPU结构
1. 8086/8088微处理器
地址(20)、数据(8)、控制线(IO/M、RD、WR、ALE等)、总线(INTR,INTA(#), HOLD, HLDA)。 1) 内部结构。EU(通用寄存器、ALU、FR) + BIU(段REG、IP、地址∑、指令队列) 2) 寄存器结构(重点)
·通用寄存器:
数据:AX、BX、CX、DX(每个都可分为两个8位寄存器,共8个:AH,AL,...) 指针:SI、DI、SP、BP ·控制寄存器:IP、FR ·段寄存器:CS、DS、SS、ES
各寄存器的主要用途? (特别注意SI、DI、BX、BP的用法)
2.存储器寻址(重点)
? 按字节(存储单元)进行存取,每次可1/2/4个字节 ? 地址线根数与寻址范围的关系 ? 分段编址:
? 分段原因:要用16位(可寻址2=64KB)的寄存器寻址1MB(2)的内存空间 ? 存储单元地址的2种表示:物理地址(唯一)、逻辑地址(不唯一)
? ? ?
16
20
物理地址表示:20位的真实地址 逻辑地址表示:段:偏移 物理地址的形成方法:
段(在CS/SS/DS/ES中)左移4位+偏移地址(在IP/SP/BP/BX/SI/SI中)
例:2AFBH:15ADH所对应的真实物理地址=? ? 段寄存器的使用
? 不同类型数据在内存中的存放顺序
? 堆栈特点及堆栈操作(PUSH、POP、CALL、RET、INT、IRET) 4. 状态寄存器FR(重点)
共16位,只用9位(状态6,控制3) 2类:
? 状态-AF、CF、OF、PF、SF、ZF
·置1/置0的条件?
·算术和逻辑操作对状态标志的影响:(算术-全部(INC/DEC不影响CF),逻辑-PF、SF、ZF) ·传送操作对状态标志的影响:除POPF/SAHF外,均不影响标志位。
? 控制-DF、IF、TF
·置1(置0)所产生的影响? 补充习题:2-8
第三章 指令系统
1.寻址方式
? 什么是寻址方式:寻找、计算(取得)操作数地址的方法 ? 关于操作数的寻址方式,8种:
立即:操作数在指令中(不允许使用段超越)。 REG:操作数在某一寄存器中(不允许使用段超越) *直接:操作数的地址在指令中
*REG间接:操作数的地址在BP/BX/SI/DI寄存器中 *基址:操作数的地址为(BX)/(BP)+位移量 *变址:操作数的地址为(SI)/(DI)+位移量 *基+变:操作数的地址为(BX)/(BP)+(SI)/(DI)
*带位移的基+变:操作数的地址为(BX)/(BP)+(SI)/(DI)+位移量
(带*的为存储器操作数) 注意事项:
? 能够参与寻址的寄存器:BX,BP,SI,DI,DX(仅用于I/O指令)
? 对存储器操作数:用BX,SI,DI时,默认的段地址在DS中,用BP时,默认的段地址在SS中。
若数据不在默认段中,应使用段超越。
? 指令中不可同时出现SI/DI,也不可同时出现BX/BP。(即一条指令中只能出现一次)
2.指令系统
指令的构成:操作码、操作数(0个、1个或2个,隐含) ·数据传送
1)可实现R←→R/M/Stack、Acc←→I/O、FR←→Stack、Num→M/R之间的传送。 2)包括:MOV、PUSH/POP、IN/OUT、LEA。
3)段寄存器只能通过MOV、PUSH、POP进行操作,但修改CS是不合法的。
没有将立即数送入段寄存器的指令,给段寄存器赋值只能通过通用寄存器间接传送。 4)PUSH/POP 可实现R/M/F←→Stack。每次传送2个字节。低字节在(SP-1),高字节在(SP-2)。同时使堆栈指针自动修改。 5)LEA将操作数EA装入寄存器。
6)IN/OUT实现Acc<->I/O,I/O端口的地址在指令中(0-255)或在DX中(0-65535)。 7)凡具有两个操作数的指令——操作数类型应相同
·算术运算、逻辑运算和移位
1)所有这类运算的操作数都不允许是段寄存器。
2)算术/逻辑运算指令:一般要影响全部6个状态标志。例外:INC/DEC不影响CF。 3)ADD/ADC/SUB/SBB——8/16位操作,不带进位/带进位。
4)INC/DEC——REG/MM(8/16位)加/减1。操作数不允许是立即数。
5)CMP是特殊形式的减法指令。除不存储结果外,其他同SUB。用于比较两个操作数之间的大小关系。
6)MUL/IMUL——8/16位操作,结果16/32位。
8位乘:操作数*AL(隐含),结果在AX中 16位乘:操作数*AX(隐含),结果在DX:AX中 7)DIV/IDIV——16/32位操作,结果8/16位。
8位除:AX(隐含)/操作数→AL?AH 16位除:DX:AX(隐含)/操作数→AX?DX
8)DAA/DAS对压缩的BCD码进行加/减法调整。隐含操作数为AL。用在加/减法指令后。
9)AND/OR/XOR/NOT——8/16位。按位操作,无进借位。
10) TEST是特殊形式的AND指令。除不存储结果外,其他同AND。用于测试操作数的某些位的状态。
11) 移位和循环移位指令共有8种:
移位 逻辑/算术左移SHL/SAL 逻辑右移SHR 算术右移SAR 循环左/右移ROL/ROR 循环移位 带进位循环左/右移RCL/RCR 移位位数:放在CL中,如:MOV CL,4;SHL AX,CL
若只移1位则允许以立即数形式放在指令中,如SHL AX,1
·控制转移、处理器控制
1)标号代表了存放指令的存储单元的地址。通常作为转移指令的目标操作数。 2)无条件转移指令有3种:短、近、远。
短转移(SHORT):转移范围-128~+127,段内转移 近转移(NEAR):转移范围-32768~+32767,段内转移
远转移(FAR):转移到系统存储器的任何位置,段间转移(跨段) 3)直接转移有3种:段内短/近转移,段间转移。
目的地址放在指令中,分别以运算符SHORT、NEAR PTR、FAR PTR予以标识。 4)间接转移有2种寻址方式:
目的地址放在寄存器中(近转移):例:JMP BX 目的地址放在存储器中(近转移为字,远转移为双字)。
例:JMP WORD PTR[BX]; JMP DWORD PTR[BX] 5)条件转移全部是直接短转移。常用的有JC/JNC、JZ/JNZ,JL/JNL,JG/JNG等。
6)LOOP <标号>指令相当于DEC CX/JNZ <标号>两条指令的组合。它使CX减1,当CX不是零时转移到标号处。循环的其他形式:LOOPZ/LOOPNZ,由CX、ZF共同决定是否转移。 7)CALL/RET实现过程调用和过程返回。
CALL执行时,它把返回地址(即紧接在CALL后面那条指令的地址——IP,CS的内容)压入堆栈,然后转移到过程。段内调用:IP进栈;段间调用:IP、CS都进栈。
RET指令把返回地址从堆栈弹出到IP(从近过程返回)或IP、CS(从远过程返回)。 8)中断分为硬件中断和软件中断。软件中断主要是由INT指令产生的。用于处理中断的过程叫做中断处理程序,它是通过中断向量间接调用的。中断处理程序结束后,必须用IRET指令返回被中断的程序。
9)中断向量是中断服务程序的入口地址,4字节(包括偏移和段地址)。
中断向量表(0-3FF,4字节/每表项,256个,共1024字节)
中断向量的偏移地址=向量号*4 (段地址=0)
例: INT 14H, INT 2FH 的中断向量存放单元=? 10) CPU响应中断后,将PSW、IP和CS压入堆栈,清除TF和IF标志位,然后根据中断类型
号从中断向量表取出中断向量送到CS、IP,从而转到相应的中断处理程序执行。 11) 中断处理结束,用IRET指令从堆栈中恢复返回地址(IP,CS)和标志寄存器FR。 12) 中断允许标志位(IF)控制CPU的INTR(可屏蔽中断请求)引脚。STI允许CPU响应可屏
蔽中断请求,CLI则禁止。IF标志位不影响软中断(INT指令)。 13) CLC/STC/CMC用于清除/置位/取反CF标志。
第4章 汇编语言程序设计
1、顺序程序设计
要注意语法、汇编语言框架、算法逻辑等方面符合要求。 2、 分支、循环程序设计
转移条件(CF、ZF、OF、SF、PF)、指令用法(根据标志位)
相关指令:Jx;x=C/NC(B/NB)、Z/NZ、G/NG、L/NL、GE/NGE、LE/NLE、A/NA、O/NO、P/PO、S/NS
JCXZ LOOP LoopZ/LoopNZ
3、子程序设计(重点是参数传递方法和堆栈概念)
子程序结构(框架):PROC … ENDP
参数传递方法:寄存器、内存变量(值、指针)、堆栈 相关指令:CALL、RET
保护/恢复寄存器:入口处和退出前,PUSH/POP
4. 汇编语言与汇编程序
? 语句格式:[标号:] 操作码 操作数 ;注释 ? 各种名字的定义规则(包括段名、标号、变量名、常量名、过程名):
1、 可以包括A-Z、0-9和“?.@_$ ”5个特殊字符
2、 不能以数字开头
3、 不能与保留字(指令助记符/伪指令/寄存器名等)重名,使用标号时特别要注意 4、 不能重复定义 5、 不能超过31个字符 ? 汇编语言程序的结构(框架)
数据段名 SEGMENT
<数据定义伪操作> 数据段名 ENDS 代码段名 SEGMENT ASSUME CS:代码段名,DS:数据段名 <主程序> <子程序>
代码段名 ENDS
END <程序开始地址(标号)> 主程序的三种结构:
开始标号: <指令1> (1) <指令2> . . . MOV AH,4CH INT 21H
过程名 PROC FAR (2)
<指令1> <指令2> . . . MOV AH,4CH INT 21H 过程名 ENDP
过程名 PROC FAR PUSH DS MOV AX,0 PUSH AX . . . <指令1> <指令2> . . . RET 过程名 ENDP (3) 注意:主程序开始处要设置DS、ES段寄存器(有时也要设置SS/SP的初值)
? 数据项和表达式
操作数构成:REG、存储器单元、数据项
数据项:常量、标号、变量以及三者的组合(表达式) ·常量:数字常量2#、16#、10#,字符常量‘XXX’
·标号:某条指令的符号地址,定义时要加冒号(:),引用时不要冒号 ·变量:内存中的数据区
定义格式:[变量名] DB(DW,DD) [表达式] ·表达式:算术、逻辑、关系 算术:+、-、*、/ 逻辑:AND、OR、NOT、XOR
关系:EQ、NE、LT、GT、LE、GE(结果是逻辑值,真-全1,假-全0)
例: MOV AX,4*64 ;AX←256 MOV AX,40H EQ 64 ;AX←0FFFFH ·类型操作符:(BYTE、WORD、DWORD、NEAR、FAR)PTR ·取段、偏移地址操作符:SEG、OFFSET(变量和标号)
例: MOV BX,OFFSET VAR ;BX←VAR的偏移地址(或EA) MOV AX,SEG VAR ;AX←VAR的段地址
(注意与LEA指令的异同)
? 指示性语句
指示性语句(伪指令)与指令性语句(指令)的区别是什么?
变量定义: DB、DW、DD、DUP 符号赋值: EQU、=
段定义: SEGMENT/ENDS、ASSUME
定位类型:BYTE、WORD、PARA、PAGE 组合类型:PUBLIC、AT、STACK 类别名:‘CLASS’(段组名)
伪指令SEGMENT指定一个段的开始,ENDS指定一个段的结束。SEGMENT/ENDS必须成对使用。 伪指令ASSUME通知汇编程序CS、DS、ES、SS与逻辑段之间的关系——用于语法检查。
? DOS功能调用(INT 21H,AH=功能号,参数传递:寄存器) 1) 输入一个字符:01H,AL=字符
Byte 1 Byte 2 字节数=缓冲区大小
缓冲区大小 实际键入字符数 输入缓冲区 2)输入字符串:0AH,DX=缓冲区地址(格式: )
例: BUFSIZE DB n ;n=<缓冲区大小> ACTSIZE DB ? ;实际键入字符数将访在此单元 BUFFER DB n DUP(?) ;预留n个字节 3)显示一个字符:02H,DL=字符
4)显示一个字串:09H,DX=字串首址(字串以’$’结束) 5)返回DOS系统:4CH
? 汇编语言程序编制步骤 1)编辑EDIT(生成.ASM)
2)汇编MASM(输入.ASM,输出.OBJ) 3)链接LINK(输入.OBJ,输出.EXE) 4)调试DEBUG
? 补充习题4-1,习题4-2,4-19
第五章 半导体存储器
1. 要求
1) 分类、特点、工作原理——ROM(EPROM,EEPROM),RAM(SRAM,DRAM)计算构成存储器
所需的芯片的数量,位扩、字扩的连接方法
2) 利用全译码/部分译码,将存储器芯片连接到系统总线上并映射到任意地址空间 3) 给出存储器的地址范围求内存的首址/末址和容量,反之也要会求解 4) 根据地址范围用门电路(包括74LS138)构成译码器的方法 2. 重点
1) 基本概念
? 存储器存储数据的单位:
bit——存储数据的最小单位
Byte——存取数据的基本单位,也称存储单元
内存以字节为单位进行存取,字长为16/32/64位时,则每次存取2/4/8个单元 ? 存储器的容量:微机系统中存储单元的总和。单位为KB、MB、GB ? 存储器的编址:地址——给每个存储单元分配的顺序编号
? 寻址范围与地址总线位数的关系:地址线n根,地址范围2,分布在0~2-1 ? 寻址范围与存储容量的关系:寻址范围——CPU编址单元的总和,定值
存储容量——实际配置的物理内存单元的个数,可变
? 存储芯片的容量:用“单元数×每单元位数”表示(例如4K*8b) 2) 位扩、字扩、字位扩及连接方法
位扩——对位数扩充,如用存储芯片制造内存条 字扩——对容量扩充,如往微机中扩充内存条 字位扩——对位数、容量均扩充
连接规则:位扩——数据线分别引出,地址/控制线并联
字扩——地址线/读写信号/数据线并联,片选线分别接高位地址的译码输出 3) 地址译码
存储芯片的容量总是小于CPU的寻址空间。也就是说,一个芯片的地址线数总是少于系统地址总线的根数。
系统地址总线分为两部分:低位地址线直接接存储芯片;高位地址线则用于片选译码(称为地址译码),用于选择哪个存储芯片工作。
n
n
全地址译码——全部高位地址线都参加片选译码
部分地址译码——部分高位地址线参加片选译码(一个芯片会对应多个地址范围) 常用译码电路——用与、或、非门构建,或用74LS138等现成的译码器 4) 地址范围、内存容量、首址/末址 利用公式: 末址 = 首址+容量(字节数)-1 容量 = 末址-首址+1 再记住几个关键数字:2 = 1KB = 400H
0~000FFH → 00100H = 256B 0~00FFFH → 01000H = 4KB
0~0FFFFH → 10000H = 64KB 5) 存储芯片与总线的连接
重点是SRAM和EPROM与系统总线的连接方法:数据、地址(译码器)、CS#/CE#、OE#
10
第六章 输入输出技术
1. 概述
1) I/O端口的编址
? 端口地址: I/O接口中的子部件或寄存器的编号 ? 两种编址:统一编址、独立编址,特点及优缺点
? 8088/8086系统的I/O寻址:直接寻址256个(0~0FFH),间接寻址(DX)64K个(PC中只
允许1024个,0~3FFH) 2) 输入输出的基本方法
无条件、查询、中断、DMA (以上四种方法的特点)
? 查询——用I/O指令读入外设状态(数据准备好/设备空闲),以决定能否进行读写 ? 中断——外设准备好时主动向CPU提出申请,CPU暂停当前程序,转入中断服务程序,完
成数据传送。中断服务完毕,CPU返回被中断的程序继续执行
? DMA——在外设与内存之间直接进行数据交换,传输过程由DMAC管理,CPU只进行初始化
重点:查询方式的工作流程(读状态端口、判断准备好否、读/写数据端口),编程方法?
2. 中断
1)基本概念
? 中断、中断类型、中断向量的作用
? CPU的有关引脚——INTR、NMI(区别?满足什么条件CPU才能响应) ? 中断处理的基本过程
请求────→判优────→响应────→处理────→返回 8259:判优、排队、送中断向量(类型)码 CPU:执行中断服务程序,执行完后返回断点 CPU:响应请求、根据向量码获得中断向量 2)8086/8088中断系统
? 几类中断的优先级别:内部中断(。。。)、NMI、INTR、单步中断 ? 中断向量表的位置与结构
? 根据中断类型码(向量码)获得中断向量的方法,即中断向量在表中的位置(会计算) 3)8259
? 主要引脚功能 ? 几个概念:
? 中断触发方式:电平、边沿
? 普通嵌套与特殊嵌套:(仅在多片级联时需考虑此问题)
? 一般屏蔽与特殊屏蔽:为高级别中断服务时是否允许响应低级别的中断。 ? 中断结束方法:自动结束、利用EOI命令结束
? 中断优先级循环:固定优先级、循环优先级(又分为自动循环、特殊(指定)循环) ? 8259的初始化——ICW1-4、OCW1-3的作用,初始化顺序
? 8259的寻址和连接——各寄存器如何寻址,单片连接方法,多片级连方法
? 补充例6-3
第七章 I/O接口技术
1. 8255
? 工作方式:重点是方式0,其它两种方式仅要求了解 ? 寻址——内部3个通道和控制寄存器如何寻址
? 引脚连接:面向系统总线的引脚、面向I/O设备的引脚(PA/PB/PC三组),PC口的使用 ? 初始化——写控制字(各位的含义)、C口的位控字用法
注意:C口分为两个4位组,同一组内只能都是输入或都是输出。C口通常用作控制信号的输出和状态信号的输入。用作输出时,C口既可以用写位控制字的方法输出,也可以用标准
的往C口写数据的方法输出。 2. 8254
? 注意CLK、OUT、GATE和计数初值四者的关系。
? 从6个方面进行总结:启动方法、自动重复否、写控制字后OUT的变化、GATE作用、正在
计数时写入新的初值何时生效、OUT输出波形(与计数初值与时钟频率的关系) ? 工作方式——0~5,重点是方式0,2,3,参考“工作方式一览表”
0:单个负脉冲,宽(N+1)*TCLK,软件启动,不自动重复 1:单个负脉冲,宽N*TCLK,硬件启动,不自动重复
2:连续负脉冲,宽度为TCLK,T=N*TCLK,硬件/软件启动,自动重复
3:连续方波(注意前后半周期的宽度),T=N*TCLK,硬件/软件启动,自动重复
? 寻址和连接——内部3个计数器和控制寄存器如何寻址,与总线如何连接,如何控制GATE ? 初始化——写控制字(各位的含义)、写计数初值(8位/16位),每个计数器分别初始化
3. 8250
? 8250内部有10个寄存器,有7个地址。 ? 对8250的初始化有以下几个步骤: 1)、置线路控制寄存器DLAB=1 2)、写除数寄存器 3)、写线路控制寄存器 4)、写MODEM控制寄存器 5)、写中断允许寄存器 ? 通过查询方式编写通信程序
这时,CPU 可通过读线路状态寄存器(3FDH)查询相应状态位(D0 与 D5),以确定接收寄存器是否就绪(D0=1)与发送保持器是否为空(D5=1)。
通过中断方式进行通信时,首先写MCR (0BH)允许8250中断(总开关),然后写IER(分开关),打开指定的中断源。在中断服务程序中,要查询IIR,以确定是谁提出的中断请求,然后进行相应的处理。
5.8237
? 8237内部有16个寄存器,有16个地址。 ? 8237四种传输模式的数据传送过程;
? 对8250的初始化有以下几个步骤: 1)、8237A停止工作 2)复位命令(总清) 3) 模式字设置
4) 基本地址设置 字节数设置 5) 去屏蔽,启动
注意:当传送数据块的字节数为n 时,写入计数器中的值应为 n-1。
? 补充习题7-5
? 补充例7-4,例7-6
正在阅读:
北京交通大学微机原理复习提纲200804-09
不一样的风光片思路:手把手教你长焦接片06-17
董事长在2022年集团公司疫情防控及安全生产经营工作视频会上的讲03-25
有理数的基础知识练习题01-26
2022-2022年中国电影产业市场前景与投资战略规划分析报告04-12
学习美发培训心得体会【通用5篇】03-26
遵义医学院附属医院赴我院学术讲座01-25
名人教育孩子的方式:爱+耐心+正确的方式05-10
电动汽车充电站建设现状及关键技术05-12
高三上学期政治教学个人的工作总结07-24
- 冀教版版五年级科学下册复习资料
- 微生物学复习提纲
- 2013—2014学年小学第二学期教研组工作总结
- 国有土地转让委托服务合同协议范本模板
- 我的固废说明书
- 企业管理诊断报告格式
- 东鼎雅苑施工组织设计
- 谈谈如何做好基层党支部书记工作
- 浮梁县环保局市级文明单位创建工作汇报
- 管理学基础知识
- 大学物理实验报告23 - PN结温度传感器特性1
- 计算机网络实践
- 酒桌上这四种情况下要坐牢,千万别不当回事……
- 国家康居示范工程建设技术要点
- 中国贴布行业市场调查研究报告(目录) - 图文
- 新课标下如何在高中物理教学中培养学生的创新能力初探
- 营养师冬季养生食谱每日一练(7月4日)
- 关注江西2017年第3期药品质量公告
- 建设海绵城市专题习题汇总
- 10万吨年环保净水剂建设项目报告书(2).pdf - 图文
- 提纲
- 微机
- 交通大学
- 北京
- 复习
- 原理
- 2008
- 食品中氯酸盐和高氯酸盐的测定
- 2018年度增值企业年报空表单(仅供参考-以在线填写表单为准) -
- 重庆各区县中小学校学校及其办学理念
- 安徽省各地学校2016年高考喜报
- 财政部调整后的外差旅住宿费和伙食补助费标准表
- 2#楼工程竣工预验收质量评估报告
- 05-相平衡答案
- 浙江教育出版社小学三年级信息技术教案
- 西南大学第四届本科生创新基金立项项目
- 高三英语第二学期第五次月考试题 - 9
- MDV空调故障维修典型实例 - 图文
- 汽车换挡机构说明书
- 九年级上册名著导读归纳与训练题
- 华为业务数据配置指导 - 图文
- 大学生对中国书法的了解程度调查报告
- 诺西LTE指标提取SQL语句20160801
- 2简单国民收入决定理论练习题
- 七年级历史上册 第7课 战国时期的社会变化教案 新人教版
- 创设最佳体育课堂教学情境
- (估算-打印)印江县城供水二期工程规划估算(NO1-0831) - 图文