zoukankan      html  css  js  c++  java
  • 汇编语言--基础知识

    1.1 机器语言,汇编语言,高级语言

    机器语言是计算机能直接运行的语言,是二进制语言,属于低级语言;汇编语言是面向机器的低级语言,不能被机器直接识别,需要编译;高级语言是从人类的逻辑思维角度出发的计算机语言,不能被机器直接识别,需要编译。

    机器语言

    机器语言是一种指令集的体系,它是用二进制代码表示的语言,是计算机唯一可以直接识别和执行的语言,它具有计算机可以直接执行、简洁、运算速度快等优点,但它的直观性差,非常容易出错,程序的检查和调试都比较困难,此外对机器的依赖型也很强。

    汇编语言

    汇编语言是面向机器的程序设计语言,它是为了解决机器语言难以理解和记忆的缺点,用易于理解和记忆的名称和符号表示机器指令中的操作码,这样用符号代替机器语言的二进制码,就把机器语言变成了汇编语言;于是汇编语言亦称为符号语言。

    使用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序,汇编程序是系统软件中语言处理系统软件。汇编程序把汇编语言翻译成机器语言的过程称为汇编。

    高级语言

    高级语言为用户提供了一种既接近与自然语言,又可以使用数学表达式,还相对独立于机器的工作方式。与汇编语言一样,机器也不能直接执行用高级语言编写的程序。

    高级语言并不是特指的某一种具体的语言,而是包括很多编程语言,如目前流行的java,c,c++,C#,pascal,python等等。

    高级语言有更强的表达能力,可方便地表示数据的运算和程序的控制结构,能更好的描述各种算法,而且容易学习掌握。但它编译生成的程序代码一般比用汇编程序语言设计的程序代码要长,执行的速度也慢。

    1.2 汇编语言的产生

    机器指令:1000100111011000

    操作:寄存器BX的内容发送到AX中

    对应的汇编指令:MOV AX,BX

    寄存器:cpu中可以存储数据的器件,一个cpu中有多个寄存器。

    AX是其中一个寄存器的代号

    BX是其中一个寄存器的代号

    计算机能读懂的只有机器指令,如何让计算机读懂汇编指令

    1.3 汇编语言的组成

    1、汇编指令(机器码的助记符)

    2、伪指令(由编译器执行)

    3、其他符号(由编译器识别)

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

    1.4 存储器

    要想要cpu工作,必须向它提供指令和数据。指令和数据在存储器(内存)中存放。cpu如何调用内存,如何和内存打交道?

    磁盘上的数据或者程序如果不读到内存中,就无法被cpu使用。要灵活地利用汇编语言编程,我们首先要了解cpu是如何从内存中读取信息,以及向内存中写入信息的。

    1.5 指令和数据

    指令和数据是应用上的概念。在内存或磁盘上,指令和数据没有任何区别,都是二进制信息。cpu在工作的时候把有的信息看作指令,有的信息看作数据,为同样的信息赋予了不同的意义。(由人来进行决定是指令还是数据)

    例如,内存中的二进制信息 1000 1001 1101 1000

    计算机可以把它看作大小为89D8H(HEX 代表16进制、B代表二进制)的数据来处理,也可以将其看作指令mov ax,bx来执行。

    1.6 存储单元

    存储器被划分为若干个存储单元,每个存储单元从0开始编号,例如一个存储器有128个存储单元,编号从0~127。

    计算机最小信息单位是bit,也就是一个二进制位
    一个字节等于8个比特 1byte=8bit
    微型机存储器的一个存储单元可以存储一个byte,128个存储单元的存储器,容量是128个字节。

    大容量的存储器一般用以下单位来计量容量(B代表Byte):
    1KB=1024B
    1MB=1024KB
    1GB=1024MB
    1TB=1024GB

    1.7 CPU对存储器的读写

    CPU要从内存中读数据,首先要指定存储单元的地址。
    CPU要想进行数据的读写,必须和外部器件进行下面三类信息的交互。

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

    三类信息的交互属于电信号,要用导线传送。
    连接CPU和其他芯片的导线,通常称为总线。总线从物理上来讲,就是一根根导线的集合,根据传递信息的不同,总线从逻辑上又分为3类,地址总线、控制总线和数据总线。
    CPU从3号单元中读取数据的过程如下:

    (1)CPU通过地址线将地址信息3发出。
    (2)CPU通过控制线发出内存读命令,选择存储器芯片,并通知它,将要从中读取数据。
    (3)存储器将3号单元中的数据8通过数据线送入CPU

    我们知道了CPU如何进行数据读写的。可是,如何命令计算机进行数据的读写?
    要让一个计算机或微处理器工作,应向它输入能够驱动它进行工作的电平信息(机器码)
    机器码:10100001 00000011 00000000
    含义:从3号单元读取数据送入寄存器AX
    汇编指令:MOV AX,[3]

    1.8 地址总线

    CPU是通过地址总线来指定存储器单元的。可见地址总线上能传送多少个不同的信息,CPU就可以对多少个存储单元进行寻址。

    上图展示了一个具有10根地址线的CPU向内存发出地址信息11(1011=11)时10根地址线上传送的二进制信息。

    一个CPU有N根地址线,则可以说这个CPU的地址总线的宽度为N。这样的CPU最多可以寻找2的N次方个内存单元。

    1.9 数据总线

    1.10 控制总线

  • 相关阅读:
    高校教师职评
    高校教师曝职评内幕:混行政圈比科研圈更重要
    【50.88%】【Codeforces round 382B】Urbanization
    【64.22%】【codefoces round 382A】Ostap and Grasshopper
    【u253】售货厅
    【u250】manhattan
    【19.77%】【codeforces 570D】Tree Requests
    【t063】最聪明的机器人
    Java Web整合开发(38) -- Log4J
    公网 or 内网
  • 原文地址:https://www.cnblogs.com/TaoLeonis/p/14599053.html
Copyright © 2011-2022 走看看