汇编语言第1章 基础知识

Posted yinghuapiaoluo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了汇编语言第1章 基础知识相关的知识,希望对你有一定的参考价值。

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

一、学习目标

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

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

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

?  掌握内存地址空间

 

二、学习内容

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类信息的交互:

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

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

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

 

~~~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存放的位置也有所不同

 



以上是关于汇编语言第1章 基础知识的主要内容,如果未能解决你的问题,请参考以下文章

汇编语言第1章 基础知识

汇编语言第一章基础知识

第1章 基础知识小结

软考软件设计师知识模块第2章:程序设计语言基础知识

由浅入深学C语言基础(进阶与必做430题)

汇编语言第一章总结