zoukankan      html  css  js  c++  java
  • 《汇编语言》第一章知识梳理

    简要说明

    本人当前为一名大二学生,网络工程专业。本学期选修了《汇编语言》这门课程,作为一项作业任务,同时也是为了梳理所学知识,更好地理解和掌握汇编语言撰写了这篇博客。我所用的教材是由清华大学出版社出版的《汇编语言》第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在操控它们的时候,把它们都当作内存来看待,把它们总的看作一个由若干存储单元组成的逻辑存储器,即我们所说的内存地址空间。

  • 相关阅读:
    centos7中Apache,MySQL,php安装和项目
    centos7中Apache,MySQL,php安装
    tp5中index.php的隐藏
    php打印
    绝对与相对的区别
    tinkphp框架中config.php中数组中参数的意义
    tinkphp框架开启调试
    获取唯一随机数
    如何在magento中建立自定义页面
    获取用户邮寄地址
  • 原文地址:https://www.cnblogs.com/kevin234/p/9709042.html
Copyright © 2011-2022 走看看