*****本章学习*****

一、学习目标

• 了解机器语言->汇编语言->其他编程语言进化趋势

•  了解汇编语言源程序的组成

•  理解计算机硬件系统的基本结构

•  掌握内存地址空间

 

二、学习内容

1、计算机编程语言的演进

2、汇编语言源程序的组成

3、计算机硬件系统的基本结构

4、内存地址空间

 

~~~1、计算机编程语言的演进

机器语言->汇编语言->高级语言

• 机器语言

         

 

 

这样的代码晦涩难懂而且不易查错,如果程序里有一个“1”被误写为“0”,后果不堪设想

&&知识点:

(1)机器语言是机器指令的集合,机器指令是0和1构成的二进制信息

(2)机器语言直接面向机器,与机器的硬件操作一一对应,计算机可以直接识别、执行,使用机器语言可以充分发挥计算机的硬件功能

(3)缺点:依赖机器硬件,机器指令很难记忆,直接使用机器语言编制程序极易出错,并且难以调试

 

• 汇编语言

  

汇编语言和机器语言相比就直观很多,更便于记忆

汇编语言能够直接控制硬件,主要用于操作系统的核心程序段

&&知识点:

(1)汇编语言的主体是汇编指令

(2)汇编指令和机器指令的差别在于指令的表示方法上,汇编指令是机器指令的助记符

(3)不同的CPU有不同的汇编指令

eg:

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

机器指令:1000100111011000

汇编指令:mov ax,bx

 

• 高级语言

直观,简单,面向人类的语言,比前面两种语言都好记

已经学过或者正在学的语言有C,C++,java三种语言

高级语言的代码结果不会因为不同的CPU而产生不同的结果,具有很强的通用性

&&知识点:

(1)面向程序设计人员,接近于自然语言,使用方便,不依赖具体的计算机

(2)高级语言对计算机操作步骤进行描述有一整套标记符号、表达格式、结构及其使用的语法规则

 

Conclusions:

 

• 汇编语言改善了机器语言的不直观性

• 从目标代码的长度和程序运行时间的角度上看,汇编语言程序与机器语言程序是等效的

 

高级语言程序做对应的目标代码往往比机器语言程序要长得多,当然运行所需时间也更多

 

                                                                            机器语言 vs. 汇编语言 vs. 高级语言

 

~~~2、汇编语言源程序的组成

• 汇编语言源程序示例

• 汇编语言的组成

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

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

(3)其他符号:由编译器识别,没有对应的机器码

 

Conclusions:

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

 

ps:第三和第四部分相对前两部分我自己不是很熟,做题的时候反应就比较慢,而且理解起来也没有前面那么容易,所以整理的时候内容比较多

~~~3、计算机硬件系统的基本结构

• Review:计算机系统的组成

 冯.诺依曼体系结构

 

• 相关基础知识

(1)寄存器

CPU内部用于存储数据的器件

一个CPU中有多个寄存器

 

(2)存储器、存储单元

存储器以字节为单位被划分为若干个存储单元

每个存储单元从0开始顺序编号

存储器的容量通常用KB、MB、GB、TB、PB计

         

eg:

一个存储器有128个存储单元

编号从0~127

(3)指令和数据

在内存或磁盘上,指令和数据都以二进制形式存在,在形式上没有任何区别

指令和数据是应用上的概念

 

 

• 计算机硬件系统的基本结构

 

• 计算机的基本工作原理

 

• CPU对存储器的读&写

CPU要想进行数据的读写,必须和外部器件进行以下3类信息的交互:

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

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

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

 

Conclusions:

(1)存储器的容量是以字节为最小单位来计算的

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

(3)8086的数据总线的宽度为16根,即一次传送的数据为2B

 

~~~4、内存地址空间

 

• 内存地址空间的概念

 

内存地址空间,也称寻址空间

与CPU地址总线的宽度直接相关,表示CPU所能寻找到的最大地址空间范围

• 基础知识:主板、接口卡

a.主板

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

(2)这些器件通过总线相连,根据总线上传输的信息,从逻辑上分为地址总线、数据总线、控制总线

b.接口卡

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

(2)CPU对外部设备不能直接控制,需要通过接口卡控制

• 各类存储器芯片

 

• 深入理解内存地址空间

(1)各类存储器芯片的小结

这些存储器芯片在物理上是各自独立的器件

但它们都与CPU总线相连,CPU对其读或写时都通过控制线发出内存读写命令

(2)内存地址空间

CPU在操控这些独立的物理存储器时,把它们统一当作一个逻辑存储器看待,这个逻辑存储器即内存地址空间

每个物理存储器都占有一段地址空间,CPU在这个段地址空间中读写数据,实际上就是在相应的物理存储器中读写数据

不同的计算机系统的内存地址空间分配情况是不同的

  

ps:上面的图让我想到了实验一当中的第三题。

     从地址0~9FFFF的内存单元中读取数据,实际上就是在读取主随机存储器中的数据;

     向地址A0000~BFFFF的内存单元中写数据,就是向显存中写入数据,这些数据会被显示卡输出到显示器上;

     而向地址C0000~FFFFF的内存单元中写入数据的操作是无效的,因为这等于改写只读存储器中的内容

 

conclusions:

通过这一章的学习,我初步了解的汇编语言的一些内容以及很多计算机硬件方面的知识

 

*****延伸阅读*****

https://www.tutorialspoint.com/assembly_programming/index.htm

看了这个网站,我现在明白了为什么学汇编语言一开始要学那些计算机的硬件组成,以及对各种编程语言之间关系的基本了解;

这些都是为了帮助我们更好地理解汇编语言并且学得更快;

一个处理器只能识别机器指令,而汇编语言的诞生让机器指令能够转变成汇编指令,就让这些指令变得容易理解;

要执行一个程序,需要系统把它从外部设备拷贝到内存,处理器才能执行这个程序;

一个处理器可以一次获取一个或多个字节

eg:一个十六进制的数0725H

这个数在内存中需要两个字节来存放,07是比较重要的一个字节,07和25存放的位置也有所不同

 

posted on 2018-10-04 11:44  樱花飘落の季節  阅读(232)  评论(0编辑  收藏  举报