汇编语言-IBM-PC微机的功能结构

前言

学习IBM-PC机的功能结构

微机的基本结构

这里的微机指的就是计算机

计算机的组成

计算机一般由5部分组成,运算器,控制器,存储器,输入设备,输出设备

将运算器和控制器两大部件集成在一个集成电路芯片上,称为中央处理器 也叫CPU,
系统采用的是总线结构,具有较大的灵活性和扩展性

中央处理器

微型计算机的中央处理器包括运算器和控制器,主要的功能就是分析从主存储器取来的各条指令的功能,控制计算机的各个部件完成指定功能的各项操作。

主存储器

主存储器是用来存放程序和数据的部件,他由若干个存储单元组成,每个存储单元使用一个唯一的编号来标识(存储单元地址),对每个存储单元的操作就是通过这个地址来实现的。

计算机存储信息的基本单位是一个二进制的位,一个位可以存储一个二进制数 0或1,每8位组成一个字节,在大多数的计算机中存储器的组成都是以字节为基本单位的也称为一个存储单元。

习惯上把CPU和主存储器合称为主机,在计算机中除了主存储器之外,一般还有辅助存储器,也称为外存。

输入和输出设备及接口

  • 输入设备将外部的信息送入计算机,包括鼠标和键盘
  • 输出设备将处理后的结构转换为人或者系统能识别的信息向外输出。
  • 由于I/O设备的工作速度,工作原理以及所处理的信息格式等与主机相差很大,所以I/O设备要通过I/O接口才能与系统总线相连接。
  • I/O接口是主机与I/O设备之间的逻辑控制组件,通过他实现主机和I/O设备间的信息传递

有的设备既有输入功能也有输出功能,如磁盘,磁带 触摸显示屏等

系统总线

微机的个个部分肯定不是单独的工作的,要大家一起协调工作,这里边就需要通信的问题
而,系统总线就是将微机的个个部分相连接,实现各大部件之间的信息传递

系统总线包括地址总线,数据总线,控制总线,他们分别用来传递不同的信息

Intel8086/8088CPU的功能结构

汇编语言程序是由一系列的指令(指令序列)构成,指令是构成汇编语言程序的基本单位,就像高级语言的语句

CPU执行指令序列就是重复执行一下两个步骤 1 从存储器中取指令。2 执行指令规定的操作
这两个步骤执行又分为串行之行和指令流水线方式

  • 串行方式
    在这里插入图片描述
    该图展示了串行方式的工作流程图,他的特点是当CPU在执行指令的阶段,不需要占用系统总线,但是此时系统总线也不工作,因此系统总线的空闲时间较多。
    在存储区取指令,取数据或者是存数据是,总线处于忙状态,其占用的时间较长,而CPU却只需要很短的处理时间,因此大部分时间处于闲置状态

所以采用串行工作方式的计算机其运行速度较慢

  • 指令流水线方式

要实现指令流水线方式,从CPU组件结构上要划分成多个单元。8086/8088CPU被分成了两个单元 ,EU和BIU是既分工又合作的两个独立的部分,他们的操作在一定的程度上是并行的,从而大大加快了指令执行速度

在这里插入图片描述

执行单元EU的任务是分析和执行指令,从指令队列中取出指令代码,由控制器译码产生相应的控制信号,控制个部件完成指令规定的操作,对操作数执行分钟指令指定的算术或逻辑运算,向地址总线接口单元BIU发送访问主存或者I/O的命令,并提供相应的地址和传送的数据

BIU负责CPU与存储器,I/O的信息传送,取指令:根据CS寄存器和指令指针IP形成的20位的物理地址,从相应的存储器单元中取出指令,暂存到指令队列中,等待EU取走并执行,存数据:在EU执行指令的过程中,需要与存储器或者是I/O端口传送数据,由EU提供的数据和地址结合段寄存器,通过外部总线与存储器或I/O进行数据的存取。

寄存器的结构及用途

通用寄存器:Intel有8个16位通用寄存器,他们具有良好的通用性,并且还可以用作某个特定的功能,可以由程序设计人员编程访问。

  • 数据寄存器:它包括AX,BX,CX,DX四个寄存器,他们中的每一个寄存器既可以是一个16位的寄存器,也可以是分成两个8位的寄存器,即可以当作8个独立的8位寄存器使用。

数据寄存器既可以用来存放参加运算的操作数,也可以存放运算的结果

  • 指针寄存器:指针寄存器包括堆栈指针SP和基址指针BP,SP指针-在执行堆栈操作的时候隐含使用,被用来指向堆栈顶部单元,BP指针-被用来指向堆栈内某一存储单元。

他们一般被用来存放16位地址,在形成20位物理地址的时候常被作为偏移量使用

变址寄存器:有两个16位的变址寄存器 SI和DI,一般被用来作为地址指针

SI:源变址寄存器 DI:目的变址寄存器

段寄存器

cpu在使用存储器的时候,将它分成了若干个段。每段用来存放不同的内容,如程序代码,数据等等,每个存储段用一个段寄存器指明该段的起使位置

CPU在访问存储器时候必须指明两个内容 1 所访问的存储单元是那个段,既明确使用的段寄存器,2 该存储单元与段基址相聚多少

在程序设计中,一个程序将存储器划分成多少分是任意的,但是在程序运行的任意时刻最多只有4段,分别由CS,DS,ES,SS指定

指令指针IP
CPU在从存储器取指令的时候,以段寄存器CS作为代码段的基址指针,以IP为内容的偏移量,共同形成一条指令的存放地址,当CPU从内存中取出一条指令后,IP内容会自动修改为指向下一条指令。

标志寄存器
标志寄存器是用来反映CPU在程序运行时的某些状态,如是否有进位,奇偶性,结果的符号等等。

8086/8088CPU中标志寄存器的长度为16位,但是只定义了其中的9位,此处还应该包括对9
个状态进行解释的后续再补

存储器的组织结构

存储器的组成

存储器是由若干个存储单元组成的,存储单元的多少表示了存储器的容量

每个存储单元存放相同长度的二进制数,一个存储单元的长度一般为8位二进制数,即一个字节

每个存储单元都有一个唯一的地址编号–地址

8086/8088CPU有20根地址线,即他可以产生20位的地址码,他的存储器的寻址能力位2的20次方,即1兆字节空间

  • 字单元:一个字单元存储的是长度为16位二进制数,即两个字节,字单元的地址为两个字节单元中较小地址字节单元的地址。
  • 在定义一个地址的时候必须指出使用的是字节或字类型属性

存储器的段结构

由于8086/8088可寻址的存储空间为1MB。需要提供20位的地址码,而CPU内部的寄存器长度为16位,能够直接访问的最大的地址空间为64KB

存储器结构的特点

  • 8086/8088CPU将1M的存储空间划分成若干个段,每段最大的长度为64K个字节单元组成

存储器中规定从0地址开始,每16个字节称为一个小节,因此1M内存就可以划分为64K个小节,和寄存器的寻址空间就对应上了。

在这里插入图片描述
可以看出,每个小节的首地址最低位必为0,因此段基址只能是上述64K个小节首址之一。

逻辑段在物理存储器中是可以邻接的,间隔的,部分重叠或者完全重叠等 4种情况

在任一时刻,一个程序只能访问4个当前段中的内容,分别是代码段,数据段,堆栈段,附加段,他们分别保存的是段基址的高16位地址,称为段基值。段基址的最低4位为0

逻辑地址和物理地址的对应关系

物理地址:在1M的存储空间中,每个存储单元的物理地址是唯一的,他就是该存储单元的20位地址

CPU与存储器之间的任何信息交换都是通过使用物理地址

逻辑地址:在程序设置中,为了便于程序开发和对存储器进行动态的管理,使用了逻辑地址。一个逻辑地址包含两个部分,段基值和偏移量

段基值:存放在某一个寄存器中,是逻辑地址段开始单元的高16位

偏移量:表示某个存储单元与他所在的段的段基址之间的字节距离

逻辑地址和物理地址的转化

将逻辑地址的段基值左移4位,形成20位的段基址,然后和16位的偏移量相加得到的就是物理地址

逻辑地址的来源

逻辑地址的来源就用一张图来表示吧
在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值