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

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

3天内不再提示

汇编语言基础知识:基本概念

CHANBAEK 来源:上下求索电子er 作者:上下求索电子er 2023-10-26 14:29 次阅读

汇编语言:基本概念

1 机器语言和汇编语言

1.1 机器语言

机器指令展开来讲就是一台机器可以正确执行的命令。电子计算机的机器指令是一列二进制数字。计算机将之转变为一列高低电平,以使计算机的电子器件受到驱动,进行运算。早期的程序设计均使用机器语言。程序员们将用0、1 数字编成的程序代码打在纸带或卡片上,1打孔,0 不打孔,再将程序通过纸带机或卡片机输入计算机,进行运算。

机器语言难于辨别和记忆, 给整个产业的发展带来了障碍。于是汇编语言产生了。

1.2 汇编语言

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

例如:机器指令1000100111011000表示把寄存器BX的内容送到AX 中。汇编指令则写成mov ax,bx。这样的写法与人类语言接近,便于阅读和记忆。

「编译器」 是能够将汇编指令转换成机器指令的翻译程序,程序员用汇编语言写出源程序,再用汇编编译器将其编译为机器码,由计算机最终执行。

2 CPU对存储器的读写

2.1 概述

CPU要从内存中读数据,首先要指定 「存储单元的地址」 。另外还要指明它要对 「哪一个器件」 进行操作,进行 「哪种操作」 ,是从中读出数据,还是向里面写入数据。

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

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

在计算机中专门有为CPU和其他部件之间提供信息(地址信息、控制信息、数据信息)的传输通道,通常称为总线。总线从物理上来讲,就是一根根导线的集合。根据传送信息的不同,总线从逻辑上又分为3类,地址总线、控制总线和数据总线。8086CPU有20条地址总线、16条控制总线和16条数据总线。

要让一个计算机或微处理器工作,应向它输入能够驱动它进行工作的电平信息(机器码)。例如:传送3 号单元的内容入AX

  • 机器码:10100001 00000011 00000000
  • 对应的汇编指令:MOV AX,[3]

2.2 地址总线

「地址总线(AB)」 用来传递地址信息。因地址总是从CPU送出去的,所以地址总线通常是单向的。假设,一个CPU有10根地址总线,如图所示,它发出地址信息11时10根地址线上传送的高低电平信号的二进制信息就为11对应的二进制数00 0000 1011。

图片

一 个 CPU有 N 根地址线,则可以说这个CPU的地址总线的宽度为N这样的CPU最多可以寻找次方个内存单元。8086CPU的20根地址线(A19A16,A15A0)可以全部用来给外部存储器提供地址,所以8086可寻址的外部存储器地址空间达字节即1MB。

2.3 数据总线

「数据总线(DB)」 用来传输数据。数据总线是双向的,即数据既可以从CPU送到其他部件,也可以从其他部件送到CPU。

数据总线的宽度 决定了CPU和外界的数据传送速度。8根数据总线一次可传送一个8位二进制数据(即一个字节),16根数据总线一次可传送两个字节。

例如,8086有16根数据线,可一次传送16位数据,所以可一次传送数据89D8H;而 8088只有 8 根数据线,一次只能传8 位数据,所以向内存写入数据89D8H时需要进行两次数据传送。

图片

图片

2.4 控制总线

「控制总线(CB)」 用来传输控制信号。其中包括CPU送往存储器和输入/输出接口的控制信号,还包括其他部件送到CPU的信号。有多少根控制总线,就意味着CPU提供了对外部器件的多少种控制。所以,控制总线的宽度决定了CPU对外部器件的控制能力。

3 各类存储器芯片

3.1 随机存储器和只读存储器。

一台PC机中,装有多个存储器芯片,这些存储器芯片从物理连接上看是独立的、不同的器件。从读写属性上看分为两类:随机存储器(RAM)和只读存储器(ROM)。

「随机存储器」 可读可写,但必须带电存储,关机后存储的内容丢失; 「只读存储器」 只能读取不能写入, 关机后其中的内容不丢失。下展示了 PC系统中各类存储器的逻辑连接情况。

图片

3.2 内存地址空间

CPU在操控存储器的时候,把它们都当作内存来对待,把它们总的看作一个由若干存储单元组成的一个逻辑存储器,这个逻辑存储器就是我们所说的内存地址空间。每个物理存储器在这个逻辑存储器中占有一个地址段,即一段地址空间。CPU在这段地址空间中读写数据,实际上就是在相对应的物理存储器中读写数据。下图展示了CPU将系统中各类存储器看作一个逻辑存储器的情况

图片

内存地址空间的大小受CPU地址总线宽度的限制。8086CPU的地址总线宽度为20, 可以传送 个不同的地址信息,即可以定位个内存单元,则8086PC的内存地址空间大小为1MB。下图展示了 8086PC机内存地址空间分配的基本情况。

图片

从地址0〜9FFFF的内存单元中读取数据,实际上就是在读取主随机存储器中的数据;向地址AOOOO-BFFFF的内存单元中写数据,就是向显存中写入数据, 这些数据会被显示卡输出到显示器上;我们向地址C0000〜 FFFFF的内存单元中写入数据的操作是无效的,因为这等于改写只读存储器中的内容。

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

    关注

    38

    文章

    7148

    浏览量

    161986
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10442

    浏览量

    206560
  • 计算机
    +关注

    关注

    19

    文章

    6649

    浏览量

    84526
  • 汇编语言
    +关注

    关注

    14

    文章

    404

    浏览量

    35194
  • 编译器
    +关注

    关注

    1

    文章

    1577

    浏览量

    48614
收藏 人收藏

    评论

    相关推荐

    求大神!!解决问题!(延时程序) 汇编语言知识!!!

    求大神!!解决问题!(延时程序) 汇编语言知识!!!单片机(用汇编语言编程)若时钟为12MHz编制如下延时程序。 (1) 延 时500ms(2) 延时1s{:1:} {:1:} {:1:} {:1:} ( 3)延时10s
    发表于 11-13 12:49

    《微机原理与汇编语言汇编语言程序设计知识

    `《微机原理与汇编语言汇编语言程序设计知识[hide][/hide]`
    发表于 03-19 10:15

    《微机原理与汇编语言》微机基础知识

    `《微机原理与汇编语言》微机基础知识[hide][/hide]`
    发表于 04-05 13:00

    什么是汇编语言

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

    ARM汇编语言入门

    本指南介绍了使用A64指令集的Arm汇编语言基本概念,向您展示了如何使用Arm Development Studio创建和运行汇编代码,并提供了汇编代码示例供您进行实验。
    发表于 08-08 07:28

    汇编语言编程艺术(PDF)

    汇编语言编程艺术从简单的Hello程序开始,系统而详细地阐述了X86微机汇编语言编程的行种基础知识和编程技巧,内容涉及到数据表示、存储器管理、各种数据类型、过程、与汇编
    发表于 10-21 18:04 0次下载
    <b class='flag-5'>汇编语言</b>编程艺术(PDF)

    微机原理与汇编语言程序设计课件

    微机原理与汇编语言程序设计课件为PPT文件,内容有:第1章 基础知识 4第2章 微型计算机系统结构 6第3章 程序加载并执行 4第4章 微处理器一般指令 6第5
    发表于 12-06 22:20 5次下载
    微机原理与<b class='flag-5'>汇编语言</b>程序设计课件

    汇编语言自学教程

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

    汇编语言详解

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

    Linux中的汇编语言

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

    汇编语言

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

    汇编语言学习课件_微处理器基础知识

    汇编语言学习课件 第二章 微处理器基础知识 2.1 Intel公司80x86系列微处理器简介 2.2 程序可见寄存器组 2.3 存储器 2.4 PC机操作系统的发展 2.5 DOS内存布局 2.6 外部设备及I/O地址空间 2.7
    发表于 12-31 10:39 0次下载

    汇编语言程序设计

    电子专业单片机相关知识学习教材资料——汇编语言程序设计
    发表于 09-01 16:40 0次下载

    《微机原理与汇编语言》微机基础知识

    《微机原理与汇编语言》微机基础知识
    发表于 12-14 15:07 0次下载

    单片机汇编语言常见错误知识点分析

    汇编语言作为计算机专业及相关学科一门重要的基础课程,其重要性不言而喻。但是对于众多初学汇编语言的人来说,都普遍感到较难且不易理解和掌握,难以入门,看着有错的程序,更是不知从何改起,本文主要介绍的就是单片机汇编语言常见错误
    的头像 发表于 04-26 15:03 6236次阅读