第一章 基础知识

前言

根本目的:

获得底层汇编体验

深刻理解继续运行程序的机理

 

第一章 基础知识

1.1 机器语言

机器语言是机器指令的集合。

机器始终是一列二进制数字,计算机将之转变为一列高低电平,是计算机的电子器件收到驱动,进行运算。

 

1.2 汇编语言的产生

汇编语言的主体是汇编指令。

汇编指令是机器指令便于记忆的书写格式。

例如:

操作:寄存器BX的内容送到AX中
机器指令:1000010011101100
汇编指令:mov ax,bx

寄存器:简单的说是CPU中可以存储数据的器件,一个CPU中有多个寄存器。

程序员用汇编指令编写源程序,再用汇编编译器将其编译为机器码,由计算机执行。

 

1.3 汇编语言的组成

汇编语言由3类指令组成

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

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

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

 

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

 

1.4 存储器

CPU是计算机的核心部件,它控制整个计算机的运行并进行运算。

想让CPU工作,必须有指令和数据。

指令和数据在存储器中存放。(也就是我们说的内存)

 

1.5 指令和数据

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

 

1.6 存储单元

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

存储器有多少个存储单元,就能存储多少个字节(Byte)。

1KB = 1024B 1MB=1024KB 1GB=1024MB

1TB=1024GB

 

1.7 CPU对存储器的读写

CPU要从内存中读数据,首先要指定存储单元的地址。

CPU在读写数据时,还要指明,要对那个器件进行操作。

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

(1)存储单元的地址(地址信息)

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

(3)读或写的数据(数据信息)

CPU通过导线来传输电信号到其他芯片。

专门连接CPU和其他芯片的的导线叫做总线。

根据传送信息的不同,总线从逻辑上又分为3类:地址总线、控制总线、数据总线。

CPU读写数据的过程

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

(2)CPU通过控制线发出内存读、写命令,选择存储芯片,并通知他,将要读、写数据

(3)存储器、CPU将数据通过数据线传入CPU、存储器

 

1.8 地址总线

CPU通过地址总线来指定存储器单元。

地址总线上能传送多少个不同的信息,CPU就可以对多少个存储单元进行寻址。

一个CPU有N根地址线,则可以说这个CPU的地址总线的宽度为N。这样的CPU最多可以寻找2的N次方内存单元。

 

1.9 数据总线

CPU通过数据总线来进行与内存或其他器件之间的数据传输。

数据总线的宽度决定了CPU和外界数据的传送速度。

8个数据总线一次可以传送一个8位二进制数据(即一个字节)

 

1.10 控制总线

CPU通过控制总线来进行对外部器件的控制。

控制总线的宽度决定了CPU对外部器件的控制能力。

 

1.1~1.10 小结

(1)汇编指令是机器指令的助记符,同机器指令一一对应。

(2)每一种CPU都有自己的汇编指令集。

(3)CPU可以直接使用的信息在存储器中存放。

(4)在存储器中指令和数据没有任何区别,都是二进制信息。

(5)存储单元从零开始顺序编号。

(6)一个存储单元可以存储8个bit,即8位二进制数。

(7)1Byte=8bit 1KB=1024B 1MB=1024KB 1GB=1024MB

(8)每一个CPU芯片都有许多的管脚,这些管脚和总线相连。

 

1.11 内存地址空间(概述)

CPU可以寻找到的内存单元构成CPU的内存地址空间。

 

1.12 主板

每台PC机中,都有一个主板,主板上有核心器件和一些主要器件,这些器件通过总线相连。

 

1.13 接口卡

计算机系统,所有可以程序控制其工作的设备,必须受到CPU的控制。CPU对外部设备都不能直接控制。直接控制这些设备进行工作的是插在扩展槽上的接口卡。扩展槽通过总线和CPU相连。

CPU通过总线向接口卡发送命令,接口卡根据CPU的命令控制外设进行工作。

 

1.14 各类存储器芯片

一台PC中,有多个存储器芯片,这些存储器从物理上看是独立的、不同的器件。

从读写属性上看分为两类:随机存储器(RAM)和只读存储器(ROM)

存储器从功能和连接上又可以分为以下几类:

随机存储器:存放供CPU使用的程序和数据。

装有BIOS的ROM:通过它利用硬件进行基本的输入输出。

接口卡上的RAM:某些接口卡需要对大批量输入、输出数据进行暂时存储,在其上装有RAM。如显存

 

1.15 内存地址空间

上述的存储器,在物理是独立的器件,但是在以下两点上相同。

(1)都和CPU的总线相连

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

CPU在操作它们的时候,都把它们当做内存来对待,把它们看出由若干个存储器组成的逻辑存储器。这个逻辑存储器就是内存地址空间。

 

8086PC内存地址分配的基本情况:

      

 

A0000~BFFFF是显存地址空间

0~9FFFF是主存储器地址空间

C0000~FFFFF是各类ROM地址空间。

 

内存地址空间:

最终运行程序的是CPU,用汇编语言编程时要从CPU的角度考虑问题。对CPU来说,系统中所有存储器的存储单元都处于一个统一的逻辑存储器中,它的容量受CPU寻址能力限制。这个逻辑存储器即是内存地址空间。

 

posted @ 2018-09-21 19:35  LWEISS  阅读(133)  评论(0编辑  收藏  举报