汇编语言:第一章 基础知识

1.1机器语言:纯二进制

1.2汇编语言:是对机器语言的轻微抽象

1.3汇编语言的组成:

  a.汇编指令:机器码的助记符,有对应的机器码   * 是核心

  b.伪指令:没有机器码,由编译器执行,计算机不执行

  c.其他符号: 如+-*/ 由编译器识别,没有机器码

1.4存储器:  就是内存, 指令和数据存在此处,重要性仅次于CPU

1.5指令和数据: 在内存或磁盘上指令和数据没有区别,都是二进制形式

1.6存储单元: 

  存储器拥有若干个存储单元,编号从0开始,128个存储单元就是0-127编号

  一个存储单元可以存放8个二进制位8bit,用于表示一个字节,字节是计算机最基础存储单元,只有字节才有地址的概念

  存储器的容量也是以字节来计数的,128个存储单元的存储器容量为128字节(128Byte)

1.7CPU对存储器的读写

  CPU读写存储器需要提供3个信息用于完成操作:

  a.存储单元地址(地址信息)

  b.器件的选择,读写命令(控制信息)

  c.读写的数据(数据信息)

  那么CPU是如何把这三种信息传送给存储器的呢?

  计算机可以传输的都是电信号,通过导线将CPU与其它芯片连接起来,成为总线.

  总线分为三种:地址总线,控制总线,数据总线

1.8地址总线

  CPU通过地址总线传输地址信息给存储器来寻找存储单元,所以地址总线能传送多少个不同的地址信息,

  CPU就能对多少个存储单元进行寻址.

  一根导线有通电断电两种状态对应二进制0和1,那么N根导线就可以表示2的N次方个不同信息,

  所以一个CPU有N个地址线那么就可以对2的N次方个存储单元,寻址能力就是2的N次方Byte

1.9数据总线

  CPU与其他器件之间的数据传递是通过数据总线进行的,总线宽度决定了CPU与外界的数据传送速度

  8宽度总线一次可以传输一个字节,16宽度总线一次可以传送2个字节数据

1.10控制总线

  CPU对外部器件的控制是通过控制总线进行的,每根控制总线都对应一种控制命令,控制总线的宽度反应了

  CPU对外部器件的控制能力

CPU的针脚与三种总线相连,不同的总线数量反应不同的能力

检测:

  1)CPU寻址能力8KB,那么地址总线宽度为: 13  --> 8_3,K_10

  2)1KB的存储器有 1024 个存储单元,编号从 0  到  1023

  3)1KB的存储器可以存储  1024*8 个bit, 1024个Byte

  4)1GB,1MB,1KB 分别是1024^3,1024^2,1024个Byte

  5)8080,8088,80286,80386地址总线宽度分别为16,20,24,32则它们的寻址能力分别为

    64KB,1MB,16MB,4GB

  6)8080,8088,8086,80286,80386数据总线宽度分别为8,8,16,16,32则一次可传送的字节

  为1B,1B,2B,2B,4B

  7)在内存中读取1024字节数据,8086至少读512次,80386至少读256

  8)在存储器中,数据和程序以 二进制 形式存放

1.11内存地址空间概述

  内存地址空间就是CPU可寻到的存储单元构成的空间

1.12主板

  每个PC机有一个主板,包含核心器件和主要器件(器件之间通过三种总线相连),

  这些器件有CPU,存储器,外围芯片组,扩展插槽等, 扩展插槽上一般插有RAM内存条和各类接口卡

1.13接口卡

  计算机系统中所有可以用程序来控制工作的设备都必须受到CPU的控制。但是CPU不能直接控制设备,

  如显示器,音响,打印机等。直接控制这些设备的是扩展卡槽上的接口卡。扩展插槽通过总线与CPU连接,所以

  接口卡也是通过总线与CPU连接,CPU通过控制接口卡从而间接控制外部设备进行工作

1.14各类存储器芯片

  a.随机存储器:

     存放供CPU使用的绝大部分程序和数据,

   主随机存储器一般由主板上的RAM和扩展槽上的RAM构成

  b.装有BIOS的ROM

   主板上的BIOS装在ROM里,只读的,  显卡网卡里也可能有ROM用于装BIOS

  c.接口卡上的RAM

   某些接口卡要对大批输入输出数据进行暂时存储,就会装上RAM,典型的是显卡上的RAM,即显存。

  PC机各类存储器与CPU连接

1.15内存地址空间

  上述各类存储器有2个共同的特点:

  1.都与CPU总线相连

  2.CPU对它们进行读写的时候都是通过 控制线对内存发出读写命令

  就是说所有的存储器都被CPU当做内存来读写,不同的存储器存储单元共同构成了一个 逻辑存储器

  

  每个存储器在地址空间中占一段内存地址,CPU在这段地址上读写,实际上就是在对应的存储器上读写

  内存地址空间的大小受CPU地址总线宽度限制,不同的CPU有不同的宽度如 8086有20根地址线,2的20次方个地址即1MB,

  80386有32根地址线,2的32次方个地址即4GB

  在基于硬件编程时候必须知道不同的存储器位于内存地址空间的什么位置,如我们要让显示器显示一段文字,必须把它写到显存里,所以必须

  知道显存在内存地址空间中的位置

  

  根据8086内存地址空间分配图,我们知道地址是5位16进制数,等于20位二进制,所以地址总线是20根

  1.在00000-9FFFF是主随存储器存储单元

  2.在A0000-BFFFF是显存存储单元

  3.C0000-FFFFF是各类ROM地址空间,且是只读的,写操作没有意义

原文地址:https://www.cnblogs.com/superzhao/p/4600012.html