汇编 (第一章、基础知识)
1.1机器语言
机器语言是机器指令的集合,机器指令就是一台机器可以正确执行的命令,电子计算机的机器指令是一串二进制数字。
应用8086CPU完成运算s=768+12288-1280,机器码如下:
10111000000000000000011
00000101000000000110000
00101101000000000000101
如果出错则很难找出错误。由此汇编语言产生了。
1.2汇编语言的产生
汇编语言主体是汇编指令,汇编指令和机器指令差别在于表示方法上。
for example:
机器指令1000100111011000表示把寄存器BX的内容送到AX中。
汇编指令则写成:mov ax,bx 这样便于人们的阅读和记忆。
由于计算机只能读懂机器指令,所以程序员用汇编语言写出源程序,再用汇编编译器将其编译为机器码,由计算机执行。
1.3汇编语言的组成
汇编语言由以下三类指令组成:
- 汇编指令:机器码的助记符,有对应的机器码。
- 伪指令:没有对应的机器码,由编译器执行,计算机并不执行。
- 其他符号:如+、-、*、/等,由编译器识别,没有对应的机器码。
汇编语言的核心是汇编指令,决定了汇编语言的特性。
1.4存储器
CPU是计算机的核心部件,控制计算机的运行和运算。想要CPU工作就必须提供数据和指令。而数据和指令就放在存储器中,也就是内存。
1.5指令和数据
指令和数据是应用上的概念。在内存或磁盘上,指令和数据没有任何区别,都是二进制信息。CPU在工作时有时候把信息看成指令,有时看成数据,为同样的信息赋予不同的意义。
例如:
1000100111011000可以当作数据89D8H的数据来处理,也可以当作指令mov ax,bx来执行
1000100111011000——>89D8H
1000100111011000——>mov ax,bx
1.6存储单元
存储器被划分为若干个存储单元,每个存储单元从0开始顺序编号。计算机最小信息单位为bit(比特)也就是一个二进制位,8个bit组成一个Byte,也就是一个字节。
1KB=1024B 1MB=1024KB 1GB=1024MB 1TB=1024GB
1.7CPU对存储器的读写
CPU要从内存中读取信息,首先要指定村存储单元的地址。必须和外部器件(芯片)进行下面3类信息交互:
- 存储单元的地址(地址信息)
- 器件的选择,读或写的命令(控制信息)
- 读或写的数据(数据信息)
在计算机中有专门连接CPU和其他芯片的导线,称为总线,分为三类:地址总线、数据总线、控制总线。
1.8地址总线
CPU是通过地址总线来指定存储器单元的。地址总线上能传送多少个不同的信息,CPU就可以对多少个存储单元进行寻址。例如一个CPU有10根地址总线,则寻址能力为2^10,最小为0,最大为1023。
1.9数据总线
CPU和内存或其他器件之间的数据传送是通过数据总线来进行的。数据总线的宽度决定了CPU和外界的数据传送速度。8根数据总线一次可以传送8位二进制数(一个字节),16根一次可以传送2个字节。
1.10控制总线
CPU对外界的控制是通过控制总线来进行的。有多少根控制总线就表示CPU对外部器件有多少种控制,故控制总线的宽度决定了CPU对外部器件的控制能力。
1.11内存地址空间(概述)
一个CPU有10根地址总线,则可以寻址1024个内存单元,这1024个内存单元就构成这个CPU内存地址空间。
1.12内存地址空间
所有的物理存储器被看作一个由若干个存储单元组成的逻辑存储器,每个物理存储器在这个逻辑存储器中占有一个地址段,即一段地址空间。内存空间大小受CPU地址总线宽度的限制。