汇编语言发展至今,由下列三类指令组成。
1. 汇编指令:机器码的助记符,有对应的机器码。
2. 伪指令:没有对应的机器码,由编译器执行,计算机并不执行。
3. 其他符号:如:+、-、*、/等,由编译器识别,没有对应的机器码。
汇编语言的核心是汇编指令,它决定了汇编语言的特性。
一. CPU对存储器的读写
CPU要想进行数据的读写,必须和芯片进行3类的信息交互:
1. 存储单元的地址(地址信息)
2. 芯片的选择,读或写的命令(控制信息)
3. 读或写的数据(数据信息)
连接CPU和其他芯片的导线称为总线。根据传送信息的不同,总线又可以分为地址总线,数据总线和控制总线。
例:CPU从3号单元读取数据的过程如下:
(1) CPU通过地址线将地址信息3发出
(2) CPU通过控制线发出内存读命令,选中存储器芯片,并通知它,将要从中读取数据。
(3) 存储器将3号单元中的数据08通过数据线传入CPU。
向3号单元写入数据26:
(1)CPU通过地址线将地址信息3发出
(2)CPU通过控制线发出内存读命令,选中存储器芯片,并通知它,将向其中写数据。
(3)CPU通过数据线将数据26送入内存的3号单元。
完成上面操作的机器码:1010000000000011 0000000
对应的汇编指令: MOVAX ,[3]
含义:传送3号单元的数据到AX寄存器。
总线的类别:
1. 地址总线:
一个CPU有N根地址线,则可以说这个CPU的地址总线的宽度为N。这样CPU最多可以寻找2的N次方个内存单元。
2. 数据总线:
CPU与内存或其他芯片之间的数据传送是通过数据总线来进行的。数据总线的宽度决定了CPU和外界的数据传送速度。
8086有16根数据线,可一次传送16位数据,即8个字节。而8088只有8根数据线,一次只能传8位数据。所以其向内存中写入16位数据时需两次传送。
3. 控制总线:
CPU对外部器件的控制是通过控制总线完成的。
总结:
1. 一个存储单元可以存储8位二进制数据。
2. 地址总线的宽度决定了CPU的寻址能力。
数据总线的宽度决定了CPU与其他器件进行数据传送时的一次数据传送量。
控制总线决定了CPU对系统中其他器件的控制能力。
二. 内存地址空间
可以这么理解:CPU在操纵存储器的时候,是把它们当作内存来看待,把它们总的看作若干个存储单元组成的逻辑存储器,这个逻辑存储器就是我们所说的内存地址空间。
16位机的内存地址空间地址段分配如下:
地址0~7FFFH的32KB空间为主随机存储器的地址空间。
地址8000H~9FFFH的8KB空间为显存地址空间。
地址A000H~FFFFH的24KB空间为各个ROM的地址空间。
这样,CPU向各个不同地址段的单元写入数据就会写入到不同的地址空间中。