汇编语言基本知识

汇编语言基本知识

引言

  汇编语言是直接在硬件之上互作的编程语言,首先要了解硬件系统的结构,才能有效的应用汇编语言对其编程。这段部分是枯燥的基础知识。

1.1机器语言

  • 机器语言是机器指令的集合。
  • 机器指令展开来讲就是一台机器可以正确执行的命令。
  • 机器码:以1、0组合而成的,能让cpu直接解读的数据

1.2汇编语言的产生

  • 汇编语言的主体是汇编指令。
  • 汇编指令和机器指令的差别在于指令的表示方法上。汇编指令时机器指令便于记忆的书写格式。
  • 汇编指令是机器指令的助记符。

例:mov AX,BX  即寄存器BX的内容送到AX中(这样的写法与人类语言接近,方便阅读与记忆

寄存器

  简单的讲是CPU中可以存储数据的器件,一个CPU中有多个寄存器。AX、BX均为其中一个寄存器的代号。值得注意的是,寄存器并不是CPU的高级缓存。

基本流程

汇编流程图

示例:

VS汇编语言示例

  如图可看到C++语句:X = 0.5 * (x + a / x) 的汇编语言,左列为机器指令,右列为对应的汇编语言,可发现两者一一对应。

1.3汇编语言的组成

  • 汇编语言由一下3类组成:
    1. 汇编指令
    2. 伪指令(由编译器执行)
    3. 其他符号(由编译器识别)
  • 汇编语言的核心是汇编指令,它决定了汇编语言的特性。

1.4存储器

  • CPU是计算机的核心部件,他控制整个计算机的运作并进行运算,要想让一个CPU工作,就必须向它提供指令和数据。
  • 指令和数据在存储器中存放,也就是平时说的内存。

1.5指令和数据

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

1.6存储单元

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

1.7CPU对存储器的读写

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

  • 存储单元的地址
  • 期间的选择,读或写命令
  • 读或写的数据

在计算机中专门有链接CPU和其他芯片的导线,通常称为总线。

逻辑上分为:

  • 地址总线
  • 控制总线
  • 数据总线

总线示意图

1.8地址总线

  • CPU是通过地址总线来指定存储单元的。
  • 地址总线上能转送多少个不同的信息,CPU就可以对多少个存储单元进行寻址。
  • 一个CPU有N根地址总线,则可以说这个CPU的地址总线宽度为N。
  • 这样的CPU最多可以寻找2的N次方哥内存单元。

地址总线

1.9数据总线

  • CPU与内存或其他器件之间的数据传送说通过数据总线来进行的。
  • 数据总线的宽度决定了CPU和外界的数据传送速度。

1.10控制总线

  • CPU对外部器件的控制是通过控制总线来进行的。在这里控制总线是个总称,控制总线是一些不同可控制线的集合。
  • 有多少根控制总线,就意味着CPU提供了对外部器件的多少种控制。

1.11各类存储芯片

存储芯片

1.12内存地址空间

内存地址空间