1 / 83

微机原理:

课程内容. 微机原理:. CPU结构、汇编语言程序设计. 接口技术:. 接口、可编程接口芯片、中断技术等. 课程要求、学习方法. 课时: 72 学时(理论)+ 36 学时(实验). 课程内容抽象,不易理解, 多做练习,注重基本概念的理解。. 具体章节. 微机基础 80x86 微处理器 80x86 指令系统 汇编语言程序设计 半导体存储器 输入 / 输出与中断 输入 / 输出接口芯片及应用. << 微型计算机原理及应用 >> 周杰英等编 机械工业出版社 《微型计算机系统原理及应用》(第三版 上册) 周明德 编 ,清华大学出版社

Download Presentation

微机原理:

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 课程内容 • 微机原理: CPU结构、汇编语言程序设计 • 接口技术: 接口、可编程接口芯片、中断技术等

  2. 课程要求、学习方法 课时:72学时(理论)+36学时(实验) 课程内容抽象,不易理解, 多做练习,注重基本概念的理解。

  3. 具体章节 • 微机基础 • 80x86微处理器 • 80x86指令系统 • 汇编语言程序设计 • 半导体存储器 • 输入/输出与中断 • 输入/输出接口芯片及应用

  4. <<微型计算机原理及应用>> 周杰英等编 机械工业出版社 《微型计算机系统原理及应用》(第三版 上册) 周明德 编 ,清华大学出版社 《微计算机原理》潘名莲,马争,惠林 编 电子工业出版社 《汇编语言》 王爽 编,清华大学出版社 教材: 参考书:

  5. 第一章 绪论 第一节微型计算机的发展及应用 第二节数据的表示方法 第三节 微型计算机系统结构概述

  6. 第一节 微型计算机的发展及应用 一、计算机的发展历程 自1946年第一台电子计算机问世以来,计算机科学和技术的发展突飞猛进,已深入到人类生活的各个方面。半个世纪以来,伴随着电子管、晶体管、集成电路和超大规模集成电路的发展,计算机的发展可分为四代。 第一代电子计算机时代。从1946年第一台计算机研制成功到50年代后期,其主要特点是采用电子管作为基本器件,使用机器语言。在这一时期,计算机主要为军事与国防尖端技术的需要而研制的。

  7. 第二代晶体管计算机时代。 从20世纪50年代中期到60年代后期,这一时期计算机的主要器件逐步由电子管改为晶体管,因而缩小了体积,降低了功耗,提高了速度和可靠性,软件方面发展到汇编语言和高级语言,技术上的应用范围进一步扩大,在工程设计、气象、数据处理及其他科学领域得到广泛应用。 第三代集成电路计算机时代。 从20世纪60年代中期稻0年代初期,计算机采用集成电路作为基本器件,因此,功耗、体积、价格等进一步下降,而速度及可靠性相应地提高。开始出现操作系统软件,由于集成电路成本的迅速下降,使计算机的成本较低,因此计算机应用范围更加扩大,占领了许多数据处理的应用领域。 第四代大规模集成电路计算机时代。 从20世纪70年代至今,第四代计算机采用大规模或超大规模的集成电路。这种工艺可在硅半导体上集成几千、几万甚至几千万电子器件。计算机的体积、功耗和价格迅速降低,已经广泛普及到教育、企事业、科研、军事和家庭等各个领域。

  8. Intel 4004 Intel 8008 Intel 8085 二、微处理器发展概述 1. 第一代微处理器 • Intel4004、Intel4040 — 4位微处理器 • Intel8008 — 低档8位微处理器 2. 第二代微处理器 • Intel8080、MC6800、6501、6502 — 8位微处理器 • Intel8085、Z80、MC6809 — 高档8位微处理器 • 指令比较完善,有了中断与DMA • 汇编、BASIC,FORTRAN、PL/M • 后期配备CP/M操作系统

  9. 3. 第三代微处理器 • Intel8086 、Z8000、MC68000 — 16位 • - 8086数据总线16位、地址总线20位 • Intel8088 — 准16位 • - 外部数据总线8位,内部数据总线16位- IBM PC、IBM PC/XT • Intel80286、MC68010 — 高档16位 • - 数据总线16位,地址总线24位 • - IBM PC/AT • - 实地址模式、虚地址保护模式 • - 虚地址模式可寻址16MB物理地址和1GB的虚拟地址空间

  10. 4. 第四代微处理器 • Intel80386 — 32位微处理器- 数据总线32位,地址总线32位 • - 实地址模式、虚地址保护模式、虚拟8086模式 • - 虚地址模式可寻址4GB(232)物理地址和64TB(246)的虚拟地址空间 • Intel80486 — 32位微处理器- 80386+80387+8KB的Cache • - 部分采用RISC技术、突发总线技术 • - 使用时钟倍频技术

  11. 5. 第五代微处理器 • Pentium(奔腾)— 32位微处理器 • Pentium MMX(多能奔腾) — 32位微处理器- 增加了57条MMX指令- 采用了SIMD技术- 同时处理8个字节的数据

  12. 6. 第六代微处理器 (P6核心结构) • Pentium Pro(高能奔腾) — 32位微处理器- 64条数据线、36条地址线(区别Pentium的32条地址线)- 实现了动态执行技术(乱序执行) • Pentium II(奔腾2)— 32位微处理器 • Pentium III(奔腾3) — 32位微处理器

  13. 7. 第六代之后的微处理器 • Pentium 4 — 32位微处理器(非P6核心结构) • Itanium — 64位微处理器- 采用EPIC技术、RISC技术和CISC技术 - 具有显式并行功能 - 具有断定执行功能 - 具有数据预装的功能 - 采用三级高速缓存 • AMD64 — 64位微处理器- AMD 使用x86结构并扩展到64位来获得x86-64结构- 处理器能全速高性能地运行x86和x86-64程序- 64位模式不采用分段模式- 具有长模式,包括64位模式和兼容模式(允许现有程序无需修改就运行在长模式下)

  14. 三、微型计算机的发展 • 微型化─ 便携式、低功耗 • 巨型化─ 尖端科技领域的信息处理,需要超大容量、高速度 • 智能化─ 模拟人类大脑思维和交流方式,多种处理能力 • 系列化、标准化─ 便于各种计算机硬、软件兼容和升级 • 网络化─ 网络计算机和信息高速公路 • 多机系统─ 大型设备、生产流水线集中管理(独立控制、 故障分散、资源共享)

  15. 四、微型计算机的应用 • 科学计算 ; • 数据处理和管理 ; • 计算机控制 ; • 计算机辅助设计/计算机辅助制造 (CAD/CAM); • 智能模拟 ;

  16. 第二节 数据的表示方法 • 重点理解 • 特点; • 表示方法; • 相互间的转换。

  17. 一、进位计数制 • 十进制——符合人们的习惯 • 二进制——便于物理实现 • 十六进制——便于识别、书写 • 八进制

  18. 1. 十进制 (标识:后缀D或省略) 特点:以十为底,逢十进一; 共有0-9十个数字符号(数码) 表示: (权展开式)

  19. 2. 二进制 (标识:后缀B) 特点:以2为底,逢2进位; 只有0和1两个数字符号 表示: (权展开式)

  20. 3. 十六进制 (标识:后缀H) 特点:以16为底,逢16进位; 有0--9及A--F共16个数字符号 表示: (权展开式)

  21. 进位计数制的一般表示 按进位的方法进行计数,称为进位计数制。在进位制中每个数规定使用的数码符号的数量,称为进位基数,用R表示。使用R为基数的计数制称为R进制数,常用的有十进制数、二进制数、十六进制数、八进制数等。若每位数码用ai来表示(下标i指示位数),则进位计数制表示的方法如下: N=(an-1 ,an-2 ,…,ai,…, a1, a0)R (数码) Rn-1, Rn-2 , …,Ri,…, R1,R0(权值)

  22. 进位计数制的一般表示 建立了权值的概念后,对任意一个R进制数N都可表示为: 其中: ai--N的第i位数码,可以是R个符号中任何一个; n,m –整数和小数的位数; R--基数; Ri-- K进制数的权

  23. 表1-1 四种计数法的表示 表1-2 四种计数法表示数的对应关系

  24. 微型计算机的常用术语和指标 1.位和字节 • 位(bit)是计算机所能表示的最小的数据单位,可缩写成b。 • 字节(byte)由8个位二进制位组成,通常用作计算存储容量的单位。字节可记作B。 K 是 kelo 的缩写,1K=1024=210; M是 mega的缩写,1M=1024K=220; G 是 giga 的缩写,1G=1024M=230; T 是 tera 的缩写,1T=1024G=240 ; P 是 Peta 的缩写,1P=1024T=250。

  25. 2.字长 • 字长是微处理器与存储器、I/O接口间一次传送二进制数据的位数(总线宽度)。 • 微处理器的字长有1位、 4位、8位、16位和32位

  26. 3.字(Word) 字是计算机中CPU处理和传送信息的最基本单位。它通常与寄存器、运算器、传输线的宽度一致。 4.存储容量 存储单元以字节为单位。存储容量是指CPU构成的系统所能访问的存储单元数。通常由地址总线AB的宽度决定。如AB = 16,所能寻访的地址码有216 =65536种,因此可区分65536个存储单元。计算机中210 =1024规定为1K,则216 = 65536 = 64KB,220 =1024K×1024K = 1MB(兆),230 =1024K×1024K×1024K = 1GB。 5 .指令 计算机能够识别和执行的基本操作命令。计算机指令有两种表示方式:机器码和助记符。机器码又称指令码,是机器能够接受的指令,但设计人员使用不便。助记符便于编写程序,在运行前须转换为机器码。通常一条指令由操作码和操作数两部分组成。前者说明进行何种操作,后者指出参与操作的数据的来源。

  27. 7.指令系统 计算机所能执行的全部指令的集合,称为该计算机的指令系统。微处理器的主要功能是由它的指令系统来体现的,不同的微处理器有不同的指令系统,其中每条指令对应着微处理器的一种基本操作。计算机的指令系统一般含有几十到几百条指令。 8.程序 为完成某一任务所作的指令(或语句)的有序集合称为程序。 9.运算速度 计算机完成一个具体任务所用的时间就是完成该任务的时间指标,计算机的速度越高,时间越短。以每秒执行基本指令的条数来大致反映计算机的运算速度。单位为百万条指令/秒(MIPS)。另一个衡量指标是计算机的主频,即CPU的时钟频率,单位为兆赫(MHz)或吉赫(GHz)。

  28. 二、数制间的相互转换 (1)任意进制数的表示。 例如:十进制数309.84可根据按权展开式写成: 3×102 + 0×101 + 9×100 + 8×10-1 + 4×10-2 对于八进制数 ( 406 )8 = 4×82 + 6×80 二进制数 ( 110101 )2 = 1×25 + 1×24+1×22 + 1×20 十六进制数 ( AC7.B )16 = 10×162+12×161+7×160+11×16-1 (2)二进制与十进制数的相互转换 1)二进制数转换为十进制数:可直接按权展开。 例把二进制数 (11011)2转化为十进制数。 解:(11011)2 = 1×24 + 1×23 + 1×21 + 1×20 = 16 + 8 + 2 + 1 = 27 例把二进制数 (111.011)2转化为十进制数。 解:(111.011)2 = 1×22 + 1×21 + 1×20 + 1×2-2 + 1×2-3= 4 + 2 + 1 + 0.25 + 0.125= 7.375

  29. 2)十进制数转换为二进制数:方法是:整数除以2取余,小数乘以2取整。2)十进制数转换为二进制数:方法是:整数除以2取余,小数乘以2取整。 例将十进制数37.375转换为二进制数,其方法如下。 解:0 ← 1 ← 2 ← 4 ← 9 ← 18 ← 37 . 375 →.75 → .5 → 0 ↓÷2 ↓÷2 ↓÷2 ↓÷2 ↓÷2 ↓÷2 ↓×2 ↓×2 ↓×2 1 0 0 1 0 1 0 1 1 故:37.375 = (100101.011)2 另外,也可采用记权值的方法转换为二进制数,例如 (86.625)10转换为二进制数。我们知道,二进制数权值依次为: 27 26 25 24 23 22 21 20 2-1 2-2 2-3 二进制权值 ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ 128 64 32 16 8 4 2 1 0 0.5 0.125 十进制数

  30. (3)二进制数与十六进制数的相互转换 1)二进制数转换为十六进制数:从小数点开始,分别向左、向右每4位二进制数划为一段,不足4位者填0补足。每段二进制数用1位十六进制数替代。 2)十六进制数转换成二进制数:将十六进制数的整数部分和小数部分用相应的4位二进制数替代即可。

  31. 例将 (1011011100011.0011011)2转换成十六进制数。 解:0001 0110 1110 0011 . 0011 0110(带下划线的数字是分组后添加的) ↓ ↓ ↓ ↓ ↓ ↓ 1 6 E 3 . 3 6 故:(1011011100011.0011011)2 = (16E3.36)16 例将 (AE7.D2)16转换成二进制数。 解: A E 7 . D 2 ↓ ↓ ↓ ↓ ↓ 1010 1110 0111 . 1101 0010 故: (AE7.D2)16 = (101011100111.1101001)2 注:为了便于区分不同数制所表示的数,规定在数字尾部用B表示二进制数,用Q表示八进制数,用D表示十进制数(也可不加),用H表示十六进制数。如78H、756Q、853D、1101101B分别表示十六进制、八进制、十进制和二进制数。

  32. 三、数值数据的表示方法 计算机处理的数据分为数值型和非数值型两类。 非数值型用于表示各种符号 数值型用于表示数量的多少 数值数据通常是带符号的,把二进制数的最高位定义为符号位,其余为数值位 • 符号位为 0表示正数,符号位为 1表示负数 机器数:连同符号位一起数值化了的数,称为机器数 真值:机器数所表示的真实的数值,称为真值 机器数也有不同的表示方法,通常用原码、反码和补码三种方式表示,主要是用来解决加、减、乘、除运算。

  33. [例]: +52 = +0110100 B = 00110100 B 符号位数值位 -52 = -0110100 B = 10110100 B 真值 机器数

  34. 1.原码、反码和补码的表示方法 (1)原码。在数值的前面直接加一符号位的表示法称为原码表示法。 若字长为8位,则原码的表示范围为 -127 —+127;若字长为16位,则原码的表示范围为-32767 —+32767。 (2)反码。正数的反码与原码相同;负数的反码,符号位仍为“1”,数值部分“按位取反”。 字长为8位和16位时,反码的表示范围分别为-127 ~ +127和-32767 ~ +32767。

  35. 反码的例子 符号 符号位 真值 反码 X=+18=+0010010 [X]反 =0 0010010 X=-18=-0010010 [X]反 =1 1101101

  36. 数0的原码 数0的反码 [+0 ]原= 0 0000000 [- 0]原= 1 0000000 即:数0的原码不唯一 [+0]反 = 0 0000000 [- 0]反 = 1 1111111 即:数0的反码也不唯一

  37. 数0的补码: (3)补码正数的补码与原码相同;负数的补码则是符号位为“1”,数值部分按位取反后再在末位(最低位)加1。 例. +7和-7的补码分别为: [+7]补= 00000111B = 07H;[-7]补= 11111001B = F9H 数值0的补码只有一个,即[0]补=00000000B = 00H。 若字长为8位,则补码所表示的范围为 –128 ~ +127;若字长为16位,则补码所表示的范围为-32768 ~ +32767。 [+0]补= [+0]原=00000000 [-0]补 = [-0]反+1=11111111+1 =1 00000000 对8位字长,进位被舍掉 ∴[+0]补= [-0]补= 00000000 即:数0的补码是唯一的。

  38. 将一个用补码表示的二进制数转换为十进制数 1) [X]补 = 0 0101110B 真值为:+0101110B 正数 所以:X=+46 2) [X]补 = 1 1010010B 负数 X = [[X]补]补 = [11010010]补 = -0101110B 所以:X =-46 通过引进补码,可将减法运算转换为加法运算。规则如下:   和:  [X+Y]补=[X]补+[Y]补 差: [X-Y]补=[X]补- [Y]补 或 [X-Y]补=[X]补+ [-Y]补   其中X,Y为正负数均可,符号位参与运算

  39. 补码的运算原理 模(module)就是一个计数系统的最大容量,其大小等于以进位计数制基数为底,以位数为指数的幂。凡是用器件进行的运算都是有模运算,运算结果超过模的部分被运算器自动丢弃。因此,当器件为n位时,有: X=2n+X (mod 2n) 不难验证, [X]补=2n+X (mod 2n) 因此, [XY]补= 2n+ (XY) (mod 2n) = (2n+ X)+ (2n  Y) (mod 2n) = [X]补+ [Y]补

  40. [例]: X=-0110100,Y=+1110100,求[X+Y]补 [X]原=10110100 [X]补= [X]反+1=11001100 [Y]补= [Y]原=01110100 所以: [X+Y]补= [X]补+ [Y]补 =11001100+01110100 =01000000

  41. D4 D3 D1 D4 D3 D1 D6 D2 D6 D2 D7 D0 D7 D0 D5 D5 ·小数点 · 小数点 数值位 数值位 符号位 符号位 b) a) 图1-1定点数的格式 a)定点整数 b)定点纯小数 定点数和浮点数 依照小数点的不同表示方法,计算机中的数可分为两类:定点数和浮点数。下面说明这两种数的表示方法。 (1)定点数。 所谓定点数是指小数点的位置固定不变的数,定点数又分为定点整数和定点小数。 定点整数:其小数点的位置固定在数据的最低位之后,见图1-4a。 定点小数:其小数点的位置固定于符号位与数据位之间,见图1-1b。 例5 已知某数X的补码为10111011B,若将它理解为定点整数,它对应的十进制数是多少;若理解为定点小数,它对应的十进制数是多少? 解: 1)若理解为定点整数则X=[10111011]补= -1000101B= -69 2)若理解为定点小数则X=[10111011]补=-0.1000101B= -69/128

  42. D7 D6 D5 D4 D3 D2 D1 D0 阶符 阶 码 数符 尾数高7位 尾数低8位 图1-2 三字节浮点数 (2)浮点数。 与定点数相反,若小数点的位置不固定,是浮动可变的,称这类数为浮点数。浮点数的引入克服了定点数所能表示的数的范围太小这一缺点。 计算机中的浮点数由尾数和阶码两部分组成:尾数是带符号的定点纯小数,它的符号称为数符,表示这个浮点数的正负;阶码是一个带符号的整数,其符号称为阶符。图1-2给出了一种浮点数的格式。 规格化浮点数:尾数的最高数值位不等于零 X1 = 2101×0.11001;X2 = -2101×0.1011 非规格化的数 :尾数的第一位不是1的浮点数 X3 = 2111×0.011001 要使浮点数规格化,只要移动小数点同时调整阶码即可。例如: X4 = 2100×0.00101=2110×0.10100

  43. 阶 码 阶符 数符 尾数 图1-3例5浮点数格式表示 0 0 0 1 1 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 例6将十进制数24.09375化为二进制形式的规格化浮点数, 用图的格式表示。 解: 1)先将该数化为二进制数 24.09375D = 11000.00011B(×20) 2)将此数规格化,将它的尾数变成最高位为1的纯小数。不难看出,要做到这一点,须将尾数中的小数点向左移动5位,每左移一位阶码加1,移位的次数便是该浮点数阶码的大小。于是,所得规格化浮点数的尾数和阶分别为: k = + 0.1100000011B b = + 5 = + 101B 3)将该数表示为图1-3浮点数的格式。

  44. 符号数运算中的溢出问题 • 进(借)位—— • 在加法过程中,符号位向更高位产生进位; • 在减法过程中,符号位向更高位产生借位。 • 溢出—— • 运算结果超出运算器所能表示的符号数范围

  45. 溢出的判断方法 • 方法1: • 同号相减或异号相加——不会溢出。 • 同号相加或异号相减——可能溢出: • 两种情况: • 同号相加时,结果符号与加数符号相反——溢出; • 异号相减时,结果符号与减数符号相同——溢出。 • 方法2: • 两个带符号二进制数相加或相减时,若 • C7C6=1, • 则结果产生溢出。 • C7为最高位的进(借)位;C6为次高位的进(借)位。

  46. [例]: • 有符号数运算,有溢出表示结果是错误的 • 无符号数运算,有进位表示结果是错误的 CASE1: CASE2: • 1 0 1 1 0 1 0 1 • + 1 0 0 0 1 1 1 1 • 1 0 1 0 0 0 1 0 0 • 0 1 0 0 0 0 1 0 • + 0 1 1 0 0 0 1 1 • 1 0 1 0 0 1 0 1 CASE3: • 0 1 0 0 0 0 1 0 • + 1 1 0 0 1 1 0 1 • 1 0 0 0 0 1 1 1 1

  47. 【例2】求(-120)+(-18) 解 [-120]原=11110000B, [-120]补=10001000B; [-18] 原=10010010B, [-18] 补=11101110B; [-120]补10001000B + [-18]补11101110B [-120]补 + [-18]补=100011010B [-120] 补 + [-18]补=00011010B。最高位丢失。 (-120) +(-18)=00011010B 【例1】 已知X=+1,Y=+18求X-Y的值。 解X-Y=X+(-Y) [X-Y]补=[X+(-Y)]补=[X]补+[-Y]补 [X]补=00001011B [-Y]原=[-18]原=10010010B [-Y]补=11101110B [X]补00001011B + [-Y]补11101110B [X]补 + [-Y]补=11111001B [X-Y]补=11111001B X-Y=10000111B 运行结果完全正确。

More Related