第一章 基础知识
由于汇编语言是直接作用在硬件上的编程语言,所以,要使用汇编语言,我们要先对计算机硬件有深入的了解。
1.1 机器语言
机器语言:机器指令的集合。
机器指令:一台机器可以正确执行的命令。
电子计算机的机器指令是一串二进制数字,计算机内部使用高低电平表示,这些指令在CPU中进行,CPU有自己的机器指令集,就叫做机器语言。
机器语言难以人们阅读和书写,很难写出复杂的代码,易于出错,难以记忆。当一个语言的弊端保留的时候,新的事物将会带来一场变革,于是汇编语言出现了。
1.2 汇编语言的产生
汇编语言的主体是汇编指令,汇报指令便于阅读和记忆。
操作:寄存器BX的内容送到AX中
机器指令:1000100111011000
汇编指令:mov ax, bx
寄存器:CPU中存储数据的器件,一个CPU中有多个寄存器。
1.3 汇编语言的组成
汇编语言的三类指令:
(1)汇编指令:机器码助记符,有对应机器码。
(2)伪指令:没有对应机器码,由编译器执行。
(3)其他符号:如+、-、*、/等,由编译器识别。
1.4 存储器
CPU进行运算,要有相应的指令和数据。指令和数据存在内存中,内存向CPU提供指令和数据。磁盘也有存储功能,磁盘中的数据先读到内存中,才可被CPU读取。
1.5 指令和数据
指令和数据都是二进制信息,如1000100111011000可以是数据89D8H,也可以是mov ax, bx的指令。关于CPU把这段二进制信息当作指令还是数据,这就看CPU在什么时间了。
1.6 存储单元
存储器被分为若干存储单元,每个存储单元从0开始编号。计算机的最小信息单位是bit,一个bit能放一个二进制位,8个bit组成一个Byte,也就是一个字节,ByteDance就是这样翻译的。存储器的一个存储单元可存放一个Byte。
Byte一般用B表示,此外还有
1KB = 1024B
1MB = 1024KB
1GB = 1024MB
1TB = 1024GB
1.7 CPU对存储器的读写
CPU要对数据进行操作,要与芯片进行三种信息交互:
(1)地址信息
(2)控制信息
(3)数据信息
其中,三种信息的传输分别通过三种总线。
1.8 地址总线
一个CPU有n个地址总线,就可以一次传输n位地址,从0到2的n次方,就说这个CPU的地址总线宽度为n,最多可以寻找2的n次方个内存单元,体现寻址能力。
1.9 数据总线
数据总线的宽度决定CPU与外界数据的传送速度,一根数据总线可以传送1位二进制数据,体现一次的数据传送量。
1.10 控制总线
CPU对外部器件的控制通过控制总线来进行的,控制总线的宽度决定了CPU对外部器件的控制能力。
1.11 内存地址空间(概述)
可寻到的内存单元构成这个CPU的内存地址空间。
1.12 主板
PC机都有一个主板,主板上的器件通过总线相连。
1.13 接口卡
CPU对外部设备不能直接控制,需要通过接口卡,实现对外设的间接控制。
1.14 各类存储器芯片
一台PC机装有多个存储器芯片,他们在物理连接上是独立的。按属性分为RAM(可读可写,掉电即失)和ROM(只读不写,掉电保存)。
1.15 内存地址空间
在不同的内存地址中输入数据会有不同的结果,例如在主随机存储器的地址空间输入数据,这个数据就会被随机存入主随机存储器中;在显存地址空间中写入数据,这个数据就会写入现存中,然后被显卡输出到显示器上;往ROM的地址空间中输入数据,地址空间中的数据不会改变,因为ROM不能被写入。
在8086PC机内存地址空间的分配情况:
00000~9FFFF 主存储器地址空间(RAM)
A0000~BFFFF 显存地址空间
C0000~FFFFF 各类ROM地址空间