汇编语言是直接在硬件之上工作的编程语言,首先要了解硬件系统的结构,才能有效的应用汇编语言对其编程。
机器语言是机器指令的集合。
机器指令展开来讲就是一台机器可以正确执行的命令。
电子计算机的机器指令是一列二进制数字,计算机只看得懂二进制数字。
很明显,如果使用机器指令来编程是如此的难于辨别和记忆,稍有不慎就会出错。
汇编语言的主体是汇编指令。
汇编指令和机器指令的差别在于指令的表示方法上。汇编指令是机器指令便于记忆的书写格式。
汇编指令是机器指令的助记符(更接近人类语言)
但汇编语言也需要编译成机器语言,计算机才看得懂
汇编语言由以下3类组成:
1、汇编指令(机器码的助记符,有对应的机器码)
2、伪指令 (由编译器执行,没有对应的机器码,计算机并不执行)
3、其它符号(由编译器识别,没有对应的机器码,如+ - * /等)
汇编语言的核心是汇编指令,它决定了汇编语言的特性。
CPU 是计算机的核心部件.它控制整个计算机的运作并进行运算,要想让一个CPU 工作,就必须向它提供指令和数据。
指令和数据在存储器中存放,也就是平时所说的内存。在一台PC机中内存的作用仅次于CPU。
指令和数据是应用上的概念。
在内存或磁盘上,指令和数据没有任何区别,都是二进制信息。
例如,内存中的二进制信息1000100111011000,计算机可以把它看做大小为89D8H的数据来处理,也可以将其看做指令 mov ax,bx来处理
离开了内存,性能再好的CPU也无法工作。
磁盘不同于内存,磁盘上的数据或程序如果不读到内存中,就无法被CPU 使用。
计算机的最小信息单位是bit(比特),也就是一个二进制位。
而计算机的基本单位是字节(byte),1byte=8bit
一个存储单位可以存储一个Byte,即八个二进制位
对于大容量的存储器一般还用以下单位来计量容量(以下用B来代表Byte):
1KB=1024B
1MB=1024KB
1GB=1024MB
1TB=1024GB
磁盘的容量单位同内存的一样,实际上以上单位是微机中常用的计量单位
CPU要想进行数据的读写,必须和外部器件(标准的说法是芯片)进行三类信息的交互:
存储单元的地址(地址信息)
器件的选择,读或写命令(控制信息)
读或写的数据(数据信息)
在计算机中专门有连接CPU和其他芯片的导线(计算机能处理、传输的信号都是电信号,电信号当然要用导线传送),通常称为总线。
总线从物理上讲就是一根根导线的集合;
逻辑上划分为:
地址总线
数据总线
控制总线
通过指令
当然包括机器指令和汇编指令
CPU是通过地址总线来指定存储单元的。
地址总线上能传送多少个不同的信息,CPU就可以对多少个存储单元进行寻址。(10根地址总线,CPU可以访问1024个存储单元,一个存储单元存储字节)
1.有几根地址总线,CPU就可以传输几位二进制数,这10个二进制数可以表示2^10次方个不同的数据,大小区间为 0→1023。最小数为0,最大数为1023
2.一个CPU有N根地址总线,则可以说这个CPU的地址总线的宽度为N。
这样的CPU最多可以寻找2的N次方个内存单元。
数据总线的宽度决定了CPU和外界的数据传送速度。每根数据总线一次传送一位二进制数,8根数据总线一次可传送一个8位二进制数据(即一个字节),16根数据总线一次可传送两个字节。
有多少根控制总线,就意味着CPU提供了对外部器件的多少种控制。
所以,控制总线的宽度决定了CPU对外部器件的控制能力。
前面所讲的内存读或写命令是由几根控制线综合发出的:
其中有一根名为读信号输出控制线负责由CPU 向外传送读信号,CPU 向该控制线上输出低电平表示将要读取数据;
有一根名为写信号输出控制线负责由CPU向外传送写信号。
(1)汇编指令是机器指令的助记符,同机器指令一一对应。
(2)每一种CPU都有自己的汇编指令集。
(3)CPU可以直接使用的信息在存储器中存放。
(4)在存储器中指令和数据没有任何区别,都是二进制信息。
(5)存储单元从零开始顺序编号。
(6)一个存储单元可以存储 8 个 bit (用作单位写成“b”),即 8 位二进制数。
(7)1B = 8b 1KB = 1024B
1MB = 1024KB 1GB = 1024MB
(8)每一个CPU芯片都有许多管脚,这些管脚和总线相连。也可以说,这些管脚引出总线。一个CPU可以引出三种总线的宽度标志了这个CPU的不同方面的性能:
地址总线的宽度决定了CPU的寻址能力;
数据总线的宽度决定了CPU与其它器件进行数据传送时的一次数据传送量;
控制总线宽度决定了CPU对系统中其它器件的控制能力。
(9)
什么是内存地址空间呢?
一个CPU的地址线宽度为10,那么可以寻址1024个内存单元,这1024个可寻到的内存单元就构成这个CPU的内存地址空间
在每一台PC机中,都有一个主板,主板上有核心器件和一些主要器件。
这些器件通过总线(地址总线、数据总线、控制总线)相连。
这些器件有CPU、存储器、外围芯片组、扩展插槽等。扩展插槽上一般插有RAM内存条和各类接口卡
CPU对外部设备不能直接控制,如显示器、音箱、打印机等。直接控制这些设备进行工作的是插在扩展插槽上的接口卡。CPU可以直接控制这些接口卡,从而实现CPU对外设的间接控制。简单地讲是CPU通过总线向接口卡发送命令,接口卡根据CPU的命令控制外设进行工作。
一台PC机中,装有多个存储器芯片,这些存储器芯片从物理连接上看是独立的、不同的器件。
从读写属性上看分为两类:
随机存储器(RAM,可读可写,但必须带电存储,关机后存储的内容丢失)和只读存储器(ROM,只读,关机后内容不丢失)
从功能和连接上分类:
1.随机存储器RAM
用于存放供CPU使用的绝大部分程序和数据,主随机存储器一般由两个位置上的RAM组成,装在主板上的RAM和插在扩展插槽上的RAM
2.装有BIOS的ROM
BIOS:Basic Input/Output System,基本输入输出系统。
BIOS是由主板和各类接口卡(如:显卡、网卡等)厂商提供的软件系统,可以通过它利用该硬件设备进行最基本的输入输出。在主板和某些接口卡上插有存储相应BIOS的ROM。
3.接口卡上的RAM
某些接口卡需要对大批量输入、输出数据进行暂时存储,在其上装有RAM。
最典型的是显示卡上的RAM,一般称为显存。显示卡随时将显存中的数据向显示器上输出。换句话说,我们将需要显示的内容写入显存,就会出现在显示器上。
上述的那些存储器在物理上是独立的器件。
但是它们在以下两点上相同:
1、都和CPU的总线相连。
2、CPU对它们进行读或写的时候都通过控制线发出内存读写命令。
也就是说,CPU在操控这些物理上独立的存储器的时候,把它们都当做内存来对待,把它们总的看做一个由若干存储单元组成的逻辑存储器,这个逻辑存储器就是我们所说的内存地址空间。
1.所有的物理存储器被看作一个由若干存储单元组成的逻辑存储器;
2.每个物理存储器在这个逻辑存储器中占有一个地址段,即一段地址空间;
3.CPU在这段地址空间中读写数据,实际上就是在相对应的物理存储器中读写数据
不同的计算机系统的内存地址空间分配情况是不同的。
我们在基于一个计算机硬件系统编程的时候,必须知道这个系统中的内存地址空间分配情况。这样才能正确的对相应存储器进行读写。
最终运行程序的是CPU,我们用汇编编程的时候,必须要从CPU角度考虑问题。
对CPU来讲,系统中的所有存储器中的存储单元都处于一个统一的逻辑存储器中,它的容量受CPU寻址能力的限制。这个逻辑存储器即是我们所说的内存地址空间。