机器语言
机器语言是机器指令的集合。电子计算机的机器指令是一列二进制数字。计算机将之转变为一列高低电平,以使计算机的电子器件受到驱动,进行运算。
每一种微处理器都有自己的机器指令集,也就是机器语言。
汇编语言
汇编语言的主体是汇编指令。汇编指令和机器指令的差别在于指令的表示方法上。汇编指令是机器指令便于记忆的书写格式。
例如:mov ax,bx
Q:如何让计算机执行程序员用汇编指令编写的程序呢?
A:需要一个能够将汇编指令转换成机器指令的翻译程序,我们称其为编译器。
例如:MASM(全称是Microsoft Macro Assembler)是微软为x86微处理器家族开发的汇编语言开发环境。
汇编语言的组成
汇编语言由三类指令组成:
- 汇编指令:机器码的助记符,有对应的机器码。
- 伪指令:没有对应的机器码,由编译器执行,计算机并不执行。 伪指令:没有对应的机器码,由编译器执行,计算机并不执行。
- 其他符号:如+、-、*、/等,由编译器识别,没有对应的机器码。
汇编语言的核心是汇编指令,它决定了汇编语言的特性。
存储器
存储器:指令和数据存放的地方,我们称其为内存。没有内存,性能再好的CPU也无法工作。硬盘上的数据或程序不读到内存中,就无法被CPU使用。
【注】CPU的工作原理简述:它从存储器(内存)或高速缓冲存储器中取出指令(fetch),放入指令寄存器(IR,Instruction Register),并对指令译码(decode),进而执行(execute),最终写回(Writeback)。总结起来就是:取指—>译码—>执行—>写回。
指令和数据
在内存和磁盘上,指令和数据没有任何区别,都是二进制信息。CPU在工作的时候把有得信息看做指令,有得信息看作数据,为同样的数据赋予了不用的意义。
例如:内存中的二进制信息1000100111011000
计算机可以把它当做数据处理:89D8H
指令处理:mov ax,bx
【注】:89D8H,这是一个十六进制编码的数。H表示十六进制。
如果十六进制以字母打头,前面要加0,比如0E325H,强调这是数字。如果前面不加0,汇编编译器还以为这是个变量。
存储单元
存储器(内存)被划分为若干个存储单元,每个存储单元从0开始顺序编号。每个存储单元能存储一个字节。微机存储的容量是以字节为最小单位来计算的。
CPU对存储器的读写
CPU要从内存中读数据,首先要指定存储单元的地址。CPU在读写数据时还要指明,它要对哪一个器件(例如:存储器)进行操作,进行哪种操作,是从中读出数据,还是向里面写入数据。
汇编指令:MOV AX,BX
【注】BX- the base address register:基地址寄存器
AX- the accumulator register:累加寄存器
汇编指令:MOV AX,[3]
含义:将3号储存单元的内容传递给AX。
地址总线
地址总线(Address bus)宽度决定了CPU可以访问的物理地址空间。简单说就是CPU到底能够使用多大容量的内存。
数据总线
数据总线的宽度决定了CPU和外界的数据传送速度。
控制总线
控制总线的宽度决定了CPU对外部器件(例如,内存)的控制能力。
小结
- 汇编指令是机器指令的助记符,同机器指令一一对应。 每一种CPU都有自己的汇编指令集。 CPU可以直接使用的信息在存储器(内存)中存放。
- 在存储器中指令和数据没有任何区别,都是二进制信息。 存储单元从零开始顺序编号。 一个存储单元可以存储8个bit,即8位二进制数。
- 每个CPU芯片都有许多管脚,这些管脚和总线相连。也可以说,这些管脚引出总线。一个CPU可以引出3种总线的宽度标志了这个CPU的不同方面的性能:
- 地址总线的宽度决定了CPU的寻址能力; 数据总线的宽度决定了CPU与其他器件进行数据传输时的一次数据传送量;
- 控制总线的宽度决定了CPU对系统中其他器件的控制能力。
- 内存地址空间:对CPU来说,系统中所有存储器中的存储单元都处于一个统一的逻辑存储器中,它的容量受CPU寻址能力的限制。这个逻辑存储器即是我们所说的内存地址空间。
【注】在电子计算机中,一根导线可以传送的稳定状态只有两种,高电平或是低电平。用二进制表示就是1或0。