概述
2.1 80x86 微处理器
- 计算机的主要组成:运算器、控制器、存储器和输入输出设备。
- 运算器和控制器集成在一个芯片上,构成中央处理器(CPU)
2.2基于微处理器的计算机系统构成
2.2.1硬件
- 四个主要组成部分:CPU、存储器、输入输出(I/O)子系统和系统总线
- 系统总线把以上三个连接在一起
- CPU:核心部件,集成了运算器、控制器和寄存器组,执行程序指令,完成所有算术和逻辑运算及全机的控制工作。
- 存储器:存放程序和数据。
主存:内存,ROM(只读存储器)和RAM(随机存取存储器)。
辅存:外存,速度慢,容量大。 - I/O接口电路:主要完成数据缓冲、信号变换、以及与CPU联络等工作。
- I/O设备:微型计算机配备的输入输出设备,也称外围设备。
- 系统总线:CPU、存储器和I/O接口电路之间通过数据总线、地址总线和控制总线相连,这三组总线称为系统总线。数据总线:传送数据信息。地址总线:传送地址信息。控制总线:传送控制信息。
2.2.2软件
软件分为系统软件和应用软件两大类
- 系统软件:面向所有用户的一类软件。系统软件的核心是操作系统,所有应用的程序都是在操作系统构筑的平台上运行的。
- 应用软件:主要指用户围绕某项应用编写的各种程序。
2.3 中央处理机
2.3.1 中央处理器CPU的组成
8086CPU从功能上可分为两部分:总线接口部件BIU和执行部件EU
- 总线接口部件(BIU):由段寄存器、指令指针寄存器、地址加法器、指令队列和输入输出控制电路等组成。
- 执行部件(EU):由算术逻辑部件(ALU)、通用寄存器、标志寄存器和执行部件控制电路等组成,它负责指令的执行和数据的运算。
80x86寄存器组
寄存器是CPU内部重要的数据存储资源(寄存器的分类如上图)
1.通用寄存器
数据寄存器:共有四个AX、BX、CX、DX,用于保存操作数或运算结果等信息。
- AX寄存器:称为累加器,用于算术、逻辑运算以及与外设传送信息等。
- BX寄存器:称为基址寄存器,常用于存放存储器地址。
- CX寄存器:称为计数器,一般作为循环或串操作等指令中的隐含计数器。
- DX寄存器:称为数据寄存器,常用来存放双字数据的高16位。
变址寄存器:SI和DI称为变址寄存器,主要用于存放某个存储单元的偏移地址。
- SI是源变址寄存器
- DI是目的变址寄存器
SI和DI一般都与数据段寄存器DS联用,用来确定数据段中某存储单元的地址
在字符串操作中:
SI与DS联用——确定源操作数地址
DI与ES联用——确定目的操作数地址
指针寄存器:BP和SP称为指针寄存器,主要用于存放堆栈内存储单元的偏移量,用它们可实现多种存储器操作数的寻址方式
- SP:堆栈指针寄存器,用于存放当前堆栈段中栈顶的偏移地址
- BP:基址指针寄存器,用于存放堆栈段中某一存储单元的偏移地址
2.专用寄存器:IP、FLAGS
指令指针寄存器IP:它总是保存下一次将要从主存中取出指令的偏移地址,IP与CS段寄存器联用,可以确定下一条要取得指令的物理地址。
标志寄存器FLAGS:存放状态标志和控制标志的寄存器。
-
状态标志:用于记录程序中运行结果的状态信息。
溢出标志(OF):运算时溢出,则OF为1,否则为0。
符号标志(SF):记录运算结果的符号,结果为负时置1,否则为0。
零标志(ZF):运算结果为0时ZF位置1,否则置0。
进位标志(CF):记录运算时从最高有效位产生的进位值。例如执行加法指令时,最高有效位有进位置1,否则置0.
辅助进位标志(AF):记录运算时第3位产生的进位值。
奇偶标志(PF):检验传输数据时可能产生的出错情况。当结果操作数中的1为偶数时置1,否则0. -
控制标志:可由程序根据需要用指令设置,用于控制处理器执行指令的方式。
方向标志(DF):在串处理指令中控制处理信息的方向用。
陷阱标志(TF):用于调试时的单步方式操作。
中断标志(IF):IF为1时,允许CPU响应可屏蔽中断请求,否则关闭中断。 -
I/O特权级:在保护模式下,用于控制对I/O地址空间的访问。
3.段寄存器
8086CPU的4个16位的段寄存器分别称为:代码段寄存器CS,数据段寄存器DS,堆栈段寄存器SS,附加数据段寄存器ES。80386起增加了FS、GS两个段寄存器。
段寄存器用来确定该段在内存中的起始地址。
处理器利用CS:IP取得下一条要执行的指令
DS:EA存取数据段中某一存储单元的地址
SS:SP操作堆栈顶的地址
2.4 存储器
IBM PC机的两种主要存储器和主要的存储方式
-
ROM(只读存储器)永久保存计算机的启动程序和处理I/O的例行程序。
-
RAM(随机存储器)暂时保存计算机执行时驻留的程序的数据
2.4.1 存储单元的地址和内容 -
存储器以字节为编程单位
-
地址用无符号整数来表示
-
一个字要占用相继的两个字节
-
低位字节存入低地址,高位字节存入高地址(注意:高地址在下,低地址在上,即地址序号是越往下越大)
-
字单元地址用它的低地址来表示
内存单元的地址和内容的概念及其关系:
- 若M表示内存单元的地址,则该内存单元的内容可表示为(M)。
- 如果M单元存放着地址N,则((M))表示地址为N的单元的内容。
2.4.2 实模式存储器寻址
1.存储器地址的分段
-
机器规定:从0地址开始,每16个字节为一小段。
-
段起始地址:段起始位置必须是任一小段的首地址开始。
-
小段:每16个字节一小段,共有64K个小段
-
段的大小:0-64K范围内的任意字节
-
段内偏移:存储单元的实际地址预期所在段的段地址之间的距离,也可称为有效地址(EA),偏移地址(Offset)。
-
有了段地址和偏移地址,就能唯一地确定某一内存单元在存储器内的具体位置(物理位置(PA))。
-
计算示意图
-
逻辑地址:段地址:偏移地址,机器获得逻辑地址后自动通过某种方法求得物理地址。
寄存器与存储器的比较
附上思维导图
最后
以上就是直率紫菜为你收集整理的汇编语言(一)——80x86 计算机组织的全部内容,希望文章能够帮你解决汇编语言(一)——80x86 计算机组织所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复