汇编语言是直接在硬件之上工作的编程语言,要先了解硬件系统的结构,才能有效地应用汇编语言对其编程。
汇编课程的重点放在如何利用硬件系统的编程结构和指令集有效灵活地控制系统进行工作。
机器语言
机器语言是机器指令的集合。机器指令展开来讲就是一台机器可以正确执行的命令。电子计算机的机器指令是一列二进制数字。计算机将之转变为一列高低电平,以使计算机的电子器件受到驱动,进行运算。
早期计算机的概念指的是可以执行机器指令,进行运算的机器。
现在,在我们常用的PC机中,又一个芯片来完成上面所说的计算机的功能。这个芯片就是我们常说的CPU,CPU是一种微处理器。以后我们提到的计算机是指由CPU和其他受CPU直接或间接控制的芯片,器件,设备组成的计算机系统、
每一种微处理器,由于硬件设计和内部结构的不同,就需要用不同的电平脉冲来控制,使它工作。所以每一种微处理器都有自己的机器指令集,也就是机器语言。
早期的程序设计均使用机器语言,也就是用01组成的语言。但是机器码晦涩难懂和不易查错。
汇编语言的产生
汇编语言的主体是汇编指令。汇编指令和机器指令的差别在于指令的表示方法上。汇编指令是机器指令便于记忆的书写格式。
寄存器:简单来讲就是CPU中可以存储数据的器件,一个CPU中有多个寄存器。
能够将汇编指令转换成机器指令的翻译程序,我们称之为编译器。程序员用汇编语言写出源程序,再用汇编编译器将其编译为机器码由计算机最终执行。
汇编语言发展至今,有下面三类指令组成:
- 汇编指令:机器码的助记符,有对应的机器码
- 伪指令:没有对应的机器码,由编译器执行,计算机并不执行
- 其他符号:如+,-,*,/等,由编译器识别,没有对应的机器码
存储器
CPU是计算机的核心部件,他控制整个计算机的运作并进行运算。想要一个CPU工作,就必须向他提供指令和数据。指令和数据在存储器中存放,也就是平时我们所说的内存。在一台PC机中,内存的作用仅次于CPU,离开了内存,性能再好的CPU也无法工作。
磁盘不同于内存,磁盘上的数据或程序如果不读到内存中,就无法被CPU使用。
指令和数据
指令和数据是应用上的概念。在内存或磁盘上,指令和数据没有任何区别,都是二进制信息。CPU在工作的时候把有的信息看做指令,有点信息看做数据,为同样的信息赋予了不同的意义。
存储单元
电子计算机的最小信息单位是bit,也就是一个二进制位;8个bit组成一个字节,Byte。微型机存储器的存储单元可以存储一个Byte,即8个二进制位。一个存储器有128个存储单元,他可以储存128个Byte
CPU对存储器的读写
存储器被划分为多个存储单元
CPU要想进行数据的读写,必须和外部器件(标准的说法是芯片)进行下面三类信息的交互
- 存储单元的地址(地址信息)
- 器件的选择,读或写的命令(控制信息)
- 读或写的数据(数据信息)
在计算机中专门有连接CPU和其他芯片的导线,通常称为总线。总线从物理上讲,就是一根根导线的集合。根据传送信息的不同,总线从逻辑上又分为3类,地址总线、控制总线和数据总线。
- CPU通过地址总线将地址信息3发出
- CPU通过控制线发出内存读命令,选中存储器芯片,并通知它,将要从中读取数据
- 存储器将3号单元中的数据8通过数据线送入CPU
写和读操作的步骤相似。只是这次控制线发出的是写信号
要让一个计算机或微处理器工作,应向他输入能驱动它进行工作的电平信息(机器码)
地址总线
CPU是通过地址总线来指定存储器单元的。可见地址总线上能传送多少个不同的信息,CPU就可以对多少个存储单元进行寻址。
一个CPU的有N根地址线,则可以说这个CPU的地址总线的宽度为N。这样的CPU最多可以寻找2的N次方个内存单元
数据总线
CPU与内存或其他器件之间的数据传送是通过数据总线来进行的。数据总线的宽度决定了CPU和外界的数据传送速度。
如果要传入16位数据,但是数据总线只用8位,那么可以通过传入两次来实现。
控制总线
CPU对外部器件的控制是通过控制总线来进行的。在这里控制总线是个总称,控制总线是一些不同控制线的集合,有多少根控制总线,就意味着CPU提供了对外部期间的多少种控制。所以控制总线的宽度决定了CPU对外部器件的控制能力。
小结
- 汇编指令是机器指令的助记符,同机器指令一一对应
- 每一种CPU都有自己的汇编指令集
- CPU可以直接使用的信息在存储器中存放
- 在存储器中指令和数据没有任何区别,都是二进制信息
- 存储单元从零开始顺序编号
- 一个存储单元可以存储8个bit,即8位二进制数
- 1Byte=8bit 1KB=1024B 1MB=1024KB 1GB=1024MB
- 每一个CPU芯片都有许多管脚,这些管脚和总线相连,也可以说,这些管脚引出总线。一个CPU可以引出3种总线的宽度标志了这个CPU的不同方面的性能
地址总线的宽度决定了CPU的寻址能力
数据总线的宽度决定了CPU与其他期间进行数据传送时的一次数据传送量
控制总线的宽度决定了CPU对系统中其他器件的控制能力。