汇编语言基础知识的理解

Posted sun-yiwen-blog

tags:

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

经过第一节课一脸懵逼导致结果惨不忍睹的小测试后,我决定好好梳理一番汇编语言的基础知识。

首先看了一下目录,来一个整体性的分析。

第一章 基础知识(list)

1.1 机器语言

1.2 汇编语言的产生

1.3 汇编语言的组成

1.4 存储器

1.5 指令和数据

1.6 存储单元

1.7 CPU对存储器的读写

1.8 地址总线

1.9 数据总线

1.10 控制总线

1.11 内存地址空间(概述)

1.12 主板

1.13 接口卡

1.14 各类存储区芯片

1.15 内存地址空间

光从目录来看,整个基础知识部分可以划分为以下几个部分:

  • 什么是汇编语言?汇编语言是如何产生的?(1.1~1.3)
  • 计算机(PC机)的硬件组成部分(1.4~1.6)
  • CPU如何对存储器进行读写(1.7~1.10)
  • 内存地址空间的相关知识(1.11~1.15)

首先,来叙说一下汇编语言是怎么来的,从计算机编程语言的演进来看,编程语言经历了从机器语言到汇编语言再到高级语言的发展历程。在机器语言十分繁琐的特点来看,但是机器语言这么难记,有的时候要是发生了一个细小的错误,比如说某个地方的0不小心写成了1,机器指令也就发生了错误。于是,汇编语言应运而生。汇编语言无疑是计算机编程语言历史上的一大突破(虽然和现在的高级语言比并没有那么大的优势)!!!

其次,来解释什么是汇编语言:汇编语言是直接在硬件上工作的编程语言。所以使用汇编语言可以直接有效的访问和控制计算机的各种硬件设备。使得汇编语言具有高速度高效率的特点。

但是,汇编语言毕竟不是机器指令,那么计算机是如何识别这些指令的呢?

事实上,汇编语言的主体是汇编指令,而机器只能识别机器指令。但这个时候只需要一个编译器,也就是翻译,将汇编指令翻译成机器指令,从而计算机就可以识别我们的汇编语言啦!

最后,汇编语言拥有3类指令:

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

          (2)伪指令:没有对应的机器码!没有对应的机器码!没有对应的机器码!(重要的事情说三遍!此处献给我踩的第一个坑),由编译器执行,计算机并不执行

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

 

 

About~计算机(PC机):讲到计算机,一定听说过CPU,CPU是计算机的核心(芯片,微处理器),计算机所有的运行和计算都依赖于CPU。但是CPU的工作需要数据和指令的共同作用。数据和指令同时被存储在存储器中,来给CPU的运行提供操作。此处的数据和指令都是以二进制的形式存放在存储器中的。也许我们会疑问,如何区别数据和指令?此处献给我踩的第二个坑~~ 实际上,在内存中,指令和数据都以二进制形式存放,在形式上没有任何差别在应用时基于上下文加以区别。(注:这句划绿色的句子是我从我错题的解析上看来的,但我也没理解基于上下问是个什么意思)但我根据后面寄存器的学习,我知道指令和数据时存放在不同的寄存器里面的,寄存器也分几个种类,不同类别的寄存器所实现的功能是不同的。(在我的另外一篇博文中可以看到CS&IP寄存器是如何被读取的https://www.cnblogs.com/Sun-Yiwen-blog/p/9676229.html)存储器被划分成从0开始编号的各个单元,通常一个存储单元可以存储一个Byte,也就是8个二进制位。

 

 

CPU对存储器的读写:在真正分析整个过程之前,我们需要对总线(贯穿整个系统)有一定的理解。CPU芯片都有许多管脚,与总线相连。CPU可以引出3中总线的宽度(标志了这个CPU不同方面的性能)

总线在逻辑上分类为:地址总线;控制总线;数据总线;

  • 地址总线的宽度决定了CPU的寻址能力(N根地址线,则地址总线的宽度为N,这样的CPU最多可以寻找2^N个内存单元)
  • 数据总线的宽度决定了CPU与其他器件进行数据传送时一次的数据传送量(8根数据总线一次可传送一个字节,16根数据总线一次可以传送两个字节)
  • 控制总线的宽度决定了CPU对系统中其他器件的控制能力(有多少根控制总线,就意味着CPU提供了对外部器件有多少种控制)

 

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

 

(1)存储单元的地址(存储的东西放在哪里)

(2)器件的选择,读或写的命令(用什么东西,干什么事情)

(3)读或写的数据(所做工作的内容)

 

读步骤:

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

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

(3)存储器将数据通过数据线送入CPU。

 

写步骤:

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

(2)CPU通过控制线发出内存读命令,选中存储器芯片,并通知它,将要向其中写入数据。

(3)存储器将数据通过数据线送入CPU。

 

 

内存地址空间:

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

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

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

相关说明:

① 内存地址空间是逻辑上的概念

② 内存地址空间,即CPU寻址空间,与CPU地址总线宽度直接相关;

内存地址空间的容量与平时所讲的内存条的容量不是一回事;

④ 不同的计算机系统内存地址空间如何使用有不同的分配方案

 

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

CCF ADL92:自然语言理解:新学习方法及知识

基础知识

Hanlp中文自然语言处理入门基础知识

Java基础 | 深入理解在语言中引入“继承”的概念

编程语言的一些基础理解

mysql语言的理解单选题怎么选