0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

汇编语言的产生 汇编语言的组成

冬至子 来源:Forever Keep Loving 作者:邱立威 2023-09-20 14:52 次阅读

1.机器语言

机器语言是机器指令的集合。机器指令展开来讲就是一台机器可以正确执行的命令。电子计算机的机器指令是一列二进制数字,计算机将之转变为一列高低电平,以使计算机的电子器件受到驱动,进行运算。

2.汇编语言的产生

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

机器指令:1000100111011000

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

汇编指令:MOV AX,BX

寄存器CPU可以存储数据的器件

图片

3.汇编语言的组成

由3类指令组成

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

(2)伪指令:没有对应的机器码,计算机并不执行。

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

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

4.存储器

  • CPU 是计算机的核心部件.它控制整个计算机的运作并进行运算,要想让一个CPU 工作,就必须向它提供指令和数据。
  • 指令和数据在存储器中存放,也就是平时所说的内存
  • 在一台PC机中内存的作用仅次于CPU。
  • 离开了内存,性能再好的CPU也无法工作。
  • 磁盘不同于内存,磁盘上的数据或程序如果不读到内存中,就无法被CPU 使用。

5.指令和数据

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

6.存储单元

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

图片

电子计算机的最小信息单元是bit(比特),就是一个二进制位,8bit组成一个Byte(字节),微型机存储器的存储单元可以存储Byte,128个存储单元,就可以存储128个Byte

7.CPU对存储器的读写

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

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

那么CPU是通过什么将地址、数据和控制信息传到存储芯片中的呢?

电子计算机能处理、传输的信息都是电信号,电信号当然要用导线传送。在计算机中专门有连接CPU和其他芯片的导线,通常称为总线。

物理上:一根根导线的集合;

逻辑上划分为

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

图片

CPU从内存中读取数据过程

图片

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

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

(3)存储器将3号单元中的数据 08 通过数据线送入CPU

对于8086CPU,下面的机器码能够完成从3号单元读数据:

机器码:101000000000001100000000

    含义:从3号单元读取数据送入寄存器AX
  • CPU接收这条机器码后将完成上面所述的读写工作。
  • 汇编语言:MOV AX,[3]

8.地址总线

  • CPU是通过地址总线来指定存储单元的。
  • 地址总线上能传送多少个不同的信息,就可以对多少个存储单元进行寻址
  • 一个CPU有N根地址总线,则可以说这个CPU的地址总线的宽度为N。
  • 这样的CPU最多可以寻找2的N次方个内存单元。
  • 32位计算机寻址能力 2^32= 2^10 * 2^10 * 2^10 *4 = 4GB

图片

9.数据总线

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

10.控制总线

  • 前面所讲的内存读或写命令是由几根控制线综合发出的:
    • 其中有一根名为读信号输出控制线负责由CPU 向外传送读信号,CPU 向该控制线上输出低电平表示将要读取数据;
    • 有一根名为写信号输出控制线负责由CPU向外传送写信号。

11.内存地址空间概述

什么是内存地址空间呢?

一个CPU的地址线宽度为10,那么可以寻址1024个内存单元,这1024个可寻到的内存单元就构成这个CPU的内存地址空间。下面深入讨论。

首先需要介绍两部分基本知识,主板和接口卡。

12.主板

在每一台PC机中,都有一个主板,主板上有核心器件和一些主要器件。

这些器件通过总线(地址总线、数据总线、控制总线)相连。

13.接口卡

计算机系统中,所有可用程序控制其工作的设备,必须受到CPU的控制。

CPU对外部设备不能直接控制,如显示器、音箱、打印机等。直接控制这些设备进行工作的是插在扩展插槽上的接口卡。

14.各类存储器芯片

从读写属性上看分为两类:

随机存储器(RAM)和只读存储器(ROM

从功能和连接上分类:

随机存储器RAM

装有BIOS的ROM

接口卡上的RAM

PC机中各类存储器的逻辑连接情况

装有BIOS的ROM

    BIOS:Basic Input/Output System,基本输入输出系统。

    BIOS是由主板和各类接口卡(如:显卡、网卡等)厂商提供的软件系统,可以通过它利用该硬件设备进行最基本的输入输出。在主板和某些接口卡上插有存储相应BIOS的ROM。

图片

15.内存地址空间

上述的那些存储器在物理上是独立的器件。

但是它们在以下两点上相同:

  • 1、都和CPU的总线相连。
  • 2、CPU对它们进行读或写的时候都通过控制线发出内存读写命令。

将各类存储器看作一个逻辑存储器:

  • 所有的物理存储器被看作一个由若干存储单元组成的逻辑存储器;
  • 每个物理存储器在这个逻辑存储器中占有一个地址段,即一段地址空间;

CPU在这段地址空间中读写数据,实际上就是在相对应的物理存储器中读写数据。

图片

  • 假设,上图中的内存空间地址段分配如下:
    • 地址0~7FFFH的32KB空间为主随机存储器的地址空间;
    • 地址8000H~9FFFH的8KB空间为显存地址空间;
    • 地址A000H~FFFFH的24KB空间为各个ROM的地址空间。

图片

内存地址空间

  • 最终运行程序的是CPU,我们用汇编编程的时候,必须要从CPU角度考虑问题。(我们学习这门课程的核心思维)
  • 对CPU来讲,系统中的所有存储器中的存储单元都处于一个统一的逻辑存储器中,它的容量受CPU寻址能力的限制。这个逻辑存储器即是我们所说的内存地址空间。

小结:

(1)汇编指令是机器指令的助记符,同机器指令一一对应。

(2)每一种CPU都有自己的汇编指令集。

(3)CPU可以直接使用的信息在存储器中存放。

(4)在存储器中指令和数据没有任何区别,都是二进制信息。

(5)存储单元从零开始顺序编号。

(6)一个存储单元可以存储 8 个 bit (用作单位写成“b”),即 8 位二进制数。

(7)1B = 8b 1KB = 1024B

1MB = 1024KB   1GB = 1024MB

(8)每一个CPU芯片都有许多管脚,这些管脚和总线相连。也可以说,这些管脚引出总线。一个CPU可以引出三种总线的宽度标志了这个CPU的不同方面的性能:

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

检测

**(1)**CPU的寻址能力为8KB,那么它的地址总线的宽度为 位。解:1KB=1024B,8KB=1024B*8=2^N,N=13。 则地址总线的宽度为13位

**(2)**1KB的存储器有 *****个存储单元,存储单元的编号从 到 ***** 。解:回顾前面:一个存储单元可以存储 8 个 bit (用作单位写成“b”),即 8 位二进制数。 即:1KB=1024B=1024*8bit 故有1024个存储单元,存储单元的编号从0开始到1023

**(3) 1KB的存储器可以存储 __ 个bit, _**个Byte。解:1KB=1024Byte=1024*8bit=8192bit

**(4)1GB是个Byte、1MB是 **_个Byte、1KB是 __ ___个Byte。解:1GB=1024 * 1024 * 1024=1073741824Byte 1MB=1024*1024=1048576Byte 1KB=1024Byte

**(5)**8080、8088、80296、80386的地址总线宽度分别为16根、20根、24根、32根,则它们的寻址能力分别为: (KB)、 (MB)、 (MB)、___(GB)。解:由第一题得知:2^N=寻址能力(N为地址总线的宽度即现在题目中的16、20....) 则:2^16=65536byte=64kb 2^20=1048576byte=1mb 2^24=16777216byte=16mb 2^32=4294967296byte=4GB

(6) 8080、8088、8086、80286、80386的数据总线宽度分别为8根、8根、16根、16根、32根。则它们一次可以传送的数据为: (B)、 _(B)、 __ (B)、 (B)、 __ (B)。解:由前面的知识可知: (一)8根数据总线一次可以传送8位二进制数据(即一个字节)。 (二)一个存储单元可以存储 8 个 bit (用作单位写成“b”),即 8 位二进制数。 (三)1Byte = 8bit 则:答案为:1 1 2 2 4

**(7) 从内存中读取1024字节的数据,8086至少要读 _ 次,80386至少要读 __**次。解:由上题可知:8086为16根数据总线,一次可以传送16位二进制数据(即两个字节)。 1024/2=512(次) 80386为32根数据总线,一次可以传送32位二进制数据(即四个字节)。 1024/4=256(次)

(8) 在存储器中,数据和程序以 _ 形式存放。解:在存储器中指令和数据没有任何区别,都是二进制信息,所以以二进制形式存放。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 存储器
    +关注

    关注

    38

    文章

    7484

    浏览量

    163759
  • 汇编语言
    +关注

    关注

    14

    文章

    409

    浏览量

    35793
  • 逻辑控制器
    +关注

    关注

    0

    文章

    40

    浏览量

    9522
  • 机器语言
    +关注

    关注

    0

    文章

    35

    浏览量

    10752
收藏 人收藏

    评论

    相关推荐

    什么是汇编语言

    文章目录前言一、 汇编语言简介1.1 什么是汇编语言1.2机器语言简介1.3 汇编语言的演变史1.4 汇编语言的广义
    发表于 02-24 07:01

    汇编语言程序设计pdf

    汇编语言程序设计的内容:每种高级语言程序在连接为可执行程序之前,都必须被编译为汇编语言程序,因此对于高级语言程序设计者来说,了解编译器如何生成汇编语
    发表于 10-21 17:38 0次下载
    <b class='flag-5'>汇编语言</b>程序设计pdf

    汇编语言程序设计下载

    professional assembly language 汇编语言程序设计本书分为三部分。第一部分讲解汇编语言程序设计环境基础,第二部分研究汇编语言程序设计,最后一部分讲解高级汇编语言
    发表于 10-21 17:42 0次下载
    <b class='flag-5'>汇编语言</b>程序设计下载

    DSP汇编语言编程基础

    DSP汇编语言编程基础 一、  实验目的 1、了解 DSP 的寻址方式; 2、了解 DSP 的汇编语言与 C语言混合编程。 二、  实验器材 1、安装有 CCS的 PC
    发表于 02-11 09:41 207次下载

    汇编语言自学教程

    汇编语言自学教程 汇编语言(AssemblyLanguage)是面向机器的程序设计语言。在汇编语合中,用助记符(Memoni)代替操作码,用地址符号(Symbol)或标号(Label
    发表于 03-15 14:24 511次下载

    汇编语言程序结构

    实 验   汇编语言程序结构 一、实验目的 1.掌握汇编语言程序上机过程。    2.掌握汇编语言结构。
    发表于 09-28 23:11 2866次阅读

    汇编语言详解

    汇编语言(Assembly Language)是面向机器的程序设计语言。   汇编语言中,用助记符(Memoni)代替操作码,用地址符号(Symbol)或标号(Label)代替地址码。这样用符号代替机器
    发表于 06-30 10:28 4149次阅读

    Linux中的汇编语言

    在阅读Linux源代码时,你可能碰到一些汇编语言片段,有些汇编语言出现在以.S为扩展名的汇编文件中,在这种文件中,整个程序全部由汇编语言组成
    发表于 04-07 20:43 55次下载

    Assemble汇编语言设计技术

    汇编语言 设计程序,是所有程序语言的基本资源。我们不管你使用除汇编语言或指令代码以外的程序语言编程,仅仅是编程表达、编程规则和变成环境的变化,但是这些变化都是基于汇
    发表于 07-07 15:47 0次下载

    ARM汇编语言官方手册(中文)

    ARM汇编语言官方手册(中文)汇编语言ARM汇编语言官方手册(中文)
    发表于 12-28 15:02 212次下载

    汇编语言

    汇编语言举例,比如读寄存器内容的源代码、汇编语言制作的光带菜单及源程序、获得操作系统版本的汇编源代码等
    发表于 12-31 10:40 33次下载

    汇编语言学习课件_汇编语言程序组织

    第四章 汇编语言程序组织 4.1 汇编语言语句格式 4.2 汇编语言源程序结构 4.3 常用伪指令 4.4 汇编语言操作符 4.5
    发表于 12-31 10:41 0次下载

    汇编语言学习课件_汇编语言高级编程技巧

    第八章 汇编语言高级编程技巧 8.1 模块化程序设计 8.2 汇编语言程序与高级语言程序的连接 8.3 使用DOS EXEC功能执行程序 8.4 TSR程序设计
    发表于 12-31 10:41 0次下载

    汇编语言程序设计自学教程

    汇编语言程序设计自学教程,帮助自学者掌握汇编语言的自行设计与编程。
    发表于 04-06 15:47 40次下载

    高级语言汇编语言_机器语言的区别

    本文首先介绍了高级语言的优缺点、汇编语言的优缺点及使用汇编语言的理由,其次介绍了机器语言的优缺点,最后阐述了高级语言
    的头像 发表于 04-16 10:28 3w次阅读