汇编语言的产生 汇编语言的组成

电子说

1.2w人已加入

描述

1.机器语言

机器语言是机器指令的集合。机器指令展开来讲就是一台机器可以正确执行的命令。电子计算机的机器指令是一列二进制数字,计算机将之转变为一列高低电平,以使计算机的电子器件受到驱动,进行运算。

2.汇编语言的产生

汇编语言的主体是汇编指令。汇编指令和机器指令的差别在于指令的表示方法上。汇编指令是机器指令便于记忆的书写格式。

机器指令:1000100111011000

操作:寄存器 BX的内容送到AX中

汇编指令:MOV AX,BX

寄存器是CPU可以存储数据的器件

逻辑控制器

3.汇编语言的组成

由3类指令组成

(1)汇编指令:机器码的助记符,由对应的机器码

(2)伪指令:没有对应的机器码,计算机并不执行。

(3)其他符号:如+,-,*,/ 等,由编译器识别,没有对应的机器码

汇编语言的核心是汇编指令,他决定了汇编语言的特性

4.存储器

  • CPU 是计算机的核心部件.它控制整个计算机的运作并进行运算,要想让一个CPU 工作,就必须向它提供指令和数据。
  • 指令和数据在存储器中存放,也就是平时所说的内存
  • 在一台PC机中内存的作用仅次于CPU。
  • 离开了内存,性能再好的CPU也无法工作。
  • 磁盘不同于内存,磁盘上的数据或程序如果不读到内存中,就无法被CPU 使用。

5.指令和数据

指令和数据是应用上的概念,在内存或磁盘上,指令和数据没有任何区别,都是二进制信息。

6.存储单元

存储器被划分为若干个存储单元,每个存储单元从0开始顺序编号;

逻辑控制器

电子计算机的最小信息单元是bit(比特),就是一个二进制位,8bit组成一个Byte(字节),微型机存储器的存储单元可以存储Byte,128个存储单元,就可以存储128个Byte

7.CPU对存储器的读写

CPU想要进行数据的读写,必须和外部器件(芯片)进行3类信息的交互

  • 存储单元的地址(地址信息);
  • 器件的选择,读或写的命令(控制信息);
  • 读或写的数据(数据信息);

那么CPU是通过什么将地址、数据和控制信息传到存储芯片中的呢?

电子计算机能处理、传输的信息都是电信号,电信号当然要用导线传送。在计算机中专门有连接CPU和其他芯片的导线,通常称为总线。

物理上:一根根导线的集合;

逻辑上划分为

  • 地址总线
  • 数据总线
  • 控制总线

逻辑控制器

CPU从内存中读取数据过程

逻辑控制器

(1)CPU通过地址总线将地址信息3发出。

(2)CPU通过控制线发出内存读命令,选中存储器芯片,并通知他,将要从中读取数据。

(3)存储器将3号单元中的数据 08 通过数据线送入CPU

对于8086CPU,下面的机器码能够完成从3号单元读数据:

机器码:101000000000001100000000

    含义:从3号单元读取数据送入寄存器AX
  • CPU接收这条机器码后将完成上面所述的读写工作。
  • 汇编语言:MOV AX,[3]

8.地址总线

  • CPU是通过地址总线来指定存储单元的。
  • 地址总线上能传送多少个不同的信息,就可以对多少个存储单元进行寻址
  • 一个CPU有N根地址总线,则可以说这个CPU的地址总线的宽度为N。
  • 这样的CPU最多可以寻找2的N次方个内存单元。
  • 32位计算机寻址能力 2^32= 2^10 * 2^10 * 2^10 *4 = 4GB

逻辑控制器

9.数据总线

  • CPU与内存或其它器件之间的数据传送是通过数据总线来进行的。
  • 数据总线的宽度决定了CPU和外界的数据传送速度。

10.控制总线

  • 前面所讲的内存读或写命令是由几根控制线综合发出的:
    • 其中有一根名为读信号输出控制线负责由CPU 向外传送读信号,CPU 向该控制线上输出低电平表示将要读取数据;
    • 有一根名为写信号输出控制线负责由CPU向外传送写信号。

11.内存地址空间概述

什么是内存地址空间呢?

一个CPU的地址线宽度为10,那么可以寻址1024个内存单元,这1024个可寻到的内存单元就构成这个CPU的内存地址空间。下面深入讨论。

首先需要介绍两部分基本知识,主板和接口卡。

12.主板

在每一台PC机中,都有一个主板,主板上有核心器件和一些主要器件。

这些器件通过总线(地址总线、数据总线、控制总线)相连。

13.接口卡

计算机系统中,所有可用程序控制其工作的设备,必须受到CPU的控制。

CPU对外部设备不能直接控制,如显示器、音箱、打印机等。直接控制这些设备进行工作的是插在扩展插槽上的接口卡。

14.各类存储器芯片

从读写属性上看分为两类:

随机存储器(RAM)和只读存储器(ROM)

从功能和连接上分类:

随机存储器RAM

装有BIOS的ROM

接口卡上的RAM

PC机中各类存储器的逻辑连接情况

装有BIOS的ROM

    BIOS:Basic Input/Output System,基本输入输出系统。

    BIOS是由主板和各类接口卡(如:显卡、网卡等)厂商提供的软件系统,可以通过它利用该硬件设备进行最基本的输入输出。在主板和某些接口卡上插有存储相应BIOS的ROM。

逻辑控制器

15.内存地址空间

上述的那些存储器在物理上是独立的器件。

但是它们在以下两点上相同:

  • 1、都和CPU的总线相连。
  • 2、CPU对它们进行读或写的时候都通过控制线发出内存读写命令。

将各类存储器看作一个逻辑存储器:

  • 所有的物理存储器被看作一个由若干存储单元组成的逻辑存储器;
  • 每个物理存储器在这个逻辑存储器中占有一个地址段,即一段地址空间;

CPU在这段地址空间中读写数据,实际上就是在相对应的物理存储器中读写数据。

逻辑控制器

  • 假设,上图中的内存空间地址段分配如下:
    • 地址0~7FFFH的32KB空间为主随机存储器的地址空间;
    • 地址8000H~9FFFH的8KB空间为显存地址空间;
    • 地址A000H~FFFFH的24KB空间为各个ROM的地址空间。

逻辑控制器

内存地址空间

  • 最终运行程序的是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对系统中其它器件的控制能力。

检测点

**(1)**CPU的寻址能力为8KB,那么它的地址总线的宽度为 位。解:1KB=1024B,8KB=1024B*8=2^N,N=13。 则地址总线的宽度为13位

**(2)**1KB的存储器有 *****个存储单元,存储单元的编号从 到 ***** 。解:回顾前面:一个存储单元可以存储 8 个 bit (用作单位写成“b”),即 8 位二进制数。 即:1KB=1024B=1024*8bit 故有1024个存储单元,存储单元的编号从0开始到1023

**(3) 1KB的存储器可以存储 __ 个bit, _**个Byte。解:1KB=1024Byte=1024*8bit=8192bit

**(4)1GB是个Byte、1MB是 **_个Byte、1KB是 __ ___个Byte。解:1GB=1024 * 1024 * 1024=1073741824Byte 1MB=1024*1024=1048576Byte 1KB=1024Byte

**(5)**8080、8088、80296、80386的地址总线宽度分别为16根、20根、24根、32根,则它们的寻址能力分别为: (KB)、 (MB)、 (MB)、___(GB)。解:由第一题得知:2^N=寻址能力(N为地址总线的宽度即现在题目中的16、20....) 则:2^16=65536byte=64kb 2^20=1048576byte=1mb 2^24=16777216byte=16mb 2^32=4294967296byte=4GB

(6) 8080、8088、8086、80286、80386的数据总线宽度分别为8根、8根、16根、16根、32根。则它们一次可以传送的数据为: (B)、 _(B)、 __ (B)、 (B)、 __ (B)。解:由前面的知识可知: (一)8根数据总线一次可以传送8位二进制数据(即一个字节)。 (二)一个存储单元可以存储 8 个 bit (用作单位写成“b”),即 8 位二进制数。 (三)1Byte = 8bit 则:答案为:1 1 2 2 4

**(7) 从内存中读取1024字节的数据,8086至少要读 _ 次,80386至少要读 __**次。解:由上题可知:8086为16根数据总线,一次可以传送16位二进制数据(即两个字节)。 1024/2=512(次) 80386为32根数据总线,一次可以传送32位二进制数据(即四个字节)。 1024/4=256(次)

(8) 在存储器中,数据和程序以 _ 形式存放。解:在存储器中指令和数据没有任何区别,都是二进制信息,所以以二进制形式存放。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分