汇编基础_javac my beautiful life_百度空间

汇编语言有3类指令组成  

1)汇编指令: 器码的助记符,有对应的机器码。这是汇编语言的核心部分。

2)伪指令:没有对应的机器码,由编译器执行,计算机并不执行。

3)其他符号:如+,-,*,/等,由编译器识别,没有对应的机器码。

存储器:

存储器被划分成若干个存储单元,每个存储单元由0开始编号,这些编号可以看成每个存储单元的地址。

例如一个存储器一共128个存储单元,编号从0 ~ 127

计算机最小的单位是比特bit,也就是一个二进制位的大小。

8bit 组成一个字节Byte,微型机存储器的存储单元可以存储一个Byte,即82进制位。

如果一个存储器有128个存储单元,它可以存储128个字节Byte128*8 bit)。

主板和接口卡:

主板上一般有CPU,存储器,外围芯片组,扩展插槽(其上面插有RAM和接口卡)

一个计算机上所有外部设备必须受到CPU控制,而CPU对外部设备不能直接控制,像显示器,音响等,直接控制这些设备的是插在扩展插槽上的接口卡,扩展插槽总线和CPU总线相连,接口卡也通过扩展插槽和CPU相连,CPU通过直接控制这么接口卡,来间接控制外部设备,简单说就是CPU发出命令给接口卡,接口卡按照CPU命令控制外部设备。

像是显示器有对应的显卡,显卡上的ROM存储着显卡的BIOS,显卡上RAM称为显存,CPU发出要显示的数据写入显存,屏幕上就会显示相应内容,现在要求视觉效果高,对显存大小要求就大,能够及时处理CPU穿过来的命令和数据。

外部设备物理上是独立的,但都是和CPU总线相连,CPU对他们读或者写的时候都通过控制总线发出内存读写命令。这也就是说,CPU在控制他们的时候,都把他们当作内存来对待,把他们总的看作是由若干存储单元组成的逻辑存储器,这个存储器就是内存地址空间。汇编中面对的就是这个内存地址空间。如图:

所有的物理存储器被看作一个由若干存储单元组成的逻辑存储器,每个物理存储器在这个逻辑存储器中有一个地址段,即一段地址空间CPU在这段地址空间读写数据,实际就是在操作相应的外部器件。

例如:地址8000H-9FFFH8K空间为显存地址的空间,CPU向此段内存空间写入数据,这些数据就被写入显卡显存中,然后被显卡输出到显示器上。

CPU要想进行数据的读写,必须和外部器件(芯片)进行3类信息交互:

1,存储单元的地址

2,器件的选择,读或写命令(控制信息)

3,读或写数据(数据信息)

相应的,CPU与其交互就需要连接,他们之间采用导线连接,通过传输电信号实现,连接的导线被称为总线。因CPU要想进行数据的读写,必须和外部器件进行3类信息交互,所以规定了三种总线,地址总线,控制总线,数据总线。

内存地址空间:一个CPU的地址宽度为10,那么可以寻址1024个内存单元,这1024个可寻找到的内存单元就构成了这个CPU的内存空间地址。

最终运行程序的是CPU,用汇编写程序时候,必须从CPU的角度考虑问题,对CPU来说,系统中所有存储器中的存储单元都处于一个统一的逻辑存储器中,他的容量受CPU寻址能力的限制。这个逻辑存储器就是我们所说的内存地址空间。

寄存器

CPU中运算器进行信息处理;寄存器进行信息存储;控制器控制各种器件进行工作;内部总线连接连接各种器件,在他们之间进行数据传送。

对于汇编语言来说,操作的主要是CPU的寄存器。寄存器是CPU中程序员可以用指令读写的部件。程序员通过改变各种寄存器中的内容来实现对CPU的控制。

8086CPU的所有寄存器都是16位的,可以存放两个字节。AXBXCXDX4个寄存器通常用来存放一般性的数据,被称为通用寄存器。

AX为例,寄存器的逻辑结构:


数据存储:

8086CPU的上一代CPU中寄存器都是8位的,为了保证兼容,使原来基于上代CPU编写的程序稍加修改就可以运行在8086之上,8086CPUAXBXCXDX4个寄存器都可分为两个可独立使用的8位寄存器来用:

AX可分为AHAL            BX可分为BHBL

CX可分为CHCL            DX可分为DHDL

AX的低8位变成了AL寄存器,高8位构成了AH寄存器。AHAL寄存器是可以独立使用的8位寄存器。数据存储如图:

处于对兼容性的考虑,8086CPU可以一次性处理一下两种尺寸的数据。

1,字节: byte 一个字节由8bit,可以存放在8位寄存器中。

2,字:word 一个字有两个byte组成,这两个byte分别为这个字的高位字节和低位字节。

计算机中是以二进制形式存放的 0100111000100000BB表示二进制数)

人们习惯了十进制20000

十六进制一位相当于二进制的四位更容易查看4E20HH表示16进制)

例如AX中存放4E20 ,则AH中存放4EAL中存放20。所以多用16进制表示一个数据。




郑重声明:资讯 【汇编基础_javac my beautiful life_百度空间】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——