马洪兵
清华大学电子工程系
课程目标
微机原理课是工科学生学习和掌握微机硬件知识的汇编语言程
序设计的入门课程,课程的任务是使学生从理论和实践上掌握
微机的基本组成、工作原理、接口电路及硬件的连接建立微机
系统的整机概念,使学生具有微机系统软硬件开发的初步能力
主要参考书
仇玉章主编,32位微型计算机原理与接口技术,清华大学出
版社,2000.8
考核方式
平时作业 15%
实验 15%
期末考试 70%
教学大纲
第一章 微型计算机系统概论
第二章 Pentium微处理器的体系结构
第三章 Pentium微处理器的指令系统
第四章 汇编语言程序设计
第五章 Pentium微处理器的硬件结构
第六章 存储器系统
第七章 I/O接口技术
第八章 中断与中断控制
第九章 总线
第一章 微型计算机系统概论
1.1 微型计算机概述
1.1.1微型计算机系统的三个层次
1.1.2 微型计算机的常用术语
1.1.3 微型计算机的发展
1.2 微型计算机的组成和结构
1.2.1微型计算机的组成
1.2.2 微型计算机的硬件系统结构
1.3 微型计算机的工作原理
1.3.1 冯 ?诺依曼存储程序工作原理
1.3.2 微型计算机的工作过程
1.4 微型计算机的内信息的表示
1.4.1 进位计数制及其相互转换
1.4.2 数值数据的表示
1.4.3 非数值数据的表示
1.1 微型计算机概述
?世界上第一台现代意义的电子计算机是 1946年美国宾
夕法尼亚大学设计制造的 ENIAC
?电子计算机的发展:
电子管计算机
晶体管计算机
中小规模集成电路计算机
规模超大规模集成电路计算机
?电子计算机按其性能分类:
大型计算机
中型计算机
小型计算机
微型计算机
微型计算机系统的三个层次
?微处理器
?严格讲,微处理器 ≠ CPU
?CPU指的是计算机中执行运算和控制功能的区域,由算
术逻辑部件 (ALU)和控制部件两大主要部分组成
?把 CPU和一组称为寄存器( Registers)的特殊存储器集成
在一片大规模集成电路或超大规模集成电路封装之中,这
个器件才被称为微处理器
微型计算机系统的三个层次
?微型计算机
?以微处理器为核心,配上由大规模集成电路制作的只读
存储器( ROM)、读写存储器( RAM)、输入/输出接
口电路及系统总线等所组成的计算机,称为微型计算机。
?将这些组成部分集成在一片超大规模集成电路芯片上,
称为单片微型计算机,简称单片机。
微型计算机系统的三个层次
?微型计算机系统
以微型计算机为中心,配以相应的外围设备以及控制微型
计算机工作的软件,就构成了完整的微型计算机系统。
微型计算机如果不配有软件,通常称为裸机
软件分为系统软件和应用软件两大类。
微型计算机系统的三个层次:
微处理器 微型计算机 微型计算机系统
微型计算机的常用术语
1.位和字节
?位( bit)是计算机所能表示的最小最基本的数据单位,
它指的是取值只能为 0或 1的一个二进制数值位。位作为单
位时记作 b
?字节( byte)由 8个位二进制位组成,通常用作计算存储
容量的单位。字节作为单位时记作 B
K是 kelo的缩写, 1K=1024=210;
M是 mega的缩写, 1M=1024K=220;
G是 Giga的缩写, 1G=1024M=230;
T是 tera的缩写, 1T=1024G=240。
微型计算机的常用术语
2.字长
?字长是微处理器一次可以直接处理的二进制数码的位数,
它通常取决于微处理器内部通用寄存器的位数和数据总线
的宽度 。 微处理器的字长有 4位, 8位, 16位和 32位等等 。
?8088称为准 16位微处理器, 而 80386SX称为准 32位微处理
器 。
半字节
字节

双字
03
0347
07
078F
8F
1017181F
微型计算机的常用术语
3.主频
?主频也叫做时钟频率,用来表示微处理器的运行速度,
主频越高表明微处理器运行越快,主频的单位是 MHz。
?早期微处理器的主频与外部总线的频率相同,从
80486DX2开始,主频 =外部总线频率 ?倍频系数
?外部总线频率频率通常简称为外频,它的单位也是 MHz,
外频越高说明微处理器与系统内存数据交换的速度越快,
因而微型计算机的运行速度也越快。
?倍频系数是微处理器的主频与外频之间的相对比例系数。
?通过提高外频或倍频系数,可以使微处理器工作在比标
称主频更高的时钟频率上,这就是所谓的超频。
微型计算机的常用术语
4,MIPS
?MIPS是 Millions of Instruction Per Second的缩写, 用来表示微
处理器的性能, 意思是每秒钟能执行多少百万条指令
?由于执行不同类型的指令所需时间长度不同, 所以 MIPS通常
是根据不同指令出现的频度乘上不同的系数求得的统计平均
值 。
?主频为 25MHz的 80486其性能大约是 20MIPS,
?主频为 400MHz的 PentiumII的性能为 832 MIPS
5,iCOMP指数
?iCOMP指数是 Intel公司为评价其 32位微处理器的性能而编制
的一种指标, 它是根据微处理器的各种性能指标在微型计算
机中的重要性来确定的, iCOMP指数包含的指标有整数数学
计算, 浮点数学计算, 图形处理以及视频处理等, 这些指标
的重要性与它们在应用软件中出现的频度有关, 所以 iCOMP
指数说明了微处理器在微型计算机中应用的综合性能 。
微型计算机的常用术语
6.微处理器的生产工艺
?指在硅材料上生产微处理器时内部各元器件间连接线的
宽度, 一般以 ?m为单位, 数值越小, 生产工艺越先进,
微处理器的功耗和发热量越小 。
?目前微处理器的生产工艺已经达到 0.18?m。
7,微处理器的集成度
?指微处理器芯片上集成的晶体管的密度 。
?最早 Intel 4004的集成度为 2250个晶体管, 目前 Pentium III
的集成度已经达到 750万个晶体管以上, 集成度提高了
3000多倍 。
微型计算机的发展
微型计算机的发展是以微处理器的发展来表征的
微处理器的集成度每隔 18个月就会翻一番,芯片的
性能也随之提高一倍
------摩尔定律
1971年~ 1977年是微处理器发展的早期阶段,
字长为 4位或 8位,集成度约为 3000~ 10000晶体管 /片,微
处理器的主频为 0.1~ 5MHz。
?1971年,Intel 4004,是世界上第一片单片微处理器
4位微处理器,寻址空间为 4096个半字节,指令系统包
括 45条指令
?1972年,Intel 8008,是世界上第一片 8位微处理器。
8008采用了 10?m生产工艺,集成度为 3500个晶体管,
工作频率为 200KHz。
?1974年,Intel 8080
采用了 6?m生产工艺,集成度为 6000个晶体管,主频
为 2MHz。
?1975年 4月,MITS公司推出了以 8080为 CPU的世界上第
一台个人计算机 Altair 8800。值得一提的是,Altair 8800
的 BASIC语言解释器是 Bill Gates编写的
?1976年,Intel 8080 Intel公司生产的最后一种 8位通用微
处理器,
8085的工作频率提高到 5MHz,指令系统的指令数上
升到 246条。
微型计算机的发展
第一代,8086/8088( 1978年 -1981年)
?1978年 --8086
采用了 3?m工艺,集成了 29,000个晶体管,工作频率
为 4.77 MHz。它的寄存器和数据总线均为 16位,地址
总线为 20位,从而使寻址空间达 1MB。同时,CPU的
内部结构也有很大的改进,采用了流水线结构,并设
置了 6字节的指令预取队列
?1979年 --8088
除了它的数据总线为 8位以外,其余均与 8086相同。
8088采用 8位数据总线是为了利用当时现有的 8位设备
控制芯片。由于 8088内部支持 16位运算,而与 I/O之间
传输为 8位,故 8088称为准 16位微处理器。
?1981年 8月,IBM公司推出以 8088为 CPU的世界上第一台
16位微型计算机 IBM 5150 Personal Computer,即著名的
IMB PC。
X86系列微型计算机的发展
第二代,80286( 1982年 -1984年)
?采用 1.5?m工艺, 集成了 134,000个晶体管, 工作频率为
6MHz。 80286的数据总线仍然为 16位, 但是地址总线增加
到 24位, 使存储器寻址空间达到 16MB。
?1985年 IBM公司推出以 80286为 CPU的微型计算机 IBM
PC/AT,并制定了一个新的开放系统总线结构, 这就是的
工业标准结构 ( ISA) 。 该结构提供了一个 16位, 高性能
的 I/O扩展总线 。
?80年代中期到 90年代初, 80286一直是微型计算机的主流
CPU。 在这一时期, 还诞生了世界上最早的芯片组
( chipsets) 。
X86系列微型计算机的发展
第三代,80386( 1985年 -1988年)
?第一个实用的 32位微处理器, 采用了 1.5?m工艺, 集成了
275,000个晶体管, 工作频率达到 16MHz。 80386的内部寄
存器, 数据总线和地址总线都是 32位的 。 通过 32位的地址
总线, 80386的可寻址空间达到 4GB。 这时由 32位微处理
器组成的微型计算机已经达到超级小型机的水平 。
?80386的其他一些版本,80386SX,包含 16位数据总线和
24位地址总线, 寻址空间为 16MB; 80386SL/ 80386SLC,
包含 l6位数据总线和 25位地址总线, 寻址空间为 32MB。
由于这些微处理器由于与 I/O之间传输为 16位, 故也称为
准 32位微处理器 。
X86系列微型计算机的发展
第四代,80486( 1989年 -1992年)
?采用 1?m工艺, 集成了 120万个晶体管, 工作频率为
25MHz。 80486微处理器由三个部件组成:一个 80386体系
结构的主处理器, 一个与 80387相兼容的数学协处理器和
一个 8KB容量的高速缓冲存储器 。 80486把 80386的内部结
构做了修改, 大约有一半的指令在一个时钟周期内完成,
而不是原来的两个, 这样 80486的处理速度一般比 80386快
2到 3倍 。
?Intel公司还生产过 80486的其他一些版本,80486SX,工
作频率 20MHz,不包含数学协处理器; 80486DX2,采用
双倍时钟, 内部执行速度达到 66MHZ,内存存取速度为
33MHz; 80486DX4,采用三倍时钟, 内部执行速度达到
100MHZ,内存存取速度为 33MHz。
X86系列微型计算机的发展
第五代,Pentium( 1993年 -1997年)
Pentium处理器的发展分成三代
?第一代 Pentium处理器 ( 以 P5代称, 1993年 ) 采用 0.8?m
工 艺 技 术, 集成了 310 万 个 晶 体 管, 工 作 频 率 为
60MHz/66MHz。
?第二代 Pentium处理器 ( 以 P54C代称, 1994年 ) 采用
0.6?m工艺, 工作频率为 90MHz/100MHz。
?第三代 Pentium MMX( 以 P55C代称 1997年 ) 增加了 57条
多媒体指令
在体系结构上, Pentium在内核中采用了 RISC技术, 可以
说它是 CISC和 RISC技术相结合的产物
X86系列微型计算机的发展
第六代,P6( 1996-今)
Pentium Pro,Pentium II,Pentium III
?采用 0.6 ?m -0.18?m工艺,集成度 550万 -750万晶体管,
时钟频率 166MHz-1GHz,采用二级高速缓存,2级超标量
流水线结构,一个时钟周期可以执行 3条指令
X86系列微型计算机的发展
第七代:未来 ----64位 Mecerd( P7)
X86系列微型计算机的发展
代 字长 型号 工艺 集成度
( 万个 )
主频 速度
( M I PS)
1 16 8086 3 3 4, 77 - 10 <1
2 16 80286 1,5 13, 4 6- 16 1- 2
3 32 80386 1,5 27, 5 16 - 33 6- 12
4 32 80486 1 120 25 - 66 20 - 40
5 32 P5 0,8- 0,6 320 60 - 13 3 10 0- 20 0
6 32 P6 0,18 - 0,6 55 0- 95 0 13 3- 1 G > 30 0
X86系列微型计算机的发展
1.2 微型计算机的组成和结构
微型计算机的组成
微型计算机的硬件体系结构
冯 ·诺依曼结构:
?由运算器、控制器、存储器、输入设备和输出设备五大部
分组成
?数据和程序以二进制代码的形式不加区别地存放在存储器
中,存放位置由地址指定,地址码也是二进制形式
?控制器根据存放在存储器中的指令序列(即程序)工作,
并由一个程序计数器( PC)控制指令的执行。控制器具有
判断能力,能够根据计算结果选择不同的动作流程
微型计算机的硬件体系结构
微型计算机的硬件体系结构
1.3 微型计算机的工作原理
冯 ?诺依曼存储程序工作原理
存储程序工作原理是指把程序存储在计算机内,使计
算机能像快速存取数据一样地快速存取组成程序的指
令。为实现控制器自动连续地执行程序,必须先把程
序和数据送到具有记忆功能的存储器中保存起来,然
后给出程序中第一条指令的地址,控制器就可依据存
储程序中的指令顺序周而复始地取指令、译码、执行,
直到完成全部指令操作为止,即控制器通过指令流的
串行驱动实现程序控制
微型计算机的工作过程
?微型计算机的工作过程就是执行程序的过程,而程序由指
令序列组成,因此,执行程序的过程,就是执行指令序列
的过程,即逐条地从存储器中取出指令并完成指令所指定
的操作。
?由于执行每一条指令,都包括取指、译码和执行三个基本
步骤,所以,微型计算机的工作过程,也就是不断地取指
令、译码和执行的过程,直到遇到停机指令时才结束机器
的运行。
取指令,PC 值加 1
停机?
译码并执行 结束
Y
N
微型计算机的工作过程
计算 1+2=?
汇编语言程序 对应的机器指令 对应的操作
MOV AL,1 10110000将立即数 1传送到累加寄存器 AL中
00000001
ADD Al,2 00000100 计算两个数的和,结果存放到 AL中
00000010
MOV [0008],AL 10100010 将 AL中的数传送到地址单元 0008
00001001
00000000
HLT 11110100停机
微型计算机的工作过程
1.4 微型计算机的内信息的表示
进位计数制及其相互转换
?十进制、二进制、八进制和十六进制采用的都是进位
计数制,进位计数制中用少量数码按次序排列成数位,
并按由低到高的进位方式进行计数。基数和权是进位十
进制的两个基本要素。
?基数是进位计数制中所用数码的个数,基数为 r的进位
计数制中需要 r个数码,每个数位计满 r就向高位进一,
即逢 r进一。
?在进位计数制表示的数中,同一数字处在不同位置表
示不同的值,它所表示的值是该数字乘以一个由它所处
位置所决定的常数,这一常数就是该数位所具有的权。
r进制数各位的权是以 r为底的幂。
进位计数制及其相互转换
任何一个 r进制数 N可以表示为:
?
??
?
?
?
?
?
?
?
??????
1-n
mi
i
i
m
m
1
1
0
0
1
1
1n
1n
rK
rKrKrKrK...rKN
?若 r=10,则十进制数,其各位的权是以 10为底的幂;
?若 r=2,则是二进制数,其各位的权是以 2为底的幂;
?若 r=8,则是八进制数,其各位的权是以 8为底的幂,八进制中
共有八个数码,0,1,2,3,4,5,6,7;
?若 r=16,则是十六进制数,其各位的权是以 16为底的幂,十六
进制中共有 16个数码,0,1,2,3,4,5,6,7,8,9,A,B、
C,D,E,F。
?为了明确表示一个数所采用的进位计数制,可以该数的后面加
上下标 (B),(O),(D),(H),分别表示该数为二进制、八进制、
十进制和十六进制
进位计数制及其相互转换
r进制数转换为十进制数 按照公式展开求和
例 1,分别把二进制数 1011.01和十六进制数 F0.C用十进制表示
十进制数转换为 r进制数
整数部分和小数部分分别进行转换
整数部分的转换步骤,
① 把 r写成十进制数;
② 将 N除以 r,记录商和余数,并用 r进制表示余数,这余数便是用 r
进制表示的数的最低位数字;
③ 把上次的商进行②中所述除以 r取余的运算,用 r进制表示余数;重
复这种运算直到商为 0,这时的余数即为十进制数 N用 r进制表示时的
最高位数字。
十进制数转换为 r进制数
例 2,把十进制数 103用二进制表示
例 3,把十进制数 506用十六进制表示
小数部分的转换步骤,
① 把 r写成十进制数;
② 将 N乘以 r,记录积的整数部分和小数部分, 并用 r进制表示整数部
分, 该整数即为转换后 r进制小数的最高位;
③ 把上次积的小数部分进行 ② 中所述乘以 r取整的运算, 用 r进制表示
积的整数部分;重复这种运算直到积的小数部分为 0,或者达到所要
求的位数, 这时的整数部分即为十进制数 N转换成 r进制小数的最低
位 。
十进制数转换为 r进制数
例 4,把十进制 0.8125用八进制表示
二进制与八进制、十六进制的相互转换
从二进制转换成十六进制时,从小数点位置开始,整数部分
向左,小数部分向右,每四位二进制数为一组用一位十六进
制的数字来表示,不足四位的用 0补足,就是相应十六进制的
表示。
从二进制转换成八进制时,从小数点位置开始,整数部分向
左,小数部分向右,每三位二进制数为一组用一位八进制的
数字来表示,不足三位的用 0补足,就是相应八进制的表示。
例 5,把二进制 1011011010111.11101用十六进制表示
例 6,把八进制数 62.31用二进制表示
数值数据的表示
符号数的表示
?把二进制数的最高一位定义为符号位,符号位为 0表示正数,
符号位为 1表示负数
?这种在计算机中使用的、连同符号位一起数值化了的数,
称为机器数。机器数所表示的真实的数值,称为真值。对于
符号数,机器数常用的表示方法有原码、反码和补码三种。
数 X的原码记作 [X]原,反码记作 [X]反,补码记作 [X]补 。
?最高位表示符号,数值位用二进制绝对值表示的方法,称
为原码表示法
?一个负数的原码符号位保持不变,其余位取反就是机器数
的另一种表示方法,反码表示法。正数的反码与原码相同。
?将负数的反码加 1,则得到机器数的补码表示。正数的补码
与原码相同。
补码加减法的运算规则
[X?Y]补 =[X]补 +[?Y]补
其中 X,Y为正负数均可,符号位参与运算。
模 ( module) 就是一个计数系统的最大容量, 其大小等于以
进位计数制基数为底, 以位数为指数的幂 。 凡是用器件进行
的运算都是有模运算, 运算结果超过模的部分被运算器自动
丢弃 。 因此, 当 器件为 n位时, 有,
X=2n+X (mod 2n)
不难验证,
[X]补 =2n+X (mod 2n)
因此,
[X?Y]补 = 2n+ (X?Y) (mod 2n)
= (2n+ X)+ (2n+ X)
= [X]补 + [?Y]补
补码加减法的运算规则
例 7,设 X = 23,Y = -42,以 28为模,用补码运算求 X + Y和 X - Y。
当运算结果超出补码表示的数值范围时,补码运
算就不正确了。这种现象称为溢出。
对于 n位补码,当 时应用补码
运算可以得到正确的结果
12YX2 1n1n ????? ??
无符号数的表示
五符号数的最高位不是符号位而是数值的一部分
机器运算 表示符号数 表示无符号数
10111001
00101011
11100100
+)
[-71] 补
[43] 补
[-28] 补
+)
185
43
228
+)
浮点数的表示
任意一个二进制实数 X都可以表示成如下一般格式:
X = ? S ? 2 ? J








10.01011101?2+5的阶码为 +5,表示把尾数的小数点向右移动
5位就是小数点的实际位置
规格化处理:整数部分必须是 1
符号位 阶码 有 效 数 字
02331
符号位 阶码 有 效 数 字
05163
符号位 阶 码 有 效 数 字
06479
1
63
单精度数
双精度数
扩展精度数
浮点数的表示
Pentium微处理器支持的浮点格式
?Pentium将阶码以一种偏置形式存放于格式之中,即将真阶码
加上一个常数偏置值才是格式阶码,以保证偏置后的格式阶码
恒为正数。
?单精度的阶码偏置值为 +127,双精度的阶码偏置值为 +1023,
扩展精度的阶码偏置值为 +16383。
?一个浮点数数的真阶码要通过它的格式阶码减去偏置值而得到。
浮点数的表示
例 8,写出 178.125以单精度浮点数形式存放的机器数。
十进制数的表示 8421BCD码
?压缩 BCD码的每一位用 4位二进制表示,
0000~1001表示 0~9,一个字节表示两位十进制数。
?非压缩 BCD码用一个字节表示一位十进制数,高
4位总是 0000,低 4位的 0000~1001表示 0~9。
非数值数据的表示
ASCII码
采用 7位二进制代码对字符进行编码
?数字 0~9的编码是 0110000~0111001,它们的
高 3位均是 011,后 4位正好与其对应的二进制
代码相符。
?英文字母 A~Z的 ASCII码从 1000001( 41H)
开始顺序递增,字母 a~z的 ASCII码从 1100001
( 61H)开始顺序递增,这样的排列对信息
检索十分有利。
美国标准信息交换代码
A S C I I 字符表
0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1
0 0 0 0 NUL D L E SP 0 @ P ` p
0 0 0 1 S O H D C 1 ! 1 A Q a q
0 0 1 0 S T X D C 2 " 2 B R b r
0 0 1 1 E T X D C 3 # 3 C S c s
0 1 0 0 E O T D C 4 $ 4 D T d t
0 1 0 1 E N G N A K % 5 E U e u
0 1 1 0 A C K S Y N & 6 F V f v
0 1 1 1 B E L ETB ' 7 G W g w
1 0 0 0 BS C A N ( 8 H X h x
1 0 0 1 HT EM ) 9 I Y i y
1 0 1 0 LF S U B *, J Z j z
1 0 1 1 VT ESC + ; K [ k {
1 1 0 0 FF FS,< L \ l |
1 1 0 1 CR GS - = M ] m }
1 1 1 0 SO RS, > N ? n ~
1 1 1 1 SI US /? O ? o D E L
注,H 表示高 3 位,L 表示低 4 位。
H
L
ASCII码
汉字编码
汉字编码包括输入编码、内码和字模编码,分
别用于输入、内部处理和输出。
?汉字的输入编码是为了使用西文标准键盘把汉字输入到计算
机中,其编码方法主要有数字编码、拼音码和字形编码三类。
除了键盘输入以外,利用语音或图象识别技术自动将汉字
输入到计算机内的方法也已经实现
?汉字内码是用于汉字信息的存储、交换、检索等操作的机内
代码,它采用两个字节的二进制形式表示一个汉字。为了与
英文字符能相互区别,汉字机内代码中两个字节的最高位均
规定为 l。
?汉字字模编码是用来描述汉字字形的代码,它是汉字的输出
形式。
汉字库有点阵字库,TrueType字库、矢量字库等类型
习题
1,微型计算机系统有哪三个层次,简述其内涵及其联系与区别
2,试述冯 ?诺依曼计算机的体系结构和冯 ?诺依曼存储程序工作原理
3,将二进制数 11011.011转换成十进制数,八进制数和十六进制数
4,将十进制数 240.75转换成二进制数、八进制数和十六进制数
5,设计算机字长为 8位,求机器数 E3(H)分别为原码、反码、补码、
无符号数、压缩 BCD码时对应的真值
6,证明 [X]补 =2n+X (mod 2n)
7,已知 X=87,Y=-56,用补码完成下列运算,并讨论结果是否溢出
① X+Y ② X-Y
8,求 -83.75的单精度浮点机器数