汇编复习-基础知识
看书时不写废话deepin的截图现在怎么有蓝边框了见谅。
汇编语言的产生
汇编语言主体是汇编指令。汇编指令和机器指令的差别在于指令的表示方法上。汇编指令是机器指令便于记忆的书写格式。
例如 | |
---|---|
操作 | 寄存器BX的内容送到AX中 |
机器指令 | 1000100111011000 |
汇编指令 | mov ax,bx |
计算机只能识别机器码所以需要编译器将汇编指令转化为机器指令。
编译器汇编语言的组成
汇编语言由以下3类指令组成
汇编语言组成 | |
---|---|
汇编指令 | 机器码的助记符,有对应机器码 |
伪指令 | 没有对应的机器码,由编译器执行,计算机并不执行 |
其他符号 | 如+、-、*、/等,由编译器识别,没有对应的机器码 |
存储器
CPU(Central Processing Unit,中央处理单元)是计算机核心部件,想让CPU工作,就必须向它提供指令和数据,指令和数据存储在内存中,内存就是存储器。
指令和数据在内存中都是二进制数据,针对不同的使用代表的意义也不同。
1000100111011000 →89D8(数据)
1000100111011000 →mov ax,bx(指令)
存储单元
内存被划分为若干个存储单元,存储单元从零开始编号,每个存储单元可以存放一个字节(byte),拥有128个存储单元的存储器,我们可以说它的容量是128个字节。
通常我们电脑有16G内存,那么总共有1610241024*1024 = 17179869184个单元。
注意:一个字节(byte)为8比特(bit),1个比特为1个二进制位,故一个单元可以存储8个二进制位。
CPU对存储器的读写
CPU要从内存中读数据必须制定内存中的地址,当然在计算机中不仅有内存,还有显卡、网卡等器件,它堆哪个器件进行操作,进行读写数据也是需要明确的。可见CPU主要进行三类信息交互:
- 存储单元的地址(地址信息)
- 器件的信息选择,读或写的命令(控制信息)
- 读或写的数据(数据信息)
计算机中专门有链接CPU和其他芯片的导线,通常成为总线。总线从物理上来讲是一根导线的集合,根据传送信息的不同,总线从逻辑上又分为3类,地址总线,控制总线和数据总线。CPU通过总线将地址、数据和控制信息传送到内存芯片中。
总线地址总线
CPU是通过地址总线来指定存储器单元的。地址总线上能传送多少个不同的信息,CPU就可以对多少个存储单元进行寻址。
一个CPU有10根地址总线,一根导线可以传送的稳定状态只有两种,高电平或低店铺。用二进制表示为1或0,而10位可以表示2的10次方个不同的数据。如果一个CPU有N根地址线,则可以说这个CPU地址总线宽度为N,这样的CPU最多可以寻找2的N次方个内存单元。
数据总线
数据总线的宽度决定了CPU和外界的数据传送速度。8根数据总线一次可以传送一个8位二进制数据,也就是一个字节。8086CPU的数据总线宽度为16,可以一次性传送2个字节。
控制总线
控制总线是一些不同控制线的集合,有多少根控制总线,就意味着CPU提供了对外部器件的多少种控制。
接口卡
CPU堆外部设备不能直接控制,如显示器、音响、打印机等。直接控制想这些设备进行工作是插在扩展插槽上的借口卡。扩展插槽通过总线和CPU相连,所以接口卡也通过总线同CPU相连。CPU可以直接控制这些接口卡。从而实现CPU对外设的简介控制。
各类存储器芯片
一台PC装有多个存储芯片,这些存储芯片从物理链接上看是独立的、不同的器件从读写属性上看分为两类;随机存储器(RAM)和只读存储器(ROM)。
RAM-read access memory随机存储器可读可写,但必须带电存储,关机后存储的内容丢失。
ROM-read only memory只读存储器,只能读取不能写入。关机后内容不丢失。
内存地址空间
CPU在操控上述的存储器的时候都把它们当作内存来对待,把它们看作若干存储单元组成的逻辑存储器,这个逻辑存储器就是我们所说的内存地址空间。
逻辑存储器内存地址空间的大小受CPU地址总线宽度的限制。8086CPU地址总线宽度为20,可以传送2的20次方个不同地址信息,即可以定位2的20次方个内存单元。8086PC的内存地址空间大小为2^20=1048576=1024×1024×1(1个单元大小为1字节、1字节=8bit)=1MB
在基于一个计算机硬件系统编程的时候,必须知道这个系统中的内存地址空间分配情况。因为当我们想在某类存储器中读写数据的时候,必须知道它的第一个单元的地址和最后一个单元的地址。比如我们希望向显示器输出一段信息,那么必须将这段信息写到显存中,显卡才能将它输出到显示器上。