第2章 8x86 计算机组织
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第2章80x86 计算机组织
1.教学目的:掌握INTEL80X86微处理器的结构及内存单元地址与内容的含义和关系,了解计算机接口的构成,为汇编语言编程奠定基础。
2.教学要求:
①熟练掌握INTEL80X86微处理器的结构
②掌握内存单元地址与内容的含义和关系
③了解计算机接口的构成
3.教学重点:
①微处理器的功能结构
②微存储器组织
4.掌握难点:
①微处理器的寄存器组
②存储器寻址
5.教学进程安排:P19~32
6.教学方法:
①重点讲授微处理器的功能结构和微存储器组织
②一般叙述计算机接口的构成
7.教学内容摘要:
2.1 80x86微处理器
80x86微处理器是美国Intel公司生产的微处理器系列。
该公司成立于1968年,1969设计了4位的4004芯片,1973年开发了8位的8080芯片,1978推出了16位的8086芯片,由此开始了Intel公司80x86微处理器系列的历史。
2.1.1 微处理器概况
晶体管数:芯片中包含的晶体管数目,说明器件的集成度;
主频:芯片中所用的主时钟频率,反映计算机的运算速度;
数据总线:负责计算机中数据在各组成部分之间的传送;
数据总线宽度:芯片内部数据传送的宽度;
外部数据总线宽度:芯片内和芯片外数据交换的宽度;
地址总线宽度:传送地址的总线宽度,根据这一数值可以确定处理机可以访问的存储器的最大范围。
例:20位地址总线可以访问220=1048576个存储单元。
存储容量的换算:1K=210B=1024B; 1M=210K=1024K; 1G=210M=1024M;
高速缓存:存储速度比较快的存储器,现在有很多都做在芯片中
2.2 基于微处理器的计算机系统构成
微型计算机系统包括硬件和软件两部分。
2.2.1 硬件系统
图2.1给出了微型计算机组成框图。
图2.1 微型计算机硬件系统组成
把运算器、控制器、主存储器和输入/输出接口称为组成计算机硬件系统的五大部件。
计算机硬件的五大部件是通过总线连接起来的,构成了计算机的基本硬件系统。
各部分的主要功能如下:
输入设备:用于输入原始信息和处理信息的程序。
如键盘、鼠标器和扫描仪等。
输出设备:用来输出计算机的处理结果及程序清单。
如显示器和打印机。
存储器:用来存放程序和数据。
在控制器的控制下,可与输入设备、输出设备、运算器、控制器交换信息,是计算机中各种信息存储和交流的中心。
运算器:用来对信息及数据进行处理和计算。
也称为算术逻辑部件ALU(Arithmetic and Logic Unit)。
控制器:是整个计算机的指挥中心,用来指挥计算机各部件的操作,使其协调一致地工作。
2.2.2 软件系统
计算机软件是计算机系统的重要组成部分,它可以分成系统软件和应用软件两大类。
图2.2表示了计算机软件的层次。
2.3 中央处理机
2.3.1中央处理机CPU 的组成
算术逻辑部件:进行算术和逻辑运算; 控制逻辑部件:负责对全机的控制工作;
工作寄存器:存放计算过程中所需要的或所得到的各种信息。
2.3.2 80X86寄存器组
32位名称 16位名称 通用名称 累加器)
EAX EBX ECX EDX ESP EBP EDI ESI
EIP EFLAGS
注:1. 对于8086/88或80286CPU ,图
中阴影区寄存器是不存在的; 2. FS 和GS 寄存器无专用名称。
图2.3 80X86的程序寄存器组
程序不可见的寄存器:一般应用程序不使用而由系统所用的寄存器;
程序可见的寄存器:汇编语言程序设计中用到的寄存器,分为:通用寄存器、专用寄存器、段寄存器。
1、通用寄存器
(1)数据寄存器(AX、BX、CX、DX):用来暂时存放计算过程中所用到的操作数、结果或其它信息,可以以字(16位)也可以以字节(8位)的形式访问。
AX: ①累加器;②乘、除等指令中用来存放操作数;③传递I/O指令与外设的信息。
BX:①通用寄存器;②基址寄存器。
CX:①通用寄存器;②保存计数值,如在移位指令、循环指令(loop)、串处理指令中用作隐含的计数器。
DX:①通用寄存器;②双字长运算时,和AX组合在一起存放双字长数,DX存放高位字;
③在某些I/O操作中,存放端口地址;
(2)指针(或变址)寄存器(SP、BP、SI、DI):①运算过程中存放操作数,只能以字(16位)为单位使用;②存储器寻址时,提供偏移地址。
SP(堆栈指针寄存器):用来指示段顶的偏移地址;
BP(基址指针寄存器):可作为堆栈区中的某一个基地址,与堆栈段寄存器SS联用来确定堆栈段中的某一存储单元的地址;
SI(源变址寄存器)和DI(目的变址寄存器):①一般与数据段寄存器DS联用,用来确定数据段中某一存储单元的地址。
②具有自动增量和自动减量的功能。
③在串处理指令中,SI和DI作为隐含的源变址和目的变址寄存器,SI和DS联用实现在数据段中寻址,DI 和附加段寄存器ES联用实现在附加段中寻址。
2、专用寄存器(IP、SP、FLAGS)
IP(▲指令指针寄存器):存放代码段CS中的偏移地址。
在程序运行的过程中,始终指向下一条指令的首地址,与代码段CS联用来确定下一条指令的物理地址。
SP(堆栈指针寄存器):与堆栈段寄存器SS联用来确定堆栈段中栈顶的地址,即存放栈顶的偏移地址。
FLAGS(标志寄存器/程序状态寄存器PSW):存放条件码标志、控制标志、系统标志,可按位操作。
图2.4 80X86的标志寄存器
(1)条件码标志位:记录程序中运行结果的状态信息,根据有关指令的运行结果由CPU 自动设置,用作后续条件转移指令的转移控制条件。
①溢出标志(OF):在运算过程中,如操作数超出了机器能表示的范围称为溢出。
此时OF置1,否则置0。
②符号标志(SF):记录运算结果的符号,负时置1,否则置0。
③零标志(ZF):运算结果为0时置1,否则置0。
④进位标志(CF):最高有效位有进位时置1,否则置0。
⑤辅助进位标志(AF):记录运算时第3位产生的进位值,有进位时置1,否则置0。
⑥奇偶标志(PF):用来为机器中传送信息时可能产生的代码出错情况提供检验条件。
当结果操作数中1的个数为偶数时置1,否则置0。
⑦控制标志位(DF):在串处理指令中控制处理信息的方向。
当DF为1时,每次操作后使变址寄存器SI和DI减小,串处理从高地址向低地址方向处理。
当DF为0时,每次操作后使变址寄存器SI和DI增大,串处理从低地址向高地址方向处理。
(2)系统标志位:用于I/O、中断屏蔽、程序调试、任务切换和系统工作方式等的控制。
一般应用程序不必关心这些位,只有系统程序员或需要编制低层I/O设备控制等程序时才需要。
①陷阱标志(TF):用于调试时的单步方式操作。
TF为1时,每条指令执行完后产生陷阱,由系统控制计算机;TF为0时,CPU正常工作,不产生陷阱。
②中断标志(IF):当IF为1时,允许CPU响应可屏蔽中断请求,否则关闭中断。
(第八章)
③I/O特权级(IOPL):在保护模式下,用于控制对I/O地址空间的访问。
(第八章)
标志位的符号表示
2.4 存储器
2.4.1 内存地址范围
物理地址:在存储器里以字节为单位存储信息,每一个字节单元给以一个唯一的存储器地址,称为物理地址。
地址从0开始编号,顺序地每次加1。
考虑地址总线分别为20位、24位、32位、36位时,可访问的单元地址范围。
2.4.2 内存单元的地址和内容
在存储器里以字节为单位存储信息。
为了正确地存放或取得信息,每一个字节单元给以一个惟一的存储器地址,称为物理地址。
地址从0开始编号,顺序地每次加1,因此存储器的物理地址空间是呈线性增长的。
在机器里,地址也是用二进制数来表示的,当然它是无符号整数,书写格式使用十六进制数形式。
存储器有这样的特性:它的内容是取之不尽的。
也就是说,从某个单元取出其内容后,该单元仍然保存着原来的内容不变,可以重复取出,只有存入新的信息后,原来保存的内容就自动丢失了。
地址及其内容:(地址)=内容
例: (0002H )=78H
字的存放:低位字节存入低地址,高位字节存入高地址。
字的地址采用它的低地址来表示(双字的存放与此类似)。
如:2号字单元的内容 (0002H )=5678H
如:2号双字单元的内容 (0002H )=12345678H
注:同一个地址既可看作字节单元的地址,又可看作字、双字、4字单元的地址。
例:((0004H))=45A6H
2.4.3 实模式存储器寻址
1. 存储器地址的分段
(1)实模式下允许的最大寻址空间为1MB 。
(2)要解决在16位字长的机器里怎么提供20位地址的问题,而解决的办法是采用存储器地址分段的方法。
(3)物理地址的形成
物理地址=段地址×16D+偏移地址 (4
(A ) 物理地址形成过程 (B ) 物理地址计算方法
图2.5 实模式存储器寻址时物理地址的形成与计算过程 图2.6 实模式存储器寻址
2. 段寄存器
段基地址
所选段 最大64KB
15
19
+ 0
(1)代码段CS:存放当前正在运行的程序;、
(2)数据段DS、数据段存放当前运行程序所用的数据,如果程序中使用了串处理指令,则其源操作数也存放在数据段中
(3)堆栈段SS堆栈段定义了堆栈的所在区域
(4)附加段ES附加段是附加的数据段,它是一个辅助的数据区,也是串处理指令的目的操作数存放区
在80386及其后继的80X86中新增段寄存器
(1)FS
(2)GS,
在80X86中,段寄存器和与其对应存放偏移地址的寄存器之间有一种默认组合关系,如表2-3和表2-4所示:
有时候程序需要改变段寄存器和偏移地址的缺省组合,具体改变方法在指令中说明。
在这种默认组合下,程序中不必专门指定其组合关系,但程序如用到非默认的组合关系,则必须用段跨越前缀加以说明。
这一点将在第3章中说明。
MOV AX,ES:[BX] ;ES作段寄存器,BX做间址寄存器寻址的单元内容送入AX寄存器中MOV BX,ES:[SI] ;ES作段寄存器,SI做间址寄存器寻址的单元内容送入BX寄存器中MOV EAX,DS:[BP] ;DS作段寄存器,BP做间址寄存器寻址的单元内容送入EAX寄存器中
2.4.4 保护模式存储器寻址
1. 逻辑地址
(1)选择器和
(2)偏移地址
2. 描述符
(1)基地址(BASE)部分用来指定段的起始地址;
(2)界限(LIMIT)部分存放着该段的段长度;
(3)访问权(ACCESS RIGHTS)部分用来说明该段在系统中的功能,并给出访问该段的一些控制信息;
(4)附加字段部分在386及其后继机型中存在,它用来表示该段的一些属性。
系统按选择器的内容,根据指定的途径可以找到所选段对应的描述符,从而可以根据其给出的基地址和界限值,确定所要找的存储单元所在的段,再加上逻辑地址中指定的偏移地址,就可以找到相应的存储单元。
图2.7 保护模式存储器寻址示意图
2.5 接口与外设
外部设备与主机(CPU 和存储器)的通信通过外设接口进行,每个外设接口包括一组寄存器,一般有三种不同的用途:
① 数据寄存器:存放在外设和主机间传送的数据,起缓冲器的作用。
② 状态寄存器:保存外部设备或接口的状态信息,以便CPU 了解和测试外设的工作情况。
③ 命令寄存器:CPU 给外设或接口的控制命令。
注:各种外部设备都有以上三种类型的寄存器,只是每个接口所配备的寄存器数量不同。
外设中的每个寄存器都有一个端口(port )地址(端口号),组成了独立于内存的I/O 地址空间。
8.参考资料:《IBM-PC 汇编语言程序设计》沈美明 9.作业: P33 习题2 10.课后总结:
本部分为汇编语言的基础,必须理解和熟悉,这样才可以编出高质量的汇编程序
存储器
所选段 最大64GB。