1、1 微机原理及接口技术 复习课 2 考试题型 1、填空 ( 30分) 15 2、说明 ( 10分) 5 3、问答 ( 10分) 5 4、计算 ( 15分) 3 5、编程 ( 10分) 1 6、程序分析( 10分) 1 7、综合应用( 15分) 1 3 第 1章复习 数制转换 二 十六进制数互相转换 1111 1001B = F9H 二 十进制数互相转换 1011 0111B=( 183) D 12.125D=( 1100.001) B 4 微型计算机 定义: 以微处理器( CPU)为核心,配上大规模集成电路的存储器( ROM/RAM)、输入 /输出接口电路及系统总线等所组成的计算机。 5 微处
2、理器 组成: 运算器:四则运算和逻辑运算等 控制器:取指令、译码、发控制信号和时序等 寄存器组:存放运算数据、中间结果或地址 6 三组总线 地址总线 AB 单向,位数 n决定 CPU可寻址的内存容量 数据总线 DB 双向, CPU与存储器、外设交换数据的通路 控制总线 CB 双向,传输控制信号和状态信号 7 总线分类 内部总线( CPU内部) 元件级总线( CPU与其他外围芯片之间) 系统总线(底板插件,如 PCI、PCI-E等) 外部总线(系统与系统之间,或连接外设,如 USB、 RS232等) 8 复习 8086CPU内部结构 1979年推出,内含 2.9万晶体管 数据总线宽度 16位,地
3、址总线宽度 20位; 采用单一的 +5V电源,一相时钟,时钟频率为 5MHz( 8086), 10MHz( 8086 1), 8MHz( 8086 2) 133条指令,指令长度 1 6字节,指令最短执行时间为 0.4us(平均 0.5us) 9 8086/8088 CPU的结构 8086为 16位机(数据总线 16位) 8086与 8088的比较 8088为 准 16位机 ,数据总线内部 16位,外部 8位 两者的软件完全 兼容 ,程序的执行也完全相同。 8088对相同的程序,它将执行得比 8086慢 。 10 从功能上, 8086分为两部分,即 1.执行部件 (execution unit,
4、 EU) 2.总线接口部件 (bus interface unit,BIU) 11 执行部件 执行部件负责指令的执行 ,由下列 4部分组成: 4个通用寄存器 , 即 AX、 BX、 CX、 DX; 4个 指针和变址 寄存器 , 即 基数指针 寄存器 BP( base pointer) 堆栈指针 寄存器 SP(stack pointer) 源变址 寄存器 SI(source index) 目的变址 寄存器 DI(destination index); 标志寄存器; 算术逻辑部件 (arithmetic logic unit)。 12 总线接口部件 总线接口部件负责与存储器、 I/O端口传送数据
5、,由下列 4部分组成: 4个 段地址 寄存器 ( CS、 DS、 ES、SS) 16 位的 指 令 指 针 寄 存 器 IP(Instruction Pointer) 20位 的地址加法器 6字节 的指令队列缓冲器 13 分为四类: 1) 通用寄存器组 2) 指针和变址寄存器 2) 段寄存器 3) 指令指针和标志寄存器 8086的寄存器结构 段寄存器 通用寄存器组 指针和 变址寄存器 指令指针和 标志寄存器 SS ES DS CS FLAGS IP DI SI BP SP DL CL BL AL DH CH BH AH 0 DX CX BX AX 15 8 7 14 (一)通用寄存器 AX、
6、BX、 CX和 DX 一般用来存放 8位或者 16位操作数 AX/AL还可用于乘除法指令和 I/O指令中 BX查表转换和间接寻址时存放访问存储单元的地址(基址) 15 (二)指针和变址寄存器 1) SP 存放的是访问堆栈所需的“堆栈指针” 。 2) BP 访问堆栈段的一个 数据区 的“基地址”(偏移量)。 3) SI 用于寻址串操作指令的源数据串。 4) DI 用于寻址串操作指令的目的数据串。 16 (三)段寄存器( Segment Register) 8086有 4个 16位的段寄存器,每个用来确定一个存储区 (段 )的起点,与其它寄存器联合生成存储器地址: ( 1)代码段寄存器 CS (
7、2)数据段寄存器 DS ( 3)堆栈段寄存器 SS ( 4)附加段寄存器 ES 17 (四)指令指针和状态标志寄存器 16位指令指针 IP保存了下一条要执行的指令的地址偏移量 标志寄存器 FLAGS存放微处理器当前状态信息。 18 存储器中的逻辑地址和物理地址 任何一个 逻辑地址 由 段基址 和 偏移地址 两个部分构成,它们都是无符号的 16位二进制数。 逻辑地址的表示 段地址:偏移地址 任何一个存储单元对应一个 20位的物理地址 ,也可称为 绝对地址 物理地址 =段地址 16+偏移地址 例:已知某存储单元所在的段地址为 1900H,偏移地址为 8000H,试求出该单元所在的物理地址? 19
8、最小模式和最大模式的概念 (1)最小模式 : 在系统中只有一个微处理器 。 (2)最大模式: 两个或多个微处理器(主处理器、协处理器) 20 复习 指令 系统 1. 立即数寻址 8086 CPU指令系统中,有一部分指令所用的 8位或 16位操作数就在指令中提供 ,这种方式叫立即数寻址方式。 例如: MOV AL, 80H MOV AX, 1090H 立即数寻址方式的显著特点就是 速度快 。 21 2. 寄存器寻址 如果操作数就在 CPU的内部寄存器中,那么寄存器名可在指令中指出。这种寻址方式就叫寄存器寻址方式。 对 16位操作数来说,寄存器可以为 ? 而对 8位操作数来说,寄存器可为 ? 。
9、例如: INC CX ROL AH, 1 PUSH IP 执行速度快 。 所有 16位寄存器 AH/AL/BH/BL/CH/CL/DH/DL 22 3. 直接寻址 默认为段寄存器是数据段寄存器 DS。 使用直接寻址方式时,数据总是在存储器中,存储单元的有效地址由指令直接指出,所以直接寻址是对存储器进行访问时可采用的最简单的方式。 例如: MOV AX, 1070H 例如,上一条指令执行时,设 DS 2000H,则执行过程是将绝对地址为 和 两单元的内容取出送 AX。 21070H 21071H 23 4. 寄存器间接寻址 采用寄存器间接寻址方式时,操作数一定在存储器中,存储单元的有效地址由寄存
10、器指出,这些寄存器可以为 BX, BP, SI和 DI之一,即有效地址等于其中某一个寄存器的值: 例如: MOV AX, BX MOV BP ,BX MOV CL, SI MOV DI , DH 24 5. 寄存器相对寻址 采用寄存器间接寻址方式时,允许在指令中指定一个位移量,有效地址就通过寄存器内容加上一个位移量来得到,这种寻址方式叫寄存器相对寻址: 例如: MOV AX, 0003 BX MOV BP + 0050 , BL BX BP + 8位位移量 EA SI 16位位移量 DI 25 例如: MOV AX, BX+SI 设 DS 1000H, BX 5000H, SI 2000H,则
11、上面指令在执行时,有效地址为 7000H,本指令将 和 两单元的内容取到 AX中。 MOV BP+SI , AL 设 SS 2000H, BP 6000H, SI 2000H,则上面指令在执行时,有效地址为 8000H,本指令将 AL中的内容送到内存堆栈区的 地址单元中。 17000H 17001H 28000H 6 基址加变址寻址 26 7 相对的基址加变址寻址 在 基址加变址寻址方式中 ,也允许带一个 8位或 16位的偏移量,其和值构成有效地址,这种寻址方式叫相对的基址加变址寻址。即: EA BX SI 8位偏移量 BP + DI +16位偏移量 例如: MOV AX, 0003 BX D
12、I MOV BP + SI + 0050 , BL 27 MOV指令的几点说明: ( 1) MOV DS , CS ;错误 MOV 16H , 20H ;错误 ( 2) MOV SS , 2000H ;错误 MOV SS , 2000H ; 正确 MOV SS , AX ; 正确 ( 3) MOV CS, AX ;错误 ( 4) MOV IP, 5000H ;错误 ( 5) MOV BX, AL ;错误 28 堆栈作用: 在调用一个过程时,保存返回地址; 暂时存放寄存器或存储器单元操作数的内容。 堆栈操作指令 进栈 PUSH 源 操作: ( SP) ( SP) -2 ( SP) +1,( SP) (源) 出栈 POP 目标 操作:(目标) ( SP) +1,( SP) ( SP) ( SP) +2 29 例如,将 16位通用寄存器 CX的内容压入堆栈,然后,弹出栈顶至 CX中 ,已知:(SS) 0200H,(SP) 0008H,(CX) 12FAH。 PUSH CX 30 POP CX