汇编语言出现的历史背景

2023-12-06 06:38
文章标签 汇编语言 历史背景

本文主要是介绍汇编语言出现的历史背景,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1、概述

        汇编语言是为特定的计算机或计算机系列设计的一种面向机器的语言,由执行指令和伪指令组成。执行指令是机器指令的符号表示,其操作码用记忆符表示,地址码用标号、变量、常数(??)等表示。执行指令经汇编程序翻译为机器指令。执行指令和机器指令之间是一一对应的。伪指令是给汇编程序看的,用于实现机器指令以外的一些功能。

  采用汇编语言编写的程序虽然不如高级语言那样,简便、直观、人性化,但是汇编出的目标程序占用内存少、运行效率高,且可以直接引用计算机的各种硬件设备(不知道现在在操作系统的管理下还行不行?)。汇编语言早期的应用范围很广,很多的应用程序都用汇编来写,但是随着高级语言的诞生和流行,汇编的应用范围变窄了,现在主要用于编写系统的核心部分,或者需要耗费大量运行时间和实时性要求较高的地方。

2、发展过程

  汇编程序的雏型是在电子离散时序自动计算机 EDSAC上研制成功的。这种系统的特征是用户程序中的指令由单字母指令码﹑十进制地址和终结字母组成。第一个汇编程序是符号优化汇编程序(SOAP)系统﹐它是50年代中期为IBM650计算机研制的。这种计算机用磁鼓作存储器﹐每条指令指出後继指令在磁鼓中的位置。当初研制SOAP系统的动机不是引入汇编语言的符号化特色﹐而是为了集中解决指令在磁鼓中合理分布的问题﹐以提高程序的运行效率。IBM704计算机的符号汇编程序(SAP)是汇编程序发展中的一个重要里程碑。此後的汇编程序大都以这一系统为模型﹐其主要特征至今未发生本质的变化。随著计算机软件的高速发展和广泛应用﹐汇编程序又吸收了宏加工程序﹑高级语言翻译程序等系统的一些优点﹐相继研制出宏汇编程序﹑高级汇编程序。

3、分类

  汇编程序分为简单汇编程序﹑模块汇编程序﹑条件汇编程序﹑宏汇编程序和高级汇编程序等。

  简单汇编程序又称“装入并执行”式汇编程序。由於简便而得到广泛使用。这种汇编程序的特点是汇编後的机器语言程序直接放在内存之中准备执行。目标程序所占据的存储位置是在汇编时固定的﹐并且以後不能改变﹐所以这种工作方式不能将多个独立汇编的子程序合并为一个完整的程序﹐而且只能调用位置与目标程序不冲突的程序库中的子程序。  

  模块汇编程序为适应模块程序设计方法而研制的。它除了克服简单汇编程序的缺点之外﹐还提供并行设计﹑编码和调试不同程序模块的能力﹐而且更改程序时只更改有关的模块即可。每个汇编後的程序模块称为目标模块﹐多个目标模块经连接装配程序组合成一个完整的可执行的程序。

  条件汇编程序主要特点是具有选择汇编某些程序段的能力。它适用於编写选择性较大的程序或程序包﹐以便根据用户的需要和设备的配置情况剪裁﹑编制适当的软件。这种汇编语言通常要引入“条件转移”﹑“转移”等汇编指示﹐以便根据用户指定的汇编条件有选择地汇编某些程序段或控制汇编程序的加工路径。
  宏汇编程序主要特点是在汇编程序中增加宏加工功能。它允许用户方便地定义和使用宏指令﹐适用于程序中多处出现﹑具有一定格式﹑可以通过少数参数调节改变的程序段落的场合。采用这种方法不仅减少程序的长度﹐增加可读性﹐而且程序段落的格式需要改变时﹐只须改动定义处﹐而不必改动每一使用处。
  高级汇编程序采用高级程序设计语言的控制语句结构的汇编程序。它不仅保持汇编语言表达能力强﹑程序运行效率高的优点﹐而且能充分吸收高级语言书写简单和易读的长处。这是由於高级汇编程序允许用户使用高级程序设计语言的控制语句(如条件语句﹑循环语句﹑函数和过程)编写程序中的控制部分﹐而且还允许用户直接利用汇编语言直接控制存储分配﹑存取寄存器硬件﹐描述高级语言难於表达的算法。第一个高级汇编程序是N.沃思为IBM360系统研制的PL/360语言汇编程序﹐其特点是程序的控制部分采用高级语言的控制语句编写﹐而数据加工部分采用IBM360汇编指令编写。自此以後﹐又相继出现了类似ALGOL的汇编程序﹐类似 FORTRAN的汇编程序FAT。


这篇关于汇编语言出现的历史背景的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/460813

相关文章

《x86汇编语言:从实模式到保护模式》视频来了

《x86汇编语言:从实模式到保护模式》视频来了 很多朋友留言,说我的专栏《x86汇编语言:从实模式到保护模式》写得很详细,还有的朋友希望我能写得更细,最好是覆盖全书的所有章节。 毕竟我不是作者,只有作者的解读才是最权威的。 当初我学习这本书的时候,只能靠自己摸索,网上搜不到什么好资源。 如果你正在学这本书或者汇编语言,那你有福气了。 本书作者李忠老师,以此书为蓝本,录制了全套视频。 试

汇编语言知识基础介绍

汇编语言是一种低级编程语言,直接与计算机硬件的指令集架构(ISA)对应。它在操作系统、设备驱动程序和性能关键的应用程序中起着重要作用。以下是汇编语言的基础介绍: 1. 基本概念 指令集架构(ISA):汇编语言与特定的处理器架构(如 x86、ARM)对应,每种架构有其特定的指令集。汇编指令:汇编语言的语法是处理器指令的符号表示,通常包括操作码(opcode)和操作数。操作码指定操作的类型,操作数

汇编语言输出“Hello World!“

1.软件 Nasmide64.exe(李忠老师编写) Fixvhdw64.exe(李忠老师编写) VirtualBox虚拟机(免费 开源) 2.过程 01.Fixvhdw64.exe输入以下代码: mov ax,0xb800mov ds,axmov byte [0x00],'H'mov byte [0x02],'e'mov byte [0x04],'l'mov byte [0

ARM——结构体系(处理器工作模式,CPSR,立即数,汇编语言函数调用)

1、处理器工作模式          ARM有7个基本工作模式:User:非特权模式,大部分任务执行在这种模式FIQ:当一个高优先级(fast)中断产生时将会进入这种模式IRQ:当一个低优先级(normal)中断产生时将会进入这种模式Supervisor:当复位或软中断指令执行时将会进入这种模式Abort:当存取异常时将会进入这种模式Undef:当执行未定义指令时会进入这种模式Sy

ARM下汇编语言编程

一、ARM汇编语言程序格式 ARM汇编语言是以段(section)为单位来组织源文件的。段是相对独立的、具有特定名称的、不可分割的指令或者数据序列。 段又可以分为代码段和数据段,代码段存放执行代码,数据段存放代码运行时需要用到的数据。一个ARM源程序至少需要一个代码段,大的程序可以包含多个代码段和数据段。 二、ARM汇编语言中常用的伪操作 例如: area reset,cod

汇编语言05——包含多个段的程序

整理自fishcc论坛 安全的空间 通常来说,0:200~0:300这段空间是相对安全的,操作系统通常不会去占用 但这只有256个字节,当需要更多空间时,可以向操作系统申请 问题: 编程计算以下8个数据的和,结果存在ax 寄存器中: 0123H,0456H,0789H,0abcH,0defH,0fedH,0cbaH,0987H 程序: assume cs

汇编语言04——[BX]和loop指令

整理自fishcc论坛课件 首先展示一个新的程序: assume cs:codesg codesg segment start: mov ax,2000H mov ds,ax mov al,[0] mov bl,[1] mov cl,[2] mov dl,[3] mov ax,4C00H int 21H codesg ends end start 使用masm进行

汇编语言03——第一个汇编程序

整理自鱼C论坛课件 汇编程序编写步骤 编写源代码->使用MASM.exe进行编译,产生目标文件->用LINK.exe,对目标文件进行链接,生成可执行文件 可执行文件中包含两部分内容 1,程序和数据 2,相关的描述信息(程序有多大,要占用多少内存空间等) 源程序: assume cs:abc abc segment mov ax,2 add ax,ax add

汇编语言02——寄存器(内存访问)

整理自鱼C工作室的课件 DS和address DS寄存器通常用来存放要访问的数据的段地址 例如:我们要读取10000H单元的内容可以用如下程序段进行: mov bx,1000H mov ds,bx mov al,[0] 将10000H(1000:0)中的数据读到al中。 mov指令的格式: mov 寄存器名,内存单元地址 “[…]”表示一个内存单元, “[…]

汇编语言01——寄存器(CPU的工作原理)

寄存器概述 CPU的组成:运算器,控制器,寄存器 8086CPU有14个寄存器(8个通用寄存器),分别为: AX,BX,CX,DX,SI,DI,SP,BP,IP,CS,SS,DS,ES,PSW 8086CPU所有寄存器都是16位的,可以存放两个字节(一个字) AX,BX,CX,DX是通用寄存器,存放一般性数据 8086上一代CPU的寄存器是8位的;为保证兼容性,这四个寄存器都可