选择特殊符号

选择搜索类型

热门搜索

首页 > 百科 > 建设工程百科

汇编程序

把汇编语言书写的程序翻译成与之等价的机器语言程序的翻译程序。汇编程序输入的是用汇编语言书写的源程序,输出的是用机器语言表示的目标程序。汇编语言是为特定计算机或计算机系列设计的一种面向机器的语言,由汇编执行指令和汇编伪指令组成。采用汇编语言编写程序虽不如高级程序设计语言简便、直观,但是汇编出的目标程序占用内存较少、运行效率较高,且能直接引用计算机的各种设备资源。它通常用于编写系统的核心部分程序,或编写需要耗费大量运行时间和实时性要求较高的程序段。

汇编程序基本信息

汇编程序分类

简单汇编程序

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

模块汇编程序

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

条件汇编程序

条件汇编程序 主要特点是具有选择汇编某些程序段的能力。它适用于编写选择性较大的程序或程序包,以便根据用户的需要和设备的配置情况剪裁、编制适当的软件。这种汇编语言通常要引入"条件转移"、"转移"等汇编指示,以便根据用户指定的汇编条件有选择地汇编某些程序段或控制汇编程序的加工路径。

宏汇编程序

宏汇编程序 主要特点是在汇编程序中增加宏加工功能。它允许用户方便地定义和使用宏指令,适用于程序中多处出现、具有一定格式、可以通过少数参数调节改变的程序段落的场合。采用这种方法不仅减少程序的长度,增加可读性,而且程序段落的格式需要改变时,只须改动定义处,而不必改动每一使用处。

高级汇编程序

高级汇编程序 采用高级程序设计语言的控制语句结构的汇编程序。它不仅保持汇编语言表达能力强、程序运行效率高的优点,而且能充分吸收高级语言书写简单和易读的长处。这是由于高级汇编程序允许用户使用高级程序设计语言的控制语句(如条件语句、循环语句、函数和过程)编写程序中的控制部分,而且还允许用户直接利用汇编语言直接控制存储分配、存取寄存器硬件,描述高级语言难于表达的算法。第一个高级汇编程序是N.沃思为IBM360系统研制的PL/360语言汇编程序,其特点是程序的控制部分采用高级语言的控制语句编写,而数据加工部分采用IBM360汇编指令编写。自此以后,又相继出现了类似ALGOL的汇编程序,类似FORTRAN的汇编程序FAT。

查看详情

汇编程序造价信息

  • 市场价
  • 信息价
  • 询价

PLC固化编程程序

  • 是否含加密锁:是;软件类型:门禁管理;参数:256352149;
  • onity
  • 13%
  • 深圳市鑫越胜安科技发展有限公司
  • 2022-12-06
查看价格

断开位置钥匙锁(程序锁)分闸锁

  • 二锁一匙cxs-2
  • 南冠
  • 13%
  • 广东南冠电气有限公司
  • 2022-12-06
查看价格

断开位置钥匙锁(程序锁)分闸锁

  • 四锁三匙cxs-4
  • 南冠
  • 13%
  • 广东南冠电气有限公司
  • 2022-12-06
查看价格

断开位置钥匙锁(程序锁)分闸锁

  • 三锁两匙cxs-3
  • 南冠
  • 13%
  • 广东南冠电气有限公司
  • 2022-12-06
查看价格

断开位置钥匙锁(程序锁)分闸锁

  • 五锁三匙cxs-5
  • 南冠
  • 13%
  • 广东南冠电气有限公司
  • 2022-12-06
查看价格

编程软件

  • AFN-FR5058
  • 湛江市2005年1月信息价
  • 建筑工程
查看价格

编程联动控制器

  • JL128-2
  • 湛江市2005年2月信息价
  • 建筑工程
查看价格

编程联动控制器

  • JL128-2
  • 湛江市2005年1月信息价
  • 建筑工程
查看价格

火灾报警控制器集成应用编程接口

  • GST-OOM
  • 茂名市2009年6月信息价
  • 建筑工程
查看价格

火灾报警控制器集成应用编程接口

  • GST-OOM
  • 茂名市2009年5月信息价
  • 建筑工程
查看价格

中控程序编程

  • 根据指定音乐曲目、投影水幕视频效果、音乐喷泉喷水造型效果,以及激光效果,进行整体中控效果的联控编程
  • 8首
  • 1
  • 方天伟信、北京金瀑布、OASE
  • 高档
  • 不含税费 | 不含运费
  • 2020-11-13
查看价格

音乐喷泉程序编程

  • 根据指定音乐曲目的节奏韵律、情绪等特点,艺术性地创造喷泉的演绎变化,水形态及灯光的组合变化随音乐节奏舞动,满足大众审美需求
  • 10首
  • 2
  • 中高档
  • 含税费 | 含运费
  • 2020-08-21
查看价格

激光效果程序编程

  • 根据指定音乐曲目、投影水幕视频效果、以及音乐喷泉喷水造型效果,进行激光效果的制作及编辑
  • 10首
  • 2
  • 方天伟信、北京金瀑布、OASE
  • 高档
  • 含税费 | 含运费
  • 2020-11-13
查看价格

中控程序编程

  • 根据指定音乐曲目、投影水幕视频效果、音乐喷泉喷水造型效果,以及激光效果,进行整体中控效果的联控编程
  • 8首
  • 2
  • 方天伟信、北京金瀑布、OASE
  • 高档
  • 含税费 | 含运费
  • 2020-11-13
查看价格

音乐喷泉程序编程

  • 根据指定音乐曲目的节奏韵律、情绪等特点,艺术性地创造喷泉的演绎变化,水形态及灯光的组合变化随音乐节奏舞动,满足大众审美需求
  • 10首
  • 1
  • 中高档
  • 含税费 | 含运费
  • 2020-08-09
查看价格

汇编程序结构与实现

由于汇编语言的指令与机器语言的指令大体上保持一一对应的关系,汇编算法采用的基本策略是简单的。通常采用两遍扫描源程序的算法。第一遍扫描源程序根据符号的定义和使用,收集符号的有关信息到符号表中;第二遍利用第一遍收集的符号信息,将源程序中的符号化指令逐条翻译为相应的机器指令。具体的翻译工作可归纳为如下几项:用机器操作码代替符号操作;用数值地址代替符号地址;将常数翻译为机器的内部表示;分配指令和数据所需的存储单元。除了上述的翻译工作外,汇编程序还要考虑:处理伪指令,收集程序中提供的汇编指示信息,并执行相应的功能。为用户提供信息和源程序清单。汇编的善后处理工作,随目标语言的类型不同而有所不同。有的直接启动执行,有的先进行连接装配。如果具有条件汇编、宏汇编或高级汇编功能时,也应进行相应的翻译处理。

假定汇编语言中规定符号的应用一定出现在定义之后,则两遍算法可容易地合并成一遍算法加以实现。

查看详情

汇编程序词意解释

【汉语拼音】huibian chengxu

【中文词条】汇编程序

【外文词条】assembler

查看详情

汇编程序常见问题

查看详情

汇编程序简介

汇编执行指令是机器指令的符号化表示,其操作码用记忆符表示,地址码直接用标号、变量名字、常数等表示。汇编执行指令经汇编程序翻译为机器指令,二者之间基本上保持一一对应的关系。汇编伪指令又称作汇编指示,用于向汇编程序提供用户自定义的符号、数据的类型、数据空间的长度,以及目标程序的格式、存放位置等提示性信息,其作用是指示汇编程序如何进行汇编。使用汇编语言编写的源代码,需要通过使用相应的汇编程序将它们转换成可执行的机器代码。这一过程被称为汇编过程。

许多汇编程序可以识别代表地址和常量的标签(label)和符号(symbols),这样就可以用字符来代表操作数而无需采取写死的方式。普遍地说,特定的汇编语言和特定的机器语言指令集是一一对应的。

许多汇编程序为程序开发、汇编控制、辅助调试提供了额外的支持机制。有的汇编语言编程工具经常会提供宏,它们也被称为宏汇编器。

汇编语言不像其他大多数的程序设计语言一样被广泛用于程序设计;在今天的实际应用中,它通常被应用在底层硬件操作和高要求的程序优化的场合。驱动程序、嵌入式操作系统和实时运行程序都需要汇编语言。

查看详情

汇编程序工作过程

工作过程:输入汇编语言源程序。检查语法的正确性,如果正确,则将源程序翻译成等价的二进制或浮动二进制的机器语言程序,并根据用户的需要输出源程序和目标程序的对照清单;如果语法有错,则输出错误信息,指明错误的部位、类型和编号。最后,对已汇编出的目标程序进行善后处理。

查看详情

汇编程序文献

中山学院单片机综合实验报告-汇编程序设计二 中山学院单片机综合实验报告-汇编程序设计二

中山学院单片机综合实验报告-汇编程序设计二

格式:pdf

大小:367KB

页数: 6页

1 电子科技大学中山学院学生实验报告 院别:电子信息学院 课程名称:单片机综合实验 实验名称 汇编程序设计二 实验时间 成绩 批改时间 报 告 内 容 一、实验目的和任务 1、掌握分支、循环结构程序以及子程序的设计方法。 2、进一步熟悉 Keil C51 集成开发环境。 二、实验原理简介 在汇编语言程序设计中,普遍采用结构化程序设计方法。因为任何复杂的程序都可由 顺序结构、分支结构及循环结构等构成。每种结构只有一个入口和出口,整个程序也只有 一个入口和出口。 结构化程序设计的特点是程序的结构清晰、 易于读写和验证、 可靠性高。 结构化程序设计的基本方法有顺序结构、分支结构、循环结构、子程序。 本实验在实验一基础上,要求掌握分支、循环结构程序以及子程序的设计方法。 三、实验内容和步骤 1、分支程序:是根据要求无条件或有条件地改变程序执行流向。编写分支程序主要在于 正确使用转移指令。 设变量

可编程序计算器在生产测量中的应用 可编程序计算器在生产测量中的应用

可编程序计算器在生产测量中的应用

格式:pdf

大小:367KB

页数: 未知

介绍了CASIOfx-4000P可编程计算器的应用,设计相应坐标计算程序,提高工作效率。

Assembler详解

1. 汇编程序;装配器

电器电子词汇英语翻译A-14(英语翻译,在...汇编程序;装配器 assembler

2. 装配工

建设工程专用词汇(3)-生命经纬assembler 装配工

3.组译器

计算机与网络行业术语assembler 组译器

查看详情

单片机原理与应用实验指导书图书目录

第1章 单片机实验开发板及开发软件简介

第2章 指令系统实验

实验1 熟悉软件开发流程

实验2 汇编程序设计实验一

实验3 汇编程序设计实验二

第3章 单片机应用实验

实验4 流水灯实验

实验5 定时/计数器实验

实验6 中断系统实验

实验7 串行口通信实验

实验8 学习使用C语言进行单片机程序设计

实验9 键盘显示程序

第4章 单片机综合实验

实验10 编写电子钟程序(一)

实验11 编写电子钟程序(二)

查看详情

win32结构语法

让我们先来看看一个最简单的Win32汇编程序:

.386

.model flat, stdcall

option casemap :none ; case sensitive

include windows.inc

include kernel32.inc

includelib kernel32.lib

.data

szCaption db 'Win32汇编例子',0

szText db 'Win32汇编,Simple and powerful!',0

.code

start:

invoke MessageBox,NULL,addr szText,addr szCaption,MB_OK

invoke ExitProcess,NULL

end start

这就是一个能执行的最简单的Win32汇编程序,下面我简单地介绍一下各部分的作用:

386

这条语句和Dos下汇编是一样的,是告诉编译器我们要用到80386的指令集,因为32位汇编程序要用到32位的寄存器如eax,ebx等,所以这一句是必须的,当然,你也可以用.486,.586等,当用到特权指令时,还可以用 .386p,.486p等等。

modelflatstdcall

.model告诉编译器程序的模式,编过Dos汇编的人可能知道在Dos程序的模式有tiny,small,...huge 等,它指定了程序内存寻址模式,在huge等模式下,内存寻址和子程序调用将用Far的格式,但在Win32汇编中,你只能使用一个模式即 flat 模式,因为对Win32程序来说,内存是连续的一个4GB的段,无所谓小或大的模式。而stdcall 告诉编译器参数的传递方式,在调用子程序时,参数是通过堆栈传递的,参数的传递方式有三种,stdcall,c 和 pascal,stdcall 指定了参数是从右到左压入堆栈的,比如说对一个Windows API 如 MessageBox,在手册中是如此定义的:

int MessageBox(

HWND hWnd, // handle of owner window

LPCTSTR lpText, // address of text in message box

LPCTSTR lpCaption, // address of title of message box

UINT uType // style of message box

);

那么在汇编中我们就可以这样调用它:

push uType

push lpCaption

push lpText

push hWnd

call MessageBox

大家要注意最右面的参数是最后一个进堆栈的,当然,我们不必这样麻烦的调用一个 API,因为Masm中的一个宏语句不但帮助我们完成了所有的压栈操作,还帮我们检查参数的个数是否正确,那就是 invoke 语句,我们可以把上面的语句换成 invoke MessageBox,hWnd,lpText,lpCaption,uType 就行了。如本程序中代入实际参数就成了 invoke MessageBox,NULL,addr szText,addr szCaption,MB_OK。

include语句

include 语句包含了一些系统的定义和API函说明,其中所有的Windows 数据结构定义和常量定义包含在 windows.inc 中,而其他 API函数的说明包含在 xxx.inc 中, 如查 Microsoft Win32 Programmer's Reference 知道 ExitProcess包含在kernel32.dll 中,那么我们就要在程序中包括 include kernel32.inc 和 includelib kernel32.lib语句,否则在编译时会出现 API 函数未定义的错误。而 MessageBox 在 user32.dll 中,那么我们就要在程序中包括 include user32.inc 和 includelib user32.lib语句

data或data

指明了接下来是数据段,.data 定义了预定义的变量,.data?定义了未初始化的变量,两者的不同之处是 .data? 定义的变量并不占用 .exe 文件的大小,而是在程序执行时动态分配,所以开始是不指定初始值的数据可以放在 .data? 段中,如一个1K大小的缓冲区,放在 .data?中,程序将不会增加一个字节。

code

指明了接下来是代码段,我们的所有代码都放在这里。最后的一句 start 语句指定了程序开始执行的语句。程序中的 ExitProcess 是一个标准的 Win32 API,对应 Dos汇编中的 int 20h 或 mov ah,4ch/int 21h,也就是程序退出。而 MessageBox 也是一个标准的 API,功能是在屏幕上显示一个消息框,具体的参数上面已经解释过了还有要注意的是 invoke MessageBox,NULL,addr szText,addr szCaption,MB_OK 语句中, MB_OK 和 NULL 已经预定义在 Windows.inc 中。

资源文件

不管在Dos下编程还是在Windows下编程,我们总是要用到除了可执行文件外的很多其他数据,如声音数据,图形数据,文本等等,在Dos下编程,我们可以自己定义这些文件的格式,但这样一来就造成了很多资源共享的问题,大家可能还记的Dos下的很多游戏,它们的图形都是按自己的格式存放的,你无法用标准的看图软件来看。也无法把它另存为其他格式。虽然在Win32编程中,我们仍然可以这样做,但Win32编程给了我们一个方案 ---- 就是格式统一的资源文件,把字符串、图形、对话框包括上面的按钮,文本等定义到一个资源文件中,就可以方便的在不同的文件中使用它,最重要的是,如果我们用自己的文件格式,使用时就要涉及到这些文件的读写操作,比较复杂,但使用资源文件时,Windows提供了一系列的API来装入资源。非常方便。现在,让我们来看一个很简单的资源文件的源文件,它的扩展名是 .rc,当它用资源编译器编译以后产生 .res 文件就可以在 link的时候连入.exe 文件中:

#include <Resource.h>

#define DLG_MAIN 1

DLG_MAIN DIALOGEX 0, 0, 236, 185

STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU

CAPTION "对话框模板"

FONT 9, "宋体"

BEGIN

DEFPUSHBUTTON "退出",IDOK,177,163,50,14

CONTROL "",-1,"Static",SS_ETCHEDHORZ,7,155,222,1

END

现在我简单解释一下 .rc文件的语法:

#include <resource.h> -- resource.h文件包括资源文件的一些常量定义,如下面的 WS_POPUP,WS_VISIBLE 等窗口的风格等等

#define DLG_MAIN 1 -- 类似于 .asm 文件的 equ 语句,和汇编源程序一样,这些定义是为了程序的可读性。

DLG_MAIN DIALOGEX 0,0,236,185

Windows的.rc文件可以定义 BITMAP(位图),CURSOR(光标),ICON(图标),ACCELERATORS(加速键),DIALOG(对话框),MENU(菜单),STRINGTABLE(字符串表),RCDATA(自定义资源)等8种资源,详细的描述可以参考有关MFC的书籍,在Win32ASM中的资源编译器的语法中,一般格式是这些资源的定义方法是:

位图定义: nameID BITMAP [load-mem] filename

光标定义: nameID CURSOR [load-mem] filename

图标定义: nameID ICON [load-mem] filename

加速键定义:

acctablename ACCELERATORS [optional-statements]

BEGIN event, idvalue, [type] [options]

. . .

END

等等,具体的定义和参数可以参考 Masm32v5 中的 Rc.hlp 帮助文件。(可以在编程工具中下载),我们可以用资源编辑器来所见即所得地编辑资源,也可以在文本编辑器中用上面这些语句自己定义资源。

在程序中使用资源

在程序中,要使用资源之前必须先装如内存,Windows定义了一系列的API来装入资源,如 LoadMenu,LoadString,LoadBitmap 等等,如 LoadBitmap 的定义:

HBITMAP LoadBitmap(

HINSTANCE hInstance, // handle of application instance

LPCTSTR lpBitmapName // address of bitmap resource name

);

这些Load函数的返回值是一个句柄,调用参数中一般至少为两项: hInstance 和 ResouceName,这个 ResouceName(如BitmapName,MenuName)就是在资源文件中的 #define 指定的值,如果你用 #define MY_ICON 10/ MY_ICON ICON "Main.ico" 定义了一个图标,那么在程序中要使用 Main.ico 图标就可以用 LoadIcon(hInstance,10) 来装入已经定义为10号的图标文件。另一个参数 hInstance 是执行文件的句柄,它对应资源所在的文件名,你可以在程序开始执行时用 invoke GetModuleHandle,NULL 获得 hInstance。另外一些资源并不是显式地装入的,如对话框资源,它是在建立对话框的函数中由Windows自己装入的,如下面例子中的 invoke DialogBoxParam,hInstance,DLG_MAIN,NULL,offset _ProcDlgMain,0 ,是在屏幕上显示一个资源文件中已经定义好了的对话框,就并不存在 LoadDialogBox 之类的API来先装入对话框。

查看详情

相关推荐

立即注册
免费服务热线: 400-888-9639