《汇编语言》第一章知识梳理

简要说明

本人当前为一名大二学生,网络工程专业。本学期选修了《汇编语言》这门课程,作为一项作业任务,同时也是为了梳理所学知识,更好地理解和掌握汇编语言撰写了这篇博客。我所用的教材是由清华大学出版社出版的《汇编语言》第3版(图片如下),以下的内容来自于但不限于教材以及老师的课件。

转载请注明出处:https://www.cnblogs.com/kevin234/p/9709042.html 

汇编语言


 目录

  1. 计算机编程语言的演进
  2. 汇编语言源程序的组成
  3. 计算机硬件系统的基本结构
  4. CPU对存储器的读写和总线
  5. 内存地址空间

计算机编程语言的演进

  过程:机器语言——>汇编语言——>高级语言

  • 机器语言:是机器指令(即0和1构成的二进制信息)的集合。它直接面向机器,计算机可以直接识别、执行。缺点是依赖机器硬件,难以记忆和调试。
  • 汇编语言:是机器指令的助记符,便于人类记忆和使用。汇编语言的主题是汇编指令,不同的CPU有不同的汇编指令。
  • 高级语言:面向程序设计人员,接近自然语言,易学易记,通用性强,不依赖于具体计算机。

实例对比三种语言

编程完成运算c=a+b

10100000 0000000000000000

00000010 00000110 0000000000000001

10100010 0000000000000010

mov al,a

add al,b

mov c,al

c=a+b
机器语言 汇编语言  c语言

 

三种语言对比

  机器语言 汇编语言 高级语言
计算机能否直接识别 能  不能   不能
易用性  差  中 好 
占据空间  小 大 
执行速度  快 快   慢
用途  特殊

加密/解密

系统核心要求速度快,代码短的程序

直接操纵I/O信息安全

 

一般性系统级和应用层软件开发 


汇编语言源程序的组成

  • 汇编代码示例
 1 ; This is a 8086 assemble program
 2 assume  cs:code, ds:data
 3 data    segment    
 4     string     db    'hi~ everyone$'
 5 data    ends
 6 code    segment    
 7 start:    mov    ax,data
 8     mov    ds,ax
 9     mov    dx, offset string
10     mov    ah,09h
11     int    21h
12     mov    ah,4ch
13     int    21h
14 code    ends
15     end    start
  • 汇编语言组成
    • 汇编指令 (机器码的助记符,有对应的机器码)

    • 伪指令 (由编译器识别,无对应的机器码)

    • 其它符号 (由编译器识别,无对应的机器码)

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


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

  • 计算机系统的组成

  • 相关基础知识
    • 寄存器:CPU内部用于存储数据的器件。 一个CPU中有多个寄存器
    • 存储器、存储单元:存储器以字节为单位被划分为若干个存储单元。 每个存储单元从0开始顺序编号。
    • 指令和数据:在内存或磁盘上,指令和数据都以二进制形式存在,  在形式上没有任何区别。指令和数据是应用上的概念。

CPU对存储器的读写和总线

CPU对存储器的读写

CPU想从内存中读数据,首先要指定存储单元的地址。另外,CPU还要指明它要对哪一个器件进行操作,因为在一台微机中不止存储器这一种器件,还要指明进行哪种操作,是从中读出数据,还是向里面写入数据。

由此可见,CPU要进行数据的读写,必须和外部器件(标准的说法是芯片)进行3类信息的交互。

  • 存储单元的地址(地址信息)
  • 器件的选择,读或写的命令(控制信息)
  • 读或写的数据

3类总线

那么CPU是通过什么将地址、数据和控制信息传到存储器芯片的呢?电子计算机能处理、传输的信息都是电信号,电信号当然由导线来传送。在计算机中专门有连接计算机和其他芯片的导线,通常称为总线。根据传送信息的不同,总线从逻辑上又分为3类:地址总线、控制总线和数据总线。

  • 地址总线:其宽度决定了CPU的寻址能力
  • 数据总线:其宽度决定了CPU与其他器件进行数据传送时的一次数据传送量
  • 控制总线:其宽度决定了CPU对系统中其他器件的控制能力

内存地址空间

  • 概念:设一个CPU的地址总线宽度为n,那么可以寻址2n个内存单元,这2n个可寻到的内存单元就构成这个CPU的内存地址空间,也称寻址空间。
  • 基础知识
    • 主板:在每一台PC机中,都有一个主板,主板上有核心器件和一些主要器件。 这些器件通过总线相连。根据总线上传输的信息,从逻辑上分为地址总线、数据总线、控制总线。
    • 接口卡:计算机系统中,所有可以用程序控制其工作的设备,必须受到CPU的控制。 CPU对外部设备不能直接控制,如显示器、音箱、打印机等。直接控制这些设备进行工作的是插在扩展插槽上的接口卡
  • 各类存储器芯片

上述那些存储器,在物理上是独立的器件,但有2点是相同的,即:①都和CPU总线相连;②CPU对它们进行读或写的时候都通过控制线发出内存读写命令;

这也就是说,CPU在操控它们的时候,把它们都当作内存来看待,把它们总的看作一个由若干存储单元组成的逻辑存储器,即我们所说的内存地址空间。

原文地址:https://www.cnblogs.com/kevin234/p/9709042.html