微型计算机系统原理及应用主讲:杨万春电话,13657322139
邮箱:
wanchunyang2008@gmail.com
课程简介
本书以 Intel系列芯片 8086为样本重点介绍了微机原理与接口技术。
介绍微机系统原理、微处理器结构
微处理器的指令系统
8086汇编语言程序设计
IA-32微处理器的工作方式、主存储器及与 cpu的接口、输入输出、中断及常用的微机接口电路等先修课程高级语言程序设计 —学习高级语言程序设计时,
同学 们已经建立了程序设计的算法思想和设计方法,为学习汇 编语言(低级语言)程序设计打下了基础。
数字电路 —本课程的内容涉及到软件和硬件的设计。 后三章重点讲解硬件设计的相关理论知识。
在硬件设计 中,用到的基础知识是数字电路,
如锁存器、缓冲器等。
教学目的微机原理与接口技术是一门非常重要的专业课,通过本课程的学习,能使学生对微机原理及接口技术等有一个较全面的了解,并能掌握一定的应用技能。
学好这门课为学习后续课程打下个良好的基础,同时也为从事电子和计算机等方面的工作奠定一定的基础。
课程主要内容本课程的主要内容分两大部分,即 汇编语言程序设计和硬件接口电路设计 。
要掌握汇编语言程序设计,就必须熟练掌握以下内容:
1.汇编语言程序设计
数制的表示方法及算术逻辑运算规则
微处理器的一般结构和寄存器组织
存储器的分段与物理地址的形成
8086/8088 CPU的寻址方式
8086/8088 CPU的指令系统
2.硬件接口电路设计硬件接口电路设计包括存储器电路设计和输入输出( I/O)接口电路设计。要掌握其设计方法,就必须熟练掌握以下内容:
8086/8088 CPU的引脚功能
系统总线结构和时序
存储器的分类及常用存储器芯片的引脚功能
输入输出的基本方法及常用接口芯片的使用方法
存储器与 I/O地址的译码方法
中断的有关概念及中断的应用主要内容第一章 概述第二章 IA-32结构微处理器第三章 8086指令系统第四章 汇编语言程序设计第五章 处理器总线时序和系统总线第六章 存储器第七章 输入和输出第八章 中断第九章 计数器和定时器第十章 并行接口芯片第十一章 串行通信及接口电路第十二章 模数与数模转换第十三章 IA-32微处理器的工作方式第十四章 x86系列处理器的发展教学要求
1、认真听讲
2、课后及时复习
3、在学习中遇到问题,及时提出交流欢迎大家进入微机原理学习预祝大家学习愉快,顺利第 1章 概述本章讲述以下五部分的内容:
1.1 80x86系列的概要历史
1.2 计算机基础
1.3 计算机的硬件和软件
1.4 微型计算机的结构
1.5 多媒体计算机第一节 介绍 x86系列处理器的发展概史。
第二节 介绍计算机的基本原理和主要的概念及术语。
第三节 介绍什么是微型计算机的硬件和软件以及软件的主要种类。
第四节 介绍微型计算机的内部和外部结构。
第五节 介绍多媒体计算机主要功能和组成。
1.1 x86系列结构的概要历史
1971年 Intel 4004
70年代中期 Intel 8080,8085
80年代初 Intel 8086,8088
从 8086( 8088)到 80286,80386,80486、
奔腾(也称为 80586)、奔腾 MMX、奔腾 PRO
(也称为 80686)、奔腾 Ⅱ,奔腾 Ⅲ,直至最新的奔腾 4,形成了 IA( Intel Architecture) -
32结构 。
1.Moore定律:,晶体管的大小将以指数速率变小,
而集成到芯片上的晶体管数目将 2- 3年 【 18- 24个月 】 翻一番。,
-- Gordon Moore,1965
Intel公司成立于 1968年,格鲁夫(左)、
诺依斯(中)和摩尔(右) 。
1.1.1 Intel 8086
1971年 1月,Intel公司霍夫等人研制成功世界上第一 枚 4位微处理器芯片 Intel 4004,标志着第一代微处理器问世,主频 108KHz
1973年 8月,霍夫等人研制出 8位微处理器 Intel
8080,以 N沟道 MOS电路取代了 P沟道,第二代微处理器就此诞生。主频 2MHz的 8080芯片运算速度比 8008快 10倍
Zilog公司于 1976年对 8080进行扩展,开发 出
Z80微处理器,广泛用于微型计算机和工业自动控制设备。直到今天,Z80仍然是 8位处理器的巅峰之作早期微型计算机
1976年 3月,Steve Wozniak和 Steve
Jobs开发出微型计算机 Apple I,4月 1日愚人节这天,成立了 Apple计算机公司
Intel 8086
1978年 6月,Intel推出 4.77MHz的 8086微处理器,标志着第三代微处理器问世。它采用 16位寄存器,16位数据总线和 29000个 3微米技术的晶体管,具有 300个操作的指令集
Intel 在 1年之后,推出 4.77MHz的 8位微处理器
8088,准 16位处理器
IBM公司 1981年生产的第一台电脑就是使用
8088,这也标志着 x86架构和 IBM PC 兼容电脑的产生
Intel 8086
Intel 8086
微处理器和微机时代从此开始 x86系列结构的最新版本的发展能追溯到 Intel
8086。在 x86系列结构系统引进 32位处理器之前,是 16位的处理器,包括 8086
处理器和随后很快开发的 80186与 80286。
80386是第一款 32位处理器
x86系列结构的最重要的成就之一是,从
1978开始的那些处理器上建立的目标程序仍能在 x86系列结构系列的最新的处理器上执行。
8086有 16位寄存器和 16位外部数据总线,
具有 20位地址总线,可寻址 1M字节 地址空间。
Intel 8086
1982年 2月 1日 Intel成功研制出 80286。
80286处理器集成了大约 13.4万个晶体管,
最大主频为 20MHz,采用 16位数据总线和 24位地址总线。
80286引进了保护方式,支持虚拟存储器管理
Intel 8286
Intel 80386
Intel 386处理器是 x86系列结构系列中的 第一个 32位 处理器。
它在结构中引入了 32寄存器
Intel 386处理器有 32位地址总线,能支持多至 4G字节 的物理存储器。
32位结构同时支持 分段的存储模式和
,平面( flat),存储模式 。在,平面,
存储模式中,段寄存器指向相同地址,
且每个段中的所有 4 G字节可寻址空间对于软件程序员是可访问的。
Intel 80386
1.1.3 80486
Intel486处理器把 Intel386处理器的指令译码和执行单元扩展为 五个流水线段,
增加了更多的并行执行能力,
以前执行一条指令至少要 4个时钟周期以上,Intel486处理器能在每个时钟周期执行一条指令。
80486的一个重大改进是在 x86系列处理器的芯片中引入了 缓存 。在芯片上增加了一 8K字节的一级缓存( cache),大大增加了每个时钟周期执行一条指令的百分比,包括操作数在一级 cache中的存储器访问指令。
Intel486处理器也是第一次把 x87 FPU( 浮点处理单元 )集成到处理器上并增加了新的引脚、位和指令,以支持更复杂和更强有力的系统(二级 cache支持和多处理器支持)。
80486
1.1.4 奔腾( Pentium)
Intel奔腾 ( Pentium)处理器增加了 第二个执行流水线 以达到超标量性能(两个已知的流水线 u和 v,一起工作能实现 每个时钟执行两条指令 )。
芯片上的一级 cache也加倍 了,8K字节用于代码,另 8K字节用于数据。
1.1.5 P6系列处理器在 1995年,Intel引入了 P6系列处理器。
此处理器系列是基于新的超标量微结构上的,它建立了新的性能标准。 P6系列微结构设计的主要目的之一是在仍使用相同的 0.6微米、四层金属 BICMOS制造过程的情况下使处理器的性能明显地超过奔腾处理器,用与奔腾处理器同样的制造过程要提高性能只能在微结构上有实质上的改进。
Intel Pentium Pro处理器是基于 P6微结构的第一个处理器。 P6处理器系统随后的成员是 Intel Pentium II,Intel
Pentium II Xeon(至强),Intel
Celeron(赛扬),Intel Pentium III和
Intel Pentium III Xeon(至强)处理器。
1.1.6 奔腾 II
Intel Pentium II处理器把 MMX技术
(多媒体增强指令集)加至 P6系列处理器,并具有新的包装和若干硬件增强。
处理器核心包装在了 SECC上,这使其更具有了灵活的母板结构。第一级数据和指令 caches每个扩展至 16 K字节,支持二级 cache的尺寸为 256 K字节,512 K字节和 1 M字节。
1.1.7 奔腾 III
Pentium III处理器引进流 SIMD扩展
( SSE)(单指令多数据)至 X86系列结构,允许同时在多个数据项操作一个微指令 。 SSE扩展把由 Intel MMX引进的
SIMD执行模式扩展为新的 128位寄存器和能在包装的单精度浮点数上执行 SIMD
操作。
1.1.8 Intel Pentium4处理器
Intel Pentium 4处理器是 2000年推出的 ia-32处理器,并是第一个基于 Intel
NetBurst微结构的处理器。 Intel
NetBurst微结构是新的 32bit微结构,它允许处理器能在比以前的 IA-32处理器更高的时钟速度和性能等级上进行操作。
Intel Pentium 4处理器有以下高级特性:
( 1) Intel NetBurst微结构的第一个实现。
— 快速的执行引擎。
— Hyper流水线技术。
— 高级的动态执行。
— 创新的新 cache子系统。
( 2)流 SIMD扩展 2( SSE2):
— 用 144条新指令扩展 Intel MMX技术和 SSE扩展,它包括支持:
128位 SIMD整数算术操作。
128位 SIMD双精度浮点操作。
Cache和存储管理操作。
— 进一步增强和加速了视频、语音、
加密、影像和照片处理。
( 3) 400 MHz Intel NetBurst微结构系统总线。
— 提供每秒 3.2 G字节的吞吐率(比
Pentium III处理器快三倍)。
— 四倍 100MHz可伸缩总线时钟,以达到
400 MHz有效速度。
— 分开的交易,深度流水线。
— 128字节线具有 64字节访问。
( 4)与在 Intel X86系列结构处理器上所写和运行的已存在的应用程序和操作系统兼容。
1.1.9 Intel 超线程处理器
Intel公司于 2002年推出了具有 超线程技术的 IA-32列处理器 。超线程( Hyper-
Threading HT)技术允许单个物理处理器用共享的执行资源并发地执行两个或多个分别的代码流(线程)。以提高 X86
系列处理器执行多线程操作系统与应用程序代码的性能。
不像用两个或多个分别的 IA-32物理处理器的传统的 MP系统配置,在支持 HT
技术的 IA-32处理器中的逻辑处理器共享物理处理器的核心资源。这包括执行引擎和系统总线接口。在上电和初始化以后,每个逻辑处理器能独立地直接执行规定的线程、中断或暂停。
HT技术由在单个芯片上提供两个或多个逻辑处理器支持在现代操作系统和高性能应用程序中找到的进程与线程级并行。以在每个时钟周期期间最大地使用执行单元。而提高了处理器的性能。
1.1.10 Intel 双核技术处理器双核技术 是在 IA-32处理器系列中硬件多线程能力的另一种形式。双核技术由用在单个物理包中有两个分别的执行核心提供硬件多线程能力。因此,Intel
Pentium处理器极品版在一个物理包中提供四个逻辑处理器(每个处理器核有两个逻辑处理器)。
Intel奔腾处理器极品版中引入了 Intel
扩展的存储器技术( Intel EM64T)对于软件增加线性地址空间至 64位与支持物理地址空间至 40位。此技术也引进了称为 IA-32e模式的新的操作模式。
AMD公司是 x86系列处理器的另一重要供应商。它于 1969年成立。于 1991年推出了 AM386系列,1993年推出了
AM486,1997年推出了 AMD-K6(相当于具有 MMX技术的奔腾处理器),2001年推出了 AMD Athlon(速龙 ) MP 双处理器,
2003年推出 AMD 速龙? 64 FX处理器,
具有 64位的 x86-64内核。
1.2 计算机基础
1.2.1 计算机的基本结构计算机自诞生以来,经历了 4代。
电子管
半导体
小规模集成电路
超大规模集成电路等。
计算机最早是作为运算工具出现的。
(1)它首先要有能进行运算的部件,称为 运算器 ;
(2)其次要有能记忆原始题目、原始数据和中间结果以及为了使机器能自动进行运算而编制的各种命令的器件,这种器件就称为 存储器 ;
(3)再次,要有能代替人的控制作用的 控制器,它能根据事先给定的命令发出各种控制信息,使整个计算过程能一步步地自动进行。
1.2 计算机基础
1.2.1 计算机的基本结构
(4) 但是光有运算器、控制器和存储器还不够,原始的数据与命令要输入,所以需要有 输入设备 ;
(5)而计算的结果 (或中间过程 )需要输出,
就要有 输出设备 。这样就构成了一个基本的计算机系统。
在计算机中,基本上有两种信息在流动。一种信息为 数据,即各种原始数据、中间结果、程序等。这些数据要由输入设备输入,存于存储器中。
人们给计算机的各种命令 (即程序 ),也以数据的形式由输入设备存至存储器中。在运行时从存储器中取出送入控制器,由控制器经过译码后变为各种控制信号。这就是计算机中的另一种信息流即 控制命令,由控制器控制输入装置的启动或停止,控制运算器按规定一步步进行各种运算和处理,控制存储器的读和写,控制输出设备输出结果等。
图 1-3中的各个部分构成了计算机的硬件
(Hardware)。在上述的计算机硬件中,往往把运算器、控制器和存储器合在一起称为计算机的 主机 ;而把各种输入输出设备统称为计算机的外围设备或 外部设备 ( Peripheral)。
在主机部分中,又把运算器和控制器合在一起称为 中央处理单元 CPU(Central Processing
Unit)。随着半导体集成电路技术的发展,可以把整个 CPU集成在一个集成电路芯片上,就把它称为 微处理器 (Microprocessor)。
但不论计算机的规模大小,CPU只是计算机的一个部件。必须同时具有 CPU,存储器 和 输入输出 设备,才能构成一台计算机。
拿常用的台式机来说,有 CPU、主板、内存条、硬盘、软盘、显示卡、显示器、键盘、鼠标等。这些都是计算机的部件,虽然这些部件的功能与性能都有了巨大的发展,但是计算机的基本结构未变。
1.2.2 常用的名词术语和二进制编码一,位、字节、字及字长
(1) 位 (Bit)
“位,是指一个二进制位 。它是计算机中信息存储的最小单位,一般用 b表示。
(2) 字节 (Byte)
“字节,是指 相邻的 8个二进制位 。 1024个字节用 KB表示,1024KB用 MB表示,1024MB用
GB表示,B,KB,MB和 GB都是计算机存储器容量的单位
(3) 字 (Word)和 字长
,字,是计算机内部进行数据传递、处理的基本单位。 通常它与计算机内部的寄存器、运算装置、
总线宽度相一致 。
一个字所包含的二进制位数称为字长。常见的微型计算机的字长有 8位,16位,32位和 64位。
在目前的 PC中,字( Word)定义为 2字节( 16
位),双字( Double word)为 4字节( 32位),
四字( Quad word)为 8字节( 64位)
二、数字编码
BCD码是一种常用的数字编码。
BCD码,Binary-Coded Decimal,即二进制编码的十进制数。
表 2-2 标准 BCD码表示法
0
十进制数
0000
标准 BCD码
0000
二进制数
1
2
3
4
5
6
7
8
9
10
11
15
63
94
0001
0010
0011
0100
0101
0110
0111
1000
1001
0001 0000
0001 0001
0001 0101
0110 0011
1001 0100
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1111
111111
1011110
0.764 = (0.0111 0110 0100)BCD
149.4978)1001 0100 0001.1000 0111 1001 0100( B C D?
三、字符编码
ASCII 码是常用的字符编码。
ASCII,American Standard Code for
Information Interchange,即美国信息交换标准代码。
表 2-3 ASCII 字符表
LSD
MSD
0 1 2 3 4 5 6 7
000 001 010 011 100 101 110 111
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
NUL
SOH
STX
ETX
EOT
ENQ
ACK
BEL
BS
HT
LF
VT
FF
CR
SO
SI
BLE
DC1
DC2
DC3
DC4
NAK
SYN
ETB
CAN
EM
SUB
ESC
FS
GS
RS
US
SP
!
"
#
$
%
&
'
(
)
*
+
'
/
0
1
2
3
4
5
6
7
8
9
:;
<
=
>
@
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
[
\
]

a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
{
|
}
~
DEL
ASCII 码是一种七位二进制编码,包括数字符号、英文字母、标点符号、控制字符等。
,A,100 0001 (七位 ASCII码 )
0100 0001 (带偶校验的 8位编码 )
1100 0001 (带奇校验的 8位编码 )
,8,011 1000 (七位 ASCII码 )
1011 1000 (带偶校验的 8位编码 )
0011 1000 (带奇校验的 8位编码 )
四、汉字代码
1,汉字输入码如电报码,五笔字型码,紫光拼音等。
3,汉字交换码为不同汉字系统之间交换汉字信息而设计的,又称,国标码”。如计算机之间和计算机和终端之间交换信息时。
2,汉字机内码机器内部表示汉字的代码,又称,内码”。
同一汉字内部码是唯一的。
4,汉字字形码又称字模,是描述汉字形状的一组编码。
常用的是点阵字模。一个汉字写在一个方框可以由 m行 n列来表示,即点阵。 16X16
点阵汉字有 256个点。
1.2.3 指令、程序和指令系统计算机的几个主要部件构成了计算机的 硬件 的基础。但是,光有硬件,还只是具有了计算的可能。计算机要真正能够进行计算还必须要有 软件 的配合,首先是各种 程序 (Program)。
计算机所以能脱离人的直接干预,自动地进行计算,这是由于人把实现计算的一步步操作用命令的形式 ——即一条条指令 (Instruction)
预先输入到存储器中,在执行时,机器把这些指令一条条地取出来,加以翻译和执行。
计算机的运算是通过取数、送数、相加、存数等操作实现的。把要求计算机执行的各种操作用命令的形式写下来,这就是 指令 。 通常一条指令对应着一种基本操作。 一台计算机能执行什么样的操作,能做多少种操作,是由设计计算机时所规定的指令系统决定的。一条指令,对应着一种基本操作; 计算机所能执行的全部指令,
就是计算机的 指令系统 (Instruction Set),
这是计算机所固有的。
在使用计算机时,必须把要解决的问题编成一条条指令,这些指令的集合就称为程序。用户为解决自己的问题所编制的程序,称为源程序
(Source Program)。
指令通常分成 操作码 (Opcode即 operation
code)和 操作数 (Operand)两大部分。 操作码表示计算机执行什么操作 ; 操作数指明参加操作的数的本身或操作数所在的地址 。
因为计算机只认得二进制数码,所以计算机的指令系统中的所有指令,都必须以二进制编码的形式来表示。
计算机发展初期,就是用指令的机器码直接来编制用户的源程序,这就是机器语言阶段。
但是机器码是由一连串的 0和 1组成的,没有明显的特征,不好记忆,不易理解,易出错。所以,
编写程序成为一种十分困难而且十分繁琐的工作。
因而,逐渐进入了汇编语言阶段。用户用汇编语言 (操作码用助记符代替,操作数也用一些符号来表示 )编写源程序。
1.2.4 初级计算机为简化,先用模型机分析计算机内部结构 。
图 1-5是微型计算机的结构图,它是由微处理器 (CPU)、存储器、接口电路组成,通过三条总线 (BUS)——地址总线
(Address Bus),控制总线 (Control Bus)
和双向数据总线 (Data Bus )来连接。
1,CPU的结构模型机的 CPU结构,如图 1-6所示。
算术逻辑单元 ALU(Arithmetic Logic Unit)
是 执行算术和逻辑运算的装置,它以累加器 AL(Accumulator)的内容作为一个操作数;另一个操作数由内部数据总线供给,
可以是寄存器 (Register)BL中的内容,也可以是由数据寄存器 DR(Data Register)供给的由内存读出的内容等;操作的结果通常放在累加器 AL中。
F(Flag)是 标志寄存器,由一些标志位组成 。
PC程序计数器,提供要执行的指令的地址 。
AR(Address Register)是 地址寄存器,由它把要寻址的单元的地址 (可以是指令 ——则地址由 PC提供;也可以是数据 ——则地址要由指令中的操作数部分给定 )通过地址总线,送至存储器。
从存储器中取出的指令,由数据寄存器送至指令寄存器 IR(Instruction Register),
经过指令译码器 ID(Instruction Decoder)译码,通过控制电路,发出执行一条指令所需要的各种控制信息。
2,存储器存储器的结构如图 1-7所示。它由 256个存储单元组成,为了能区分不同的存储单元,对这些存储单元分别编了号,用两位十六进制数表示,这就是它们的地址如
00H,01H,02H,…,FFH等;而每一个存储单元可以存放 8位二进制信息 (通常也用两位十六进制数表示 ),就是它们的内容。
存储器中的不同存储单元,是由地址总线上送来的地址 (8位二进制数 ),经过存储器中的 地址译码器 来寻找的 (每给定一个地址号,可从 256个存储单元中找到相应于这个地址号的某一存储单元 ),然后就可以对这个存储单元的内容进行读或写的操作。
(1) 读操作若已知在 04号存储单元中,存的内容为
10000100即 84H,若要把它读出至数据总线上,则要求 CPU的地址寄存器先给出地址号 04,然后通过地址总线送至存储器,存储器中的地址译码器对它进行译码,找到
04号存储单元;再要求 CPU发出读的控制命令,于是 04号存储单元的内容 84H就出现在数据总线上,由它送至数据寄存器 DR,如图 1-12所示。
(2) 写操作若要把数据寄存器中的内容 26H写入到
10号存储单元,则要求 CPU的 AR地址寄存器先给出地址 10,通过地址总线 (AB)送至存储器,经译码后找到 10号存储单元;然后把 DR数据寄存器中的内容 26H经数据总线 (DB)送给存储器;且 CPU发出写的控制命令,于是数据总线上的信息 26H就可以写入到 10号存储单元中,如图 1-13所示。
信息写入后,在没有新的信息写入以前,
该信息是一直保留的,而且我们的存储器的读出是非破坏性的,即信息读出后存储单元的内容不变。
3,执行过程若程序已经存放在内存中,大部分 8位机执行过程就是 取指 (取出指令 )和 执行 (执行指令)这两个阶段的循环。
机器从停机状态进入运行状态,要把第一条指令所在的地址赋给 PC,然后就进入取指阶段。
在取指阶段从内存中读出的内容必为指令,所以 DR把它送至 IR,然后由指令译码器译码,就知道此指令要执行什么操作,在取指阶段结束后就进入执行阶段。当一条指令执行完以后,
就进入到了下一条指令的取指阶段,这样的循环一直进行到程序结束 (遇到停机指令 )。
二、程序执行过程举例以 7+10=? 为例,说明程序执行过程。
1,查指令系统,编写程序:
MOV AL,7 ; 7? AL B0H 07H
ADD AL,10; 10+AL? AL 04 H 0AH
HLT ; 处理器暂停 F4H
2,汇编源程序
3,机器码放入存储器地址
B0H
07H
04H
0AH
F4H
00H
01H
02H
03H
04H
05H
MOV AL,07H
ADD AL,10
HLT
4,机器的执行过程取指令 执行指令
(1) 第一条指令 (MOV AL,07H) 的取指过程:
PC的值 (00H)? AR
PC+1? PC (PC = 01H)
AR中的内容 (00H)? AB? MEMORY,
译码选中 00H存储单元。
CPU发出,存储器读”信号
(00H) = B0H? DB(数据总线)
DR(数据寄存器)? IR(指令寄存器)
ID(执行)
(2) ID译码指令,确定操作 (07H? AL),执行指令。
PC的值 (01H)? AR
PC+1? PC (PC = 02H)
AR中的内容 (01H)? AB? MEMORY,译码选中 01H存储单元
CPU发出,存储器读”信号
(01H) = 07H? DB? DR? AL
三、指令执行过程小结
1.取指令
(1) 程序计数器 PC将指令地址经地址缓冲器送到微处理外部地址总线,然后送到存储器进行地址译码 。
(2) 访问存储器某一单元,同时 CPU向存储器发,存储器读,控制信号 ( 且
PC←PC+ 1) 。
(3) 经过几百 ns,在外部数据总线上出现指令的第一字节,即操作码,它经由 CPU内部数据缓冲器 → 内部总线 → 指令寄存器 。
(4) 对于多字节指令,控制部件还会发出再去存储器取指令第二或第三字节的信号,每取一个字节,PC←PC+1 。
2.指令译码
3.取操作数经指令译码,如果需要取操作数,则
CPU将给出操作数地址,再次访问存储器 。
5.存放运算结果微处理器就是不断重复以上过程,逐条执行指令 。
4.执行指令
1.2.6 寻址方式在上例中,操作数就包含在指令中,
但是更一般的情况是 操作数在存储器中的某一单元,例如操作数是前面操作的中间结果。上例中的和是放在累加器中,
但若还要进行别的运算,则必须把和放到存储器中暂时存放。于是就存在一个如何寻找操作数的问题,这就是 寻址方式 。
1,立即数寻址 (操作数在指令中,紧跟在操作码的后面 )。
MOV AL,80H; 80H? AL
MOV AX,1090H; 1090H? AX
OP
90H
10H
码段
AH AL
2,直接寻址操作数地址的 EA直接包含在指令中。
(1) MOV AX,[2000H]; [DS:2000H]? AX
OP
00H
20H
50H
30H
码段数据段设 DS = 3000H
AH AL
32000H
(2) CS,MOV BX,[3000H]; [CS,3000H]? BX
00H
10H
码段
BH BL
54000H
54001H
设 CS = 5100H
3,寄存器寻址操作数在 CPU的某个寄存器中,指令中指出该寄存器名。
MOV DS,AX; AX? DS
INC CX; CX+1? CX
4,寄存器间接寻址操作数在存储器中,EA由寄存器指出。
MOV AX,[SI]; [DS,SI]? AX
MOV AX,[BP]; [SS,BP]? AX
(1) EA =
[BX]
[SI]
[DI]
若没有前缀指明具体的段寄存器,
则操作数在数据段中
(2) EA = [BP] 若没有前缀指明具体的段寄存器,
则操作数在堆栈段。
5,寄存器相对寻址
MOV AX,[BX+2000H]
XX
XX
码段
AH AL
36000H
36001H
00H
20H
数据段
DS = 3000H
BX = 4000H
(1) 若 EA =
[BX]
[SI]
[DI]
+ 8位或 16位偏移量则操作数地址 DS,EA
(2) 若 EA = [BP] + 8位或 16位偏移量则操作数地址,SS,EA
6,基址加变址寻址
8086CPU中,BX,BP - 基址寄存器
SI,DI - 变址寄存器
(1) 若 EA = [BX] +
[SI]
[DI]
则操作数地址,DS,EA
例 MOV AX,[BX+SI]
若 DS = 1000H,BX = 5000H,SI = 2000H
则 EA = 5000H + 2000H = 7000H
操作数地址 10000H + 7000H = 17000H
[17000H]? AL
[17001H]? AH
(2) 若 EA = [BP] +
[SI]
[DI]
则操作地址,SS,EA
7,相对的基址加变址寻址则操作数地址,DS,EA
例 MOV AX,[BX+SI+0250H]
若 DS = 3000H,BX = 2000H,SI = 1000H
则操作数 PA=30000H+2000H+1000H+250H=33250H
(1) 若 EA = [BX] +
[SI]
[DI] + 8位或 16位偏移量
(2) 若 EA = [BP] +
[SI]
[DI]
则 PA = SS? 16 + EA
+ 偏移量
8086操作数寻址方式小结:
数据
EA 数据寄存器 数据寄存器 EA 数据寄存器 位移量地址数据指令指令 内存指令 寄存器寄存器指令 内存指令内存
+
(a)
(b)
(c)
(d)
(e)
基址寄存器 变址寄存器 变址值基址值数据内存
+
基址寄存器 变址寄存器 位移量变址值 数据内存
+
基址值
EA
指令指令
(f)
(g)
8086寻址方式
1.3 计算机的硬件和软件上述的计算机的基本结构构成了计算机的硬件。但是要计算机正确地运行以解决各种问题,必须给它编制各种程序。
为了运行、管理和维修计算机所编制的各种程序的总和就称为软件。软件的种类很多,各种软件发展的目的都是为了扩大计算机的功能和方便用户,使用户编制解决用户的各种问题的源程序更为方便、简单和可靠。
1.3.1 系统软件在计算机发展的初期,人们是用 机器指令码
(二进制编码 )来编写程序的,这就称为 机器语言 。
用助记符代替操作码,用符号来代替地址,这就是 汇编语言阶段 。
但用汇编语言写的源程序在机器中还必须经过翻译,变成用机器码表示的程序 (称为目标程序 —
—Object Program),机器才能识别和执行。
能执行这样的功能的程序就称为 汇编程序
(Assembler)。
为更便于用户编写程序,开发了各种 高级语言 。高级语言易于理解、学习和掌握;
用户用高级语言编写程序也就方便多了,
大大减少了工作量。但是在计算机执行时,
仍必须把用高级语言编写的源程序翻译成用机器指令表示的目标程序才能执行,这样就需要有各种解释程序 (Interpreter)。
随着计算机本身的发展 (更快速,容量更大 ),以及计算机应用的普及和推广,计算机的操作也就由手工操作方式 (用户直接通过控制台操作运行机器 ),过渡到多道程序成批地在计算机中自动运行方式,于是就出现了控制计算机中的所有资源 (CPU、
存储器、输入输出设备以及计算机中的各种软件 ),使多道程序能成批地自动运行,
并且充分发挥各种资源的最大效能的操作系统 (Operating System)。
这些为了使用和管理计算机由机器的设计者提供的软件,统称为系统软件。系统软件包括:
(1) 各种语言和它们的汇编或解释、编译程序;
(2) 机器的监控管理程序 (Monitor)、调试程序
(Debug)、故障检查和诊断程序;
(3) 程序库。为了扩大计算机的功能,便于用户使用,机器中设置了各种标准子程序,这些子程序的总和就形成了程序库;
(4) 操作系统。
1.3.2 应用软件用户利用计算机以及计算机所提供的各种系统软件,编制解决用户各种实际问题的程序,这些程序就称为 应用软件 。
应用软件也可以逐步标准化、模块化、
逐步形成了解决各种典型问题的应用程序的组合,称为软件包 (Package)。
1.3.3 支撑软件支撑软件又称支持软件,如数据库管理系统等。
为了便于用户根据需要建立自己的数据库,询问、显示、修改数据库的内容,
输出打印各种表格等,这就建立了数据库管理系统 (Data Base Management
System),报表、字处理等支撑软件。
上述各种形式的程序,它们存储在各种存储介质中,例如纸带、卡片、磁盘、磁带等,故统称为计算机的软件。
总之,计算机的硬件建立了计算机应用的物质基础;而各种软件则扩大了计算机的功能,扩大了它的应用范围,以及便于用户使用。硬件与软件的结合才形成一个完整的计算机系统。
1.4 微型计算机的结构运算器与控制器是系统的核心,称为
CPU 。把整个运算器控制器即 CPU集成在一个芯片上的 CPU,称之为 微处理器
(Micro Processor)。 CPU本身还不是一个微型计算机,而只是微型计算机的一部分。只有与适当容量的存储器、输入输出设备的接口电路以及必要的输入输出设备结合在一起,才是一台微型计算机
(Micro Computer),或称为微型计算机系统 (Micro Computer System),如图 1-28
所示。
1.4.1 微型计算机的外部结构在微型计算机系统中,外部信息的传送是通过总线进行的 。大部分微型计算机有三组总线,地址总线 (Address Bus)、
数据总线 (Data Bus)和 控制总线 (Control
Bus)。
地址总线,通常为 32位,因此,可寻址的内存单元为 232=4GB。 I/O接口也是通过地址总线来寻址的,它可以寻址 64K个外设端口。
数据总线,目前常用的为 32位。数据在 CPU
与存储器和 CPU与 I/O接口之间的传送是双向的,故数据总线为 双向总线 。
控制总线,它传送各种控制信号,有的是
CPU到存储器和外设接口的控制信号,例如存储器请求 MREQ#,I/O请求 IORQ,读信号 RD#,写信号 WR#等;有的是由外设到
CPU的信号,如 8086中的 READY以及 INT等。
思考:
1,DB和 AB在结构上有什么不同?
2、如果一个系统的数据和地址合用一组总线,
那么用什么来区分地址和数据?
DB是双向的(读、写),AD是单向的。
8086为了减少芯片引脚数量,采用数据与地址线复用,即作为地址总线,也作为数据总线。它们主要靠信号的时序来区分。通常在读写数据时,总是先输出地址,过一段时间再读或写数据。
1.4.2 微型计算机的内部结构一个典型的 8位 CPU结构如图 1-29所示。
微处理器的内部主要由三部分组成:
(1) 内部寄存器阵列 。其中,一部分是用来寄存参与运算的数据,它们也可以连成寄存器对,用以寄存操作数的地址;另一部分是 16位的专用寄存器,如程序计数器 PC和堆栈指针 SP(Stack Pointer)等。
(2) 累加器和算术逻辑单元 。这是对数据进行算术运算、
逻辑运算的场所。运算结构的一些特征由一些标志触发器记忆。
(3) 指令寄存器,指令译码器和定时及各种控制信号的产生电路。它们把用户程序中的指令一条条译出来,然后以一定时序发出相应的控制信号,其功能相当于控制器。
1.5 多媒体计算机多媒体 (Multimedia)。通常所说的多媒体是指多媒体计算技术 (Multimedia
Computing),简称多媒体技术,其涵义是利用计算机来综合、集成地处理文字、
图形、图像、声音、视频、动画等媒体,
而形成的一种全新的信息传播和处理技术。它把计算机技术、通信技术和广播、
电视技术融为一体,综合利用,扩展了计算机应用的领域,受到了人们极大的关注和重视。
1.5.1 人机接口人类接收和传播信息的两种主要方式是用,眼睛看,和用,耳朵听,,所以可看见的媒体 (如文字、图形、图像、动画等 )和可听见的媒体 (如声音等 )的完善结合才能完整、自然地表达和让人类最大程度地接收信息。具有多媒体功能的计算机就称为多媒体计算机 。
1.5.2 多媒体计算机的主要功能多媒体计算机,要处理的主要信息如图 1-24所示。
多媒体信息的处理都涉及巨量的数据,
所以大容量数据存储以及数据压缩和解压缩技术也是多媒体技术的重要方向。
多媒体系统应该具有如下特性:
(1) 具备高度集成性,即能高度综合集成各种媒体信息,使处理各种媒体的设备相互协调地工作。
(2) 具有良好的交互性,即用户能随意地通过软件调度媒体数据和指挥媒体设备。
(3) 具备完善的多媒体硬件和多媒体工作平台。
1.5.3 多媒体计算机的组成多媒体计算机 (MPC) 是在 PC机的基础上融合高质量的图形、立体声、动画等媒体而组合的系统,其硬件结构如图 1-
25所示。