01串
一个有用的程序至少要有几十行机器码,使得汇编语言应运而生。
汇编语言的写法与人类的语言更相近,便于阅读与记忆。
但是,机器能读懂的只有机器指令,这时候就需要一个能将汇编指令翻译成机器语言的翻译程序,这样的程序叫做编译器。
(1)汇编指令:机器码的助记符,有对应的机器码。
(2)伪指令:没有对应的机器码,由编译器执行,计算机不执行。
(3)其他符号:如+、-、*、/等,由编译器识别。没有对应的机器码。
其中,汇编指令是汇编语言的核心,它决定了汇编语言的特性。
计算机的硬件基础:CPU。
想让一个CPU工作,就必须向其提供指令和数据。
指令和数据在存储器中存放,存储器就是我们平时说的内存。
要灵活地利用汇编语言编程,首先要了解CPU是如何从内存中读写信息的。
指令和数据是应用上的概念。
在内存上,指令与数据没有任何差别,都是二进制信息。
存储器被划分成若干个存储单元,每个存储单元从0开始编号。
电子计算机上,一个存储单元可以储存1个字节(Byte)即8个二进制位(bit)的信息。
CPU要想进行数据的读写,必须要和外部器件进行下面三类信息的交互:
储存单元的地址(地址信息);
芯片的选择 ,读或写的命令(控制信息);
读或写的数据(数据信息);
为了传递信息,计算机中有专门连接CPU与其他芯片的导线,通常称为总线。
总线从逻辑上又分为三类:地址总线、控制总线和数据总线。
CPU从存储单元x中读取数据的过程如下:
(1)CPU通过地址线将地址信息x发出。
(2)CPU通过控制线发出内存读命令,选中储存器芯片,并通知它,将要从中读取数据。
(3)存储器将x号单元中的数据通过数据线送入CPU。
CPU通过地址总线来指定存储器单元,地址总线上能传送的信息数量就是CPU的寻址范围。
一个CPU有N根地址总线(宽度为N),CPU最多可以寻找2的N次方个内存单元。
地址总线的宽度决定了CPU与外界的数据传输速度。
8根数据总线一次可传输一个字节的数据。
在这里控制总线是个总称,控制总线是一些不同的控制线的集合。
CPU的寻址范围构成这个CPU的内存地址空间
主板上有核心器件与一些主要器件,这些器件通过地址、数据、控制总线相连。
CPU对外部设备都不能直接控制,直接控制这些外部设备工作的是插在拓展插槽上的接口卡。
拓展插槽通过总线与CPU相连,所以接口卡也通过总线与CPU相连。
CPU通过总线向接口卡发送命令进而控制外设工作
PC机中装有多个存储器芯片,从物理连接上看是独立的器件。
从读写属性上看分为两类:
随机储存器(RAM):可读可写,但必须带电存储,关机后储存内容丢失。
只读存储器(ROM):只读不写,关机后内容不丢失。
从功能与连接方式上又分为以下几类:
随机储存器:用于储存CPU使用的绝大部分程序和数据,主随机储存器上一般由两个位置上的RAM组成,分别为装在主板上的RAM和插在拓展插槽上的RAM。
**装有BIOS(Basic Input/Output System)的ROM:BIOS是由主板和各类接口卡(显卡、网卡)厂商提供的软件系统,可以通过它利用该硬件设备进行最基本的输入输出。**在主板和某些接口卡上插有储存相应BIOS的ROM。
**接口卡上 的RAM:**某些接口卡需要对大批量输入、输出进行暂时储存,在其上装有RAM。最典型的是显卡上的显存
上述的那些储存器,在物理上虽然是独立的器件,但是在下面两点上相同:
都与CPU的总线相连
CPU对它们进行读或写的时候都通过控制线发出内存读写命令
就是说,在CPU的眼里,众存储器平等,把它们总的看作一个有若干储存单元组成的逻辑存储器。这个逻辑储存器就是我们所说的内存地址空间。
内存地址空间的大小受CPU地址总线宽度的限制。