汇编基础(一)

第一章:介绍微机原理

· 微机介绍

· 80x86 CPU的结构

· CPU工作方式

· IBM-PC微机的功能结构

· CPU寄存器结构及其用途 

· 存储器组织结构

· 堆栈及其操作方法

·微机介绍

微型计算机的应用及发展状况

-网络服务器,工作站,个人pc机,单片机,单板机


符合摩尔定律

摩尔定律是由 英特尔(Intel)创始人之一 戈登·摩尔(Gordon Moore)提出来的。其内容为:当价格不变时, 集成电路上可容纳的元器件的数目,约每隔18-24个月便会增加一倍,性能也将提升一倍。换言之,每一美元所能买到的电脑性能,将每隔18-24个月翻一倍以上。这一定律揭示了信息技术进步的速度。
尽管这种趋势已经持续了超过半个世纪,摩尔定律仍应该被认为是观测或推测,而不是一个物理或 自然法。预计定律将持续到至少2015年或2020年 [1]  。然而,2010年国际半导体技术发展路线图的更新增长已经放缓在2013年年底,之后的时间里晶体管数量密度预计只会每三年翻一番。
下面看一下CPU结构图


INTEL芯片组

芯片组是构成主板电路的核心,芯片组用来连接CPU与其他设备如内存,显卡。

称为南桥和北桥,如果说中央处理器CPU是整个电脑系统的大脑,那么芯片组将是整个身体的心脏。

南桥管的是相对低速的硬件设备,北桥管的是相对高速的硬件设备

INTEL多核示意图


介绍一个NFC:近场通信,即把各种磁带卡使用NFC通信实现。

微型计算机系统的主要性能指标:

1.字长 指计算机内部一次可以处理的二进制数的位数 8位256 16位65536 32 64.就更多了

2.存储器容量:一般以字节为单位表示

3.运算速度(pc每秒大约能执行1亿条指令) 有几种不同的运算速度计算方法:

1)MIPS方法:以每秒能执行几百万条指令来衡量

2)最短指令法:以执行时间最短的指令为标准来计算

3)直接计算法:根据主频和指令的执行所需的时钟周期直接计算指令执行时间

4.扩展能力和外设配置

5.软件配置

微机中应用的几项先进技术介绍

1.流水线技术

即多线程多核操作,将每条指令分解为多步,使不同指令的各步重叠操作,实现几条指令的并行操作

加速程序的执行速度。486微机采用六级流水线结构同时有六条指令并行操作。

2.高速缓冲存储器技术

用制作cpu的技术制作高速缓冲存储器

增设一级或二级高速小容量存储器,称高速缓冲存储器(CACHE)保存程序中经常重复使用的指令和数据。

CPU在操作时首先到CACHE中查找需要的指令或数据,可大大提高代码的执行速度。

3.虚拟存储器技术

在内存和外存之间增加硬件或软件支持,使内存和外存形成一个整体。操作时由系统软件统一管理和调度

按要求将外存的内容依次调入内存供CPU执行。从CPU看到的是一个速度接近内容而容量与外存相当的假象存储器

称为虚拟存储器。486微机的实地址空间为4G字节,而虚拟地址空间为64T字节。

4.RISC技术(ARM采用这种技术,PC采用复杂指令系统)

精简指令集计算技术简称RISC技术,其主导思想是精简CPU芯片中指令的数目,简化芯片的复杂程度,使指令的执行速度更快。大多数复杂的指令很少被使用,编译器生成的总代码的80%以上是只占CISC指令集中不足20%的指令

· CPU工作方式

CPU工作方式有3种:

实地址模式是最基本的工作方式。实地址模式与16位微处理器8086/8088的实地址模式保持兼容,原有的16位微处理器的程序可

不加修改地在实地址模式下运行;32位微处理器的实地址模式具有更强的功能增加了寄存器,扩充了指令,可以进行32位操作。

保护模式引入了虚拟存储器的概念,可支持多任务操作。在保护模式方式下32位CPU可访问的物理存储空间为4GB

(2^32),程序可用虚拟存储空间为64TB(2^46)。保护模式支持4种特权级,可以隔离和保护操作系统的核心代码不受

用户软件的破环,防止应用程序之间的干扰

虚拟8086模式是一种既有保护功能又能执行16位微处理器软件的工作方式。虚拟8086模式的工作原理与保护模式相

同,但程序指定的逻辑地址解释与8086微处理器相同。虚拟8086模式可以看作保护模式的一种子方式

在过去计算机启动后进入实地址模式,典型的就是(dos)即命令行与linux相似,它启动时完成了寄存器,指针的初始化工作

实地址模式16位最大内存只能用到1M的模式,现在已经换成dos升级版window系统了。


·80x86 CPU的结构

一.80486的内部结构


以前的浮点运算单元是单独卖的。

内部结构图:


1.总线接口部件:管理地址,数据和控制总线,完成指令的预取,读写数据总线操作

2.指令预取部件:含有32字节的指令预取队列,可以通过总线接口部件从M中读取指令放入指令队列

3.指令译码部件:从指令预取队列中读取指令并译码

4.指令执行部件:由ALU,通用R,桶形移位R等组成,完成各种逻辑/算术运算

5.段管理部件:对M进行分段管理,将逻辑地址转换为32位线性地址

6.页管理部件:对M进行分页管理,将线性地址变为M的32位物理地址

7.高速缓存部件:可加速指令和数据访问

8.浮点运算部件:简称FPU,专门用于浮点运算


·IBM-PC微机的功能结构.(采用冯·诺伊曼结构)

一.以前的微机有五大部件构成:运算器、控制器、存储器、输入、输出设备

现代的微机已经把控制器集成到运算器简称CPU(MPU),也叫微处理器,因此有了现在的说法:CPU、存储器、IO设备

系统采用总线结构具有较大的灵活性和扩展性。如图:




现在来分析个部件的功能

1.CPU:分析从主存储器取来的各条指令的功能,控制计算机各部件完成指定功能的各项操作。

2.主存储器:用来存放程序和数据的部件,它由若干个存储单元构成。注意:存储器的基本单位是字节。

3.I/O接口:由于I/O设备和CPU的速度不同,因此必须由I/O接口来兼容。

4.系统总线与单片机的总线类似

4.I/O设备:显示屏,键盘等。


Intel 8086/8088CPU的功能结构




流水线方式实现了多线程,多核操作,大大提高了程序执行效率。


·CPU寄存器(不同于存储器)结构及其用途(Intel 8086/8088)


一,通用寄存器

数据寄存器:

   AX(Accumulative register)BX(Base address register)CX(Counting register)DX(Data register)

它们中的每一个既可以是16位寄存器也可以分开两个8位寄存器使用。

指针寄存器:

SP(Stack pointer)堆栈指针和 BP(Base pointer)基址指针 

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

SP指针--在进行堆栈操作时被隐含使用 ,用来指向堆栈顶部单元。

BP指针--被用来指向堆栈段内某一存储单元。BP还能用作数据寄存器。

变址寄存器

SI----源变址寄存器 

DI--目的变址寄存器

同BP寄存器一样SI和DI也可以用作通用数据寄存器存放操作数和运算结果。

系统级寄存器(了解)





计算机实质是一直查寄存器来工作的,用表格管理寄存器。

特别指出:


二,段寄存器

8086/8088CPU在使用存储器时,将它划分成若干个段。

每个段用来存放不同的内容,如程序代码,数据等等。

每个存储段用一个段寄存器指明该段的起始位置(段基址)。

如图:

CPU在访问存储器时必须指明两个内容:

(1)所访问的存储单元属于哪个段,即指明使用的段寄存器。

(2)该存储单元与起始地址(段基址)的相距多少即偏移量。

在程序设计中,一个程序将存储器划分成多少个存储段是任意的。

但在程序运行的任何时刻最多只有4个段,分别由CS,DS,ES,SS指定

三,指令指针IP

IP提供指令的偏移量,同时每当CPU执行一条指令后IP自动指向下一条指令。

CPU在从存储器取指令时,以段寄存器CS作为代码段的基址指针

以IP的内容作为偏移量,共同形成一条指令的存放地址。

四,标志寄存器


     


 



· 存储器的组织结构


首先明确几个概念

1.存储器有若干个存储单元

2.每个存储单元存放相同长度的二进制数(byte为单位)

3.每个存储单元有一个唯一的地址编号--地址

8086/8088CPU有20根地址线,即它可以产生20位的地址码,它的存储器寻址能力为2^20,即1M字节空间

4.存储器用来存储(SS堆栈),程序(CX代码段),数据(DX数据段),保留(EX附加段)


如图所示:



 

三,逻辑地址与物理地址及对应关系

1.物理地址

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

8086/8088的物理地址范围:00000H~0FFFFFH

2,逻辑地址

逻辑地址实质是物理地址的另一种表述

逻辑地址包括两个部分:段基址和偏移量




· 堆栈及其操作方法

堆栈是一个特定的存储区,它可位于存储器的上层(软件堆栈)或有专门堆栈存储器(硬件堆栈)

访问该存储区要按照专门的规则进行操作。

8086/88采用软件堆栈。

堆栈的用途:主要用于暂存数据以及在过程调用或处理中断时保存断点信息。即

用来处理函数调用及中断等非顺序执行的程序信息



在堆栈中存取数据的规则是:先进后出FILO(first-in last-out)。

再来看8086/8088堆栈的组织

在8086/8088微机中堆栈是由堆栈段寄存器SS指示的一段存储区

如图

顶由堆栈指针SP指示。SP中内容始终表示堆栈段基址与栈顶之间的距离(字节数)。

当SP内容为最大(初始)值时,表示堆栈为空。而当SP=0时,表示堆栈全满。

当SP被初始化时,指向栈底+2单元,其值就是堆栈的长度。由于SP是16位寄存器

因此堆栈长度小于等于64k字节。

数据在堆栈中的存放格式是:以字为单位存放,数据的低8位放在较低地址单元

高8位放在较高地址单元。

堆栈段可以用户自定义。通过改变堆栈段寄存器SS的内容,既可改变到另一个堆栈段

当改变了堆栈段寄存器SS的内容后必须紧接着赋予SP新值。






部分图片,内容整理自MOOC慕课网。







猜你喜欢

转载自blog.csdn.net/weixin_41573650/article/details/80721654