技术汇编范文

2024-07-25

技术汇编范文(精选7篇)

技术汇编 第1篇

FPGA是一类高集成度的可编程逻辑器件, 起源于美国的Xilinx公司, 在这二十年的发展过程中, FPGA的硬件体系结构和软件开发工具都在不断的完善, 日趋成熟。FPGA结合了微电子技术、电路技术、EDA技术, 使设计者可以集中精力进行所需逻辑功能的设计, 缩短设计周期, 提高设计质量。

2 FPGA的软件设计开发流程

2.1 设计输入

设计输入就是指设计人员将所设计的系统或电路以开发软件要求的某种形式表示出来, 并输入计算机的过程。

2.2 芯片数据库

这里芯片数据库的设计目标是做成支持把硬件部分设计的结构转换成软件部分可识别的格式, 提供软件设计其它步骤所需要的数据, 从而进行软件部分的处理。与一般意义上的数据库不同, 芯片数据库还要考虑如何表示FPGA芯片的内部结构。

2.3 逻辑综合

逻辑综合, 是将较高抽象层次的描述自动转换到较低层次描述的一种方法。这里是指将RTL级的描述转换为门级网表的过程。逻辑综合要求的输入除RTL描述的程序模块或者原理图文件或波形文件外, 还需要另外两个输入文件, 一个是综合工具支持的工艺库, 这些工艺库包含一些标准的单元, 在综合时, 综合工具会将RTL级代码描述的设计用工艺库中的标准单元转化为逻辑电路;另一种输入是约束条件, 用于决定综合过程中的逻辑优化方法, 约束条件一般包含时序、面积、速度、功耗、负载要求和优化方法等, 甚至还包含综合时需要注意的设计规则。

2.4 工艺映射

根据综合生成的网表, 将用户设计嵌入FP-GA芯片。这里的嵌入, 实际是在前文所提的芯片数据库上进行的。工艺映射的结果是得到原子 (ATOM) 网表, 即包含多个查找表的等效电路的描述。

2.5 布局

将查找表装入逻辑块, 得到逻辑块网表, 通常一个逻辑块内包含有几个查找表和寄存器。布局算法决定电路中不同的逻辑块在FPGA芯片中的分布, 优化的结果应该是, 相互关联的逻辑块放在一起, 这样可以尽可能的减少和缩短连线, 在布局中也应考虑连线分布密度的平衡和获得最快的电路速度。布局之后将得到布线所需的所有通路信息。

2.6 布线

一旦确定了逻辑块的布局, 接下来就应该确定逻辑块之间的选择连线和开关。将目标芯片的布线结构等效为一个有向图, 在这样一个布线资源图中, 每一条线和每个逻辑块的引脚都是一个节点, 潜在的连接是边, 相应的问题就转化为寻找布线资源图的最短路径。

2.7 汇编

目的是产生目标位流文件bit-stream, 汇编模块将适配过程的器件逻辑单元和引脚分配信息转换为器件的编程图像, 并将这些图像以目标器件的编程对象文件或SRAM对象文件的形式保存为编程文件, 以便编程器使用该文件对器件进行编程配置。在汇编过程中, 也可以进行时序分析。

2.8 编程

器件编程也可以称为配置, 就是将编程数据下载到相应的FPGA器件中去, 进行真正的芯片测试。

3 FPGA的汇编技术

FPGA支持软件设计流程中的汇编模块的目的是产生目标位流文件bit-stream。汇编模块将适配过程的器件逻辑单元和引脚分配信息转换为器件的编程图像, 并将这些图像以目标器件的编程对象文件或者SRAM对象文件的形式保存为编程文件, 以便编程器使用该文件对器件进行编程配置。对FPGA的相关配置文件加以简单介绍。

a.sof文件:如果选择模式为JTAG或者PS方式, 使用Altera的下载电缆对FPGA进行配置时, 将用到sof文件。该文件是QuartusⅡ自动产生的。在使用sof文件配置时, QuartusⅡ下载工具将控制整个配置的顺序, 并向配置数据流内自动插入合适的头信息。其他的配置文件类型都是从相应的sof文件产生出来的。

b.pof文件:是用来对各种Altera配置芯片进行编程的文件。要注意的是, 需要在QuartusⅡ中设置编程器件类型, 才可以生成该类型的pof文件。对于一些小的FPGA, 多个FPGA的sof文件可以放到一个pof文件内, 烧制到一个配置器件中;而对一些较大的FPGA, 如果一个配置器件不够, 可以使用多个配置器件。

c.rbf文件:是二进制的配置文件, 只包含配置数据的内容。通常被用在外部的智能配置设备上, 如微处理器。例如, 一种典型的用法是将rbf文件通过其它工具转换成十六进制的数组文件, 编译到微处理器的执行代码中, 由微处理器将数据加载到FPGA中。当然, 也可以由处理器在配置过程中完成实时的转换工作。d.ttf文件:与rbf文件内容一样的ASCII码格式文件, 在每个配置数据字节之间用逗号隔开。

e.rpd文件:用外部编程设备对AS串行配置芯片进行在系统编程的文件。这个文件是由pof文件转换而来的, 选择不同的AS配置芯片, 转换得到的rpd文件大小都不一样。

f.jam文件:是一种以Jam器件编程语言描述的ASCII码文件。它包含了对JTAG链中一个或多个FPGA进行编程、验证和空白校验的数据信息。用户可以在QuartusⅡ的编程器或微处理器中使用jam文件, 并可以用jam文件对所有QuartusⅡ支持的器件进行配置。甚至JTAG链上还可以包含非Altera的器件。e.hex文件:由Intel公司提出的配置文件格式。它是一个ASCII码文本文件, 以Intel的十六进制格式保存物理程序存储器中的目标代码的映像, 可以用在外部的配置设备上。hex文件中, 每一行包含一个hex记录, 这些记录由对应机器语言码和/或常量数据的十六进制编码数字组成。

4 FPGA的编程技术

4.1 FPGA的配置编程

这个过程的目的是将编程文件下载到FP-GA芯片, 进行真正的芯片测试。与CPLD不同, FPGA是基于门阵列方式为用户提供可编程资源的, 其内部逻辑结构的形成是由配置数据决定的。这些配置数据通过外部控制电路或微处理器加载到FPGA内部的SRAM中, 由于SRAM的易失性, 每次上电时, 都必须对FPGA进行重新配置, 在不掉电的情况下, 这些逻辑结构将会始终被保持, 从而完成用户编程所要实现的功能。器件编程需要满足一定的条件, 如编程电压, 编程时序和编程算法等。一次性编程的FPGA需要专用的编程器完成器件的编程工作, 基于SRAM的FPGA可以由EPROM或其他存储体进行配置。在系统的可编程器件则不需要专门的编程器, 只要1根下载编程电缆就可以了。在系统编程是指对器件、电路板或整个电子系统的逻辑功能可随时进行修改或重构的能力。

4.2 FPGA的编程模式

FPGA的配置方式分为主动式和被动式, 数据宽度有8位并行方式和串行方式两种。在主动模式下, 由FPGA器件引导配置操作过程, FPGA在上电后, 自动将配置数据从相应的外存储器读入到SRAM中, 实现内部结构映射。这种配置方式通常用于SRAM类型的可编程逻辑器件芯片。目前大多数FPGA都是基于SRAM工艺的, 而SRAM工艺的芯片在掉电后信息就会丢失, 一定需要外加一片专用配置芯片, 在上电的时候, 由这个专用配置芯片把数据加载到SRAM中, 然后FPGA就可以正常工作, 由于配置时间很短, 不会影响系统正常工作。也有少数FPGA采用反熔丝或Flash工艺, 对这种FPGA就不需要外加专用的配置芯片而在被动模式下, FPGA则作为从属器件, 通常由控制器或计算机控制配置的整个过程, 实现配置数据的下载。这种配置方式常用于E2PROM类型的可编程逻辑器件芯片的编程, 编程数据长期不会消失。FPGA的配置引脚可分为两类:专用配置引脚和非专用配置引脚。专用配置引脚只有在配置时起作用, 而非专用配置引脚在配置完成后则可以作为普通的I/O口使用。专用的配置引脚有:配置模式脚M2、M1、M0;配置时钟CCLK;配置逻辑异步复位PROG, 启动控制DONE及边界扫描TDI、TDO、TMS、TCK。非专用配置引脚有Din、D0~D7、CS、WRITE、BUSY、INIT。在不同的配置模式下, 配置时钟CCLK可由FP-GA内部产生, 也可以由外部控制电路提供。FPGA共有四种配置模式:从串模式, 主串模式, 从并模式以及边界扫描模式。具体的配置模式由模式选择引脚M0、M1、M2决定。

参考文献

[1]段桂江, 保质设计的集成化过程与方法模型研究, 中国机械工程, 2005.

技术汇编 第2篇

在DOS下编译程序时将包含多个子程序的文件编译成扩展名为OBJ的目标文件,再将多个目标文件组合成一个.LIB文件。在程序要用到这些子程序时,在源程序中只需要指定这些子程序的名字,编译时编译器就可以从对应的库中抽出用到的子程序插入到可执行文件中去,这就是所谓的静态连接库。程序运行时可以脱离静态连接库。

采用静态连接库技术,如果多个程序要使用这些子程序,则每个程序中都会有这些子程序的拷贝,那么造成磁盘空间的浪费;若多个程序运行后,在内存中也会保留多个子程序的拷贝,这样就造成了内存空间浪费。

为了解决上述问题,Windows采用动态连接库技术。在源程序被编译时动态连接库的代码不会被插入到生成的可执行文件中,但文件中会建立对动态连接库中子程序的索引。程序运行时不能脱离动态连接库。动态连接库的扩展名为.DLL。如果有多个程序要使用动态连接库,则内存中只保留一份动态连接库的拷贝。因此,动态连接库的使用既可节省磁盘空间也可节省内存空间,不足的是程序运行时动态连接库必须存在。

1 静态连接库技术

1.1 源程序文件包含

在编写大型源程序时,宏汇编程序MASM允许把源程序分放在几个源程序文件中,例如:我们可以把经常使用的宏定义存放在一个.MAC/.LIB文件中(宏库文件);经常使用的子程序存放在一个.ASM文件中(汇编源程序文件);将各种常量定义、声明语句等组织在一起存放在一个.INC文件中(包含文件)。有了这些文件后,当现程序中需要调用时,应首先将这些文件的内容加入到自己的源程序中,这只需要在源程序中使用包含伪指令INCLUDE即可实现。这将有利于这些文件内容的重复使用。

利用INCLUDE伪指令包含其他文件,其实质上仍然是一个源程序,只不过是把一个大程序合理划分成几个小文件保存,便于程序的重复使用。被包含的文件不能独立汇编,是依附主程序而存在的。所以,主程序以及被包含的宏库文件.MAC、子程序文件.ASM、包含文件.INC之间的各种标识符不能相同;另外,由于是源程序级的结合,每次汇编都要对被包含文件内容的汇编,增加了汇编时间。它不适合大型程序的设计。

1.2 目标代码文件包含

利用目标文件的连接开发源程序,当连接程序将多个模块连接到一起时,必须注意以下两方面的内容:各模块间的通讯和各段之间的组合方式。

目标代码级文件结合的设计方法:(即模块化程序设计方法):把经常使用的一些子程序编写成一个或几个独立的源程序(.ASM文件),分别汇编它们,形成若干常用子程序的目标文件(.OBJ文件),也称为目标模块;主程序也经过独立汇编为目标程序文件;用连接程序将多个目标文件连接起来,形成可执行程序文件(.EXE文件)。

模块之间的通讯问题:当一个大的程序由多个模块组成时,必须有一个且只能有一个模块中含有主程序,其它模块为子程序形式。这就必然存在模块间的通讯问题,即一个模块要访问另一个模块中定义的标识符,如标号、变量、符号常量或过程名。因此,在程序设计时,必须要对这些符号进行说明,连接程序在连接时才能正确完成各模块之间的通讯。

在程序的开发过程中,一个模块可能要使用另一个模块中定义的变量或过程。既可以被定义自己的模块访问,也可以被其它模块访问的标识符称为公共标识符。仅在某模块内访问而不在该模块内定义的标识符为外部标识符。

公共标识符由MASM提供的PUBLIC伪指令来说明,外部标识符由MASM提供的EXTERN(在MASM5.x为EXTRN)伪指令来说明。

各段之间的组合方式:组合方式的提出是因为各个文件独立汇编,每个模块(或文件)都可能包含多个段,在将各模块连在一起时,必须告诉连接程序怎么把各个段组合在一起。

实际上,进行连接的目标程序文件既可以由汇编程序生成,也可以用其它编译程序产生。所以,利用这种方法还可以实现高级语言模块和汇编语言模块的连接,实现高级语言和汇编语言的混合编程,数据处理程序用高级语言编写,和硬件打交道的程序用汇编语言编写,提高程序的编写效率和执行效率。

较之源程序包含方法,采用目标文件的连接方法进一步提高了程序的开发效率。但被连接的每个目标文件的所有代码都会成为可执行程序的一部分。当前未使用的子程序也将出现在最后的可执行程序中,造成可执行程序的庞大。

1.3 子程序库

静态子程序库文件(.LIB)是子程序模块的集合,其中存放着各子程序的名称、目标代码以及有关的定位信息,它是由库管理程序LIB.EXE建立与管理的。例如:我们可以把经常使用的二转十、十转二、排序、字符串显示等一些子程序编写为可供任何需要着调用的子模块,在通过库管理程序LIB.EXE把它们的目标模块放在一起,建成一个子程序库。这样,在编写程序时,就可以象调用一般子程序一样调用它们,只要将所须访问的标识符定义成外部标识符,连接时再将该子程序库连上即可。这样,既提高了编程效率,也为程序调试带来了方便。LIB.EXE命令的格式是:LIB库文件名+子程序目标文件名

2 动态链接库技术

动态连接库的建立方法如下:

2.1 建立框架文件

设将建立的动态连接库名为My Dll.dll,程序中有一个过程Test Function,它在当前窗口(50,100)开始显示一行字符串。下面是它的框架代码:

将上面的代码存储为文件My Dll.asm。每一个DLL必须有一个入口点函数,Windows每一次在做下面的动作时会调用该入口点函数:当动态链接库被加载时;当动态链接库卸载时;同一进程的线程生成时;同一进程的线程退出时。

入口点过程的名称无所谓,只要您让语句“END<过程名>”中的过程名和前面的相同就可以了。该过程共有三个参数,只有前面两个是重要的。h Inst DLL是该动态链接库模块的句柄,它和进程的实例句柄不一样。如果以后要用,可以保存它,因为以后再要获得它不容易。根据不同的时机,reason传入的值可能是下面的四个值中的一个:

DLL_PROCESS_ATTACH:动态链接库第一次插入进程的地址空间时。当传入的参数是该值时,可以做一些初始化的工作;DLL_PRO-CESS_DETACH:动态链接库从进程的地址空间卸出时。可以在此做一些清理的工作,譬如释放内存;DLL_THREAD_ATTACH:新线程生成;DLL_THREAD_DETACH:线程销毁。

2.2 建立导出函数文件

2.3 建立编译文件

按照如下格式在源文件目录下建立批处理文件Make.bat:

与生成exe文件不同的是在使用Link时,要用到选项“/DLL”表示生成DLL文件,选项“/DEF My Dll.def”指定定义了导出函数名称的def文件。

执行Make.bat,如果程序没有错误就会生成My Dll.dll文件。

2.4 建立声明文件My Dll.inc

内容为Test Function的声明:Test Function proto:DWORD

摘要:微型计算机操作系统从DOS到WINDOWS,宏汇编语言的编程技术也有静态连接库和动态链接库技术。详细汇介绍了使用编语言编程技术实现静态连接库和动态连接库的方法、步骤,以及静态连接库和动态连接库的区别。

关键词:应用程序,模块句柄,静态链接库,动态链接库

参考文献

[1]赵树声、杨建军.DOS/Windows汇编语言程序设计教程[M].北京:清华大学出版社,2005,6.[1]赵树声、杨建军.DOS/Windows汇编语言程序设计教程[M].北京:清华大学出版社,2005,6.

[2]沈美明,温冬婵.IBM-PC汇编语言程序设计[M].北京:清华大学出版社,2001,7.[2]沈美明,温冬婵.IBM-PC汇编语言程序设计[M].北京:清华大学出版社,2001,7.

技术汇编 第3篇

1 C语言程序设计技术方法

(1) 可以在C语言程序之中确定汇编程序的常、变量。

(2) 可以在C语言编程当中适当的增加语句编辑, 保证实现C语言无法控制硬件的缺陷。

(3) 然而使用C语言程序时可以通过内部函数的使用加入汇编语言中的相应语句。

2 汇编程序设计技术及方法

在C语言编程当中, 可以将汇编语言的代码直接的编写进去, 并且融入汇编语言的过程当中可以不使用分号, 详细的语法是:

若想要将一组汇编语句融入到C语言中, 必须要将语句括到括号{}当中。

一般想要在C语言程序当中编入汇编语言, 有四种类型, 分别是一般指令、跳转指令、串联指令和局部定义指令。

汇编语言子程序应用在C语言中, 一般情况下汇编语言的子程序其基本格式是:

3 C语言汇编语言需要调用其它子程序的语言格式

把被调用程序其格式和普通汇编语言程序分布情况加以比较能够发现:

因为C语言程序和进行汇编的子程序需要共用同一个程序运行区间, 所以在刚刚开始进行子程序的C语言汇编时就需要运行PUSH BP和MOVE BO, SP这两个命令。

必须要把将会被修改和汇编到C语言程序中的子程序进行局部调用的PUBLTC操作, 通过进行PUBLTC的操作来表示该段C语言子程序已经参与到其他的操作中, 被其他程序所调用了。

虽然已经被调用的子程序会接受程序的控制, 但也需要对该段子程序利用SI和DI进行局部变量的保存, 但是仅在变量高于120分钟时, 才能将其在堆栈当中加以存放。因此, 这一模式进行过程中, 我们可以清楚的看到PUSH DI还有PUSH SI的语句。

在经过汇编的程序C语言中, 要把MYCODE的代码段、初始数据段、修改数据段进行分别的定义, 并且把这几个分段的汇编程序组合成为一个有效段组, 保证该段段组基址的共用性。

在汇编之后的程序语句之前必须要增加一段函数值语句, 保证语句可以有效的返回, 进行下一段的程序循环, 并且设置的返回值要在RET语句的前方。

值得注意的是, 不同意调用过的子程序必须要用RET的命令增加返回功能, 并且在结束语句后编辑结束END。这个END语句代表的是最终的终止, 没有相应的启动功能。

通过C语言子程序的汇编, 可以有效的保证其调用功能, 同时也节省了相应的程序编辑空间。例如在程序输入时, 不用修改程序的进位制就能准确的进行数据的读取, 也就是说参与汇编的C语言子程序在格式上不会有太大的改变, 只需要在原本子程序的起始部位增加相应的语句就可以了。

EXTERN函数名, 主要作用是为了反应出这个函数是C语言的子程序, 且是外部调用的、。原本的主程序语句, 可以利用外部程序来实现原本语句的调用功能, 具体的调用格式如下:CALL NEAR PTR函数名, 而在将C语言程序当做是子程序的过程中, 只包含有C函数, 并不需要EXTERN来进行进一步的说明。

4 连接两种语言

由于汇编语言和C语言二者均存在着一定的问题, 通过将两种语言混合编程, 能够弥补两种语言各自存在的不足, 因此, 下面阐述如何连接这两种语言。

4.1 传递参数

在调用C语言及汇编语言时, 可能会存在汇编语言的参数传递问题, 通常都是利用堆栈来进行传递, 通常在汇编C语言的过程中, 要把BP基址当作原数据的储存器, C语言的汇编参数全部储存在堆栈储存器当中, 如果在需要使用储存参数时, 可以把存储在堆栈当中的数据进行清除处理。

4.2 调用关系的确定

对于即将要调用的函数或者是过程, 要在调用开始之前明确的说明, 建立完整的调用关系, 详细的说明被调用的子程序是属于那个外部过程当中的, 并且被调用的子程序应用在什么模块当中。另外要根据调用模块和储存方式的不同, 对被调用的C语言汇编子程序进行格式的确定, 一般情况下被调用的在大模式下与原本程序类型基本相似, 小模式下存在微小的变化

4.3 模块连接

原有的C语言模块想要和汇编C语言的模块进行准确的连接, 就需要做到以下两点:

(1) 原有C语言模块必须与汇编C语言模块的储存方式相同。

(2) 要求汇编模块要遵守和C语言模块兼容的相同命名。

因为编译系统在编译C源程序的过程当中, 将会在函数名以及变量名称的前面画有下划线, 想要保证连接前后相同, 全部被C语言调用的汇编子程序其标识符前面都要标记下划线。并且, 想要使汇编语言的标识符在C语言当中能够看见, 需要用PUBLIC来定义。要求汇编语言当中其C语言的变量以及函数, 必须要在二者前面加上下划线, 同时, 要求汇编程序开头的所调用C函数以及变量必须要用EXTERN对其进行说明。

为了有效保证C语言及汇编语言二者混合情况下设计的程序标准, 能够有效的实施, 必须要保证主要参数在变成函数被调用的过程中具有有效的传递作用, 并且要求针对程序设计具体的情况来确定两个语言之间相互调用的关系。

在C语言的程序当中包括六种储存形式, 分别是微型和小型以及中型和金丑行, 还有大型和巨型这六种储存的模式。通过这点我们可以知道, 主要由空间的大小来区别储存模式。在这当中微型的储存模式其程序和蹲站都在同一段中, 而小型的储存模式拥有数据以及代码段, 详细的数量为同一个。如果想要混合编程, 首先必须要保证这两个程序所使用的是一个储存模式, 对于汇编语言来讲, Model表示程序当中用到的伪指令, 之后需要连接的内容便是储存的模式, 通常是上面所讲的储存模式当中的一种模式。若C语言程序所使用的储存模式是小型的, 那么汇编语言当中就会表示成Model Small, 并且在这个时候这两种程序使用的储存模式一定是相同的类型。因为小型储存模式将Near当做是基础指针, 因此, 这种储存模式其运行效率极高, 所以说在实际混合编程的情况下, 如果符合条件这种情况下最好选择小型储存模式。

在编译C语言的过程当中, 在变量以及函数名称的下面将会添加下划线, 为了保证连接的质量, 调用子程序的过程当中, 任何标识符其下方都应该添加下划线。站在C语言程序的角度去看, 将会把所调用的对象其中实际的变量和函数作为伪命令, 进而起到说明的作用。一般把命令放在函数和变量的外部。除此之外, 由于想要保存汇编语言程序标示符的完整性, 应该使用PUBLIC定义相应的标示符。

5 结束语

通过本文对汇编语言与C语言的混合程序设计技术的进一步阐述, 使我们了解到在开发软件的过程当中使用这两种语言混合的程序设计的技术, 能充分发挥两种语言各自的特点, 扬长避短, 大大提高了软件开发的效率, 缩短开发的周期, 达到事半功倍的效果。通过本文对二者之间混合程序设计技术的具体阐述, 希望能够给使用汇编语言及C语言混合程序设计方面提供一定的帮助, 对于我国软件开发方面起到促进的作用。

参考文献

[1]陈久娅.C语言与汇编语言的混合程序设计技术研究[J].电子制作, 2013 (04) :61.

[2]康晶晶.汇编语言与C语言的混合程序设计技术[J].计算机时代, 2013 (06) :1-2.

技术汇编 第4篇

1 混合编程方法

在实际的编程过程中, 将C语言与汇编语言充分结合的编程方法主要包括四方面内容:

(1) 混合编程过程中, 指定编程任务会被分成多种功能模块, 通常情况下, 模块主要以程序或者是函数的形态表现, 结合模块的实际特点选取适宜的语言完成编程, 随后运用对应的编译系统将编程结果按要求转换为目标文件, 最终将所有目标文件进行连接, 从而生成完整的文件。

(2) 对于C语言程序而言, 往往需要运用到在汇编程序中完成定义的常规变量。

(3) 一般而言, 可将汇编语句直接、快速编入C语言程序中, 拓展了C语言程序的功能, 有效解决了C语言程序无法控制硬件的缺陷。

(4) 通过运用函数的方法, 可在C语言内部快速调用汇编语句。

2 C语言程序融入汇编语句

对于C语言程序而言, 可直接完成汇编语言代码的编写任务, 将指定的汇编语句融入到C语言程序中时, 一般不需要分号, 如果所选汇编语句以组的形式存在, 则需使用大括号 ({}) 。汇编语句包含多种形式, 可在C语言中使用的主要分为四类, 分别为跳转、串操作、分配以及一般指令等内容。

3 C语言调用汇编子程序

为达到调用效果, 还需从细节入手, 确定汇编语言所对应源程序的段组合是否切实满足编译的实际需求, 如果源程序违约势必会对调用效果造成不同程度的影响。

3.1 基本格式

汇编程序子程序格式中的开头和末尾分别表示程序的开始与结束, 均属伪指令范畴。汇编程序子程序名实际上就是一个标示符, 由编程人员自行创建。另外, 子程序名通常还表示汇编程序中第一条指令的实际逻辑地址, 也可称作入口地址。一般而言, 类型只分两种, 分别为NEAR与FAR, 不同类型会对程序中的调用及返回指令对应的翻译系统造成直接影响。处在程序中心位置的序列为程序段, 程序段具备特定的功能, 在程序段的末尾, 通常会有一条返回指令 (RET) 。

3.2 子程序的基本格式

与上述基本格式相比子程序主要具备以下几方面特点:

(1) 由于C语言和汇编语言的堆栈段相同, 所以, 为了达到混合编程的目的, 对应的汇编程序在运行的初期必须进行两条指令, 这两条指令分别为PUSH BP (缓存栈基址) 和MOVE BO, SP。

(2) C语言程序的调用对象需在PUBLIC伪操作的支持下进行说明, 确定该子程序将要被外部所调用。

(3) C语言支持对应子程序采用DI或SI完成变量的存储任务, 由于在实际情况中, 变量一般在两个时以后进行存放, 所以在C语言子程序中会生成PUSH SI/DI语句。

(4) 在程序段中, 不仅定义了代码生成器、信息资料管理器还将其合成为整体的数据段 (DGROUP) , 段组内所用的基址是一致的。

(5) 程序核心语句中应包含返回函数值, 而且该个函数值的具体位置应处在RET语句之前。

(6) 调用的返回过程需由RET语句命令。

(7) 末尾处的END仅代表程序运行完毕, 并为标明实际的启动位置。

4 调用C语言

从汇编语言的角度讲, 其具有的优势是C语言难以媲美的, 比如在输入的过程中, 汇编语言支持所有进制的数据, 并无需翻译直接读取。所以在汇编语言中调用C语言是可以且具有一定价值的。汇编语言中各类程序的格式并没有太大出入, 主程序要求程序的开始阶段具有EXTERN语句, 以此表名此函数将被调用, 属外部范畴。过程语句中, 可在CALL语句的支持下, 完成外部函数的调用任务, 具体格式为CALL NEAR PTY。如果C语言程序中的子程序具备被调用的条件, 则在成为汇编语言程序的子程序时, 程序中可以包含C语言函数, 无需添加EXTERN语句进行说明。C语言程序调用过程中软件的堆栈分配如图1所示。

5 汇编语言与C语言连接技术关键点

汇编语言与C语言连接并混合编程的过程中, 需要密切注意三方面内容, 分别为参数传递、调用关系和模块连接, 只有妥善处理这三方面内容, 才能有效提高汇编语言与C语言的连接及混合编程质量, 从而真正提高程序运行效率, 改善编程环境。

(1) 参数传递

汇编语言与C语言在连接和混合编程的过程中, 参数会在一定条件下进行传递, 一般而言, 传递过程通常运用堆栈形式。从汇编语言的角度讲, 主要选取BP作为堆栈基址的寄存器, 首先将调用过程中C语言程序产生的参数进行编排和划分, 并将其压入至堆栈当中, 如果程序在后续的运行过程中需要使用堆栈中的参数时, 可再次使用BP将参数按照实际要求和偏移量实施存取。

(2) 调用关系

程序在调用之前, 应建立并完善调用关系, 以此说明该子程序将被调用。在调用的过程中, 对应程序应表明自身已属外部类型范畴, 从而为后续的引用和计算提供便利, 同时, 调用程序同样需要及时说明将要被引用程序的具体名称。在确定调用关系的过程中, 还需结合各类存储模式的具体要求, 确定程序的语言格式。C语言程序的小模式一般与汇编语言程序中的近类型相对应, 而大模式则与远类型相对应。

(3) 模块连接

为确保汇编语言与C语言连接与混合编程的可靠性, 还需进一步完善两方面工作, 其一是汇编语言程序与C语言程序所使用的存储模式必须为一致的;其二是汇编语言程序需支持C语言程序的命名要求, 在连接和使用之前需拟定兼容合约, 由于汇编语言程序的特点较为明显, 所以编程中函数及变量的命名一般以C语言程序的要求为准, 汇编语言程序必须严格遵守约定。

C语言程序中主要涵盖了六种形式的存储模式, 分别为微型存储模式、小型存储模式、中型存错模式、紧凑型存储模式、大型存储模式以及巨型存储模式, 由此可见, 存储模式主要由空间和大小区分。其中微型存储模式中的程序和堆栈均处于相同段内;小型存储模式具有数据和代码段, 实际数量均为一个。如要进行混合编程, 必须确保两个程序使用相同的存储模式。对于汇编语言而言, Model代表此程序所用的伪指令, 而后需所接内容即为存储模式, 一般为上述模式的其中一种。如果C语言程序使用了小型存储模式, 在汇编语言中将会表现为Model Small, 此时两种程序所用存储模式为统一类型。由于小型存储模式采用Near作为基础指针, 所以该存储模式具有较高的运行效率, 因此在实际的混合编程情况中, 应在条件满足的情况下尽可能选用小型存储模式。

C语言程序的编译过程中, 程序中变量及函数名称的下方会被添加一道下划线, 为确保连接质量, 在调用子程序中, 任意一种标示符的都需添加下划线。从C语言程序的角度讲, 其会对调用对象中具体变量与函数予以伪命令, 以此达到说明的目的, 通常将命令放置在函数与变量的外部。另外, 为了保存汇编语言程序中完整的标示符, 还需使用PUBLIC操作符对指定标示符进行定义。如果汇编语言程序需使用C语言程序中的函数, 需要在所选函数的名称前添加下划线, 同时在程序开始阶段运用EXTERN语句进行说明, 如图2所示。

6 总结

技术汇编 第5篇

2015(第四届)化工产学研会议将于10月在山东召开。会议由山东省化工研究院、山东省化工信息中心主办,旨在搭建产学研交流平台,助力化工行业技术创新。作为山东省化工领域最大的全国性、综合性的产学研会议,每届都吸引国内几百位业内著名专家学者、企业负责人和国家有关管理机构的领导和业内精英前来参会,几十家主流媒体对会议进行全方位报道。

为做好会议前期准备工作,方便各高校及科研院所有针对性地与化工企业进行洽谈转让,会议组委会将对各化工高校、科研院所、研发中心、重点实验室的化工技术、项目、成果进行广泛征集。免费摘录,编入会刊《2015(第四届)中国化工产学研会议技术、项目、成果汇编》中,并免费发布到www.sdchem.net 。

同时,免费征集化工企业在生产以及未来发展中面临的技术难题及技术需求,编印成册后将通过会议、 网络、纸媒体等多种形式推送给参会单位及行业内众多知名专家、企业家,有针对性地邀请包括院士在内的各化工领域的高端专家学者对企业遇到的技术问题进行诊断、攻克难关,助力化工行业技术创新。请将电子版发送到hu@sdchem.net 。

技术汇编 第6篇

2015( 第四届) 化工产学研会议将于10月在山东召开。会议由山东省化工研究院、山东省化工信息中心主办,旨在搭建产学研交流平台,助力化工行业技术创新。作为山东省化工领域最大的全国性、综合性的产学研会议,每届都吸引国内几百位业内著名专家学者、企业负责人和国家有关管理机构的领导和业内精英前来参会,几十家主流媒体对会议进行全方位报道。

为做好会议前期准备工作,方便各高校及科研院所有针对性地与化工企业进行洽谈转让,会议组委会将对各化工高校、科研院所、研发中心、重点实验室的化工技术、项目、成果进行广泛征集。免费摘录,编入会刊《2015( 第四届) 中国化工产学研会议技术、项目、成果汇编》中,并免费发布到www. sdchem. net 。

同时,免费征集化工企业在生产以及未来发展中面临的技术难题及技术需求,编印成册后将通过会议、网络、纸媒体等多种形式推送给参会单位及行业内众多知名专家、企业家,有针对性地邀请包括院士在内的各化工领域的高端专家学者对企业遇到的技术问题进行诊断、攻克难关,助力化工行业技术创新。请将电子版发送到hu@ sdchem. net 。

专利汇编 第7篇

公开 (公告) 号:CN201225064Y

本实用新型是关于一种防水结构以及框架。该防水结构包括第一型材, 其具有中空腔体;第二型材, 具有中空腔体, 其一端与上述的第一型材的一端对接。角码连接件, 其两端分别插入上述第一型材和第二型材的中空腔体中;以及粘接层, 位于上述的角码连接件和上述的第一型材和第二型材的中空腔体内壁之间, 所述的第一型材和第二型材通过粘接层与所述的角码连接件牢固连接。在粘结层的作用下该防水结构的型材之间具有稳定的形状, 不会因外力冲击而变形松动, 从而可以使对接处具有良好的密封防止水的渗入。

防水结构

公开 (公告) 号:CN201209368Y

本实用新型是关于一种防水结构。该防水结构包括:墙体;框体, 固定在上述的墙体上;填料层, 设置于上述的框体和墙体之间;饰面层, 将上述的墙体、填料层和框体的一部分包围;密封胶层, 设置于所述饰面层与框体的交界处, 将饰面层与框体的接缝全部覆盖;以及弹性涂膜层, 设置于上述饰面层之下, 将墙体、填料层与框体的一部分覆盖。如上述结构构成的门窗的防水结构, 在大风、门窗开启和关闭撞击以及热胀冷缩等实际应用过程中, 由于该弹性涂膜层会保持完整以及与墙体和框体的紧密粘结, 从而可有效防止水渗入墙体或者渗入室内, 使具有本防水结构的门窗具有优良的防水效果。

新型智能塑料门窗

公开 (公告) 号:CN201236571

本实用新型涉及一种新型智能塑料门窗, 包括普通框、扇型材和智能开窗器, 其特征在于还包括智能门窗专用中梃型材和/或智能门窗专用框型材, 所述智能门窗专用中梃型材和智能门窗专用框型材设有增强型钢安装腔和智能开窗器安装腔, 在所述增强型钢安装腔中加设增强型钢, 在所述智能开窗器安装腔中放置所述智能开窗器。本实用新型具有组装工艺简化、整窗强度提高、成本节约的显著优势, 同时提高了整窗的保温、隔声性能及成窗采光率, 并有利于其普及或大众化, 开拓了智能塑料门窗的市场空间。

多功能钢结构安全房

公开 (公告) 号:CN201261911

本实用新型公开一种多功能钢结构安全房, 其特征是它是方型结构, 其前后左右四方的相互对称、相互平行、均布的方管上下各端与方型结构上下面相互对称相互平行的均布的方管各端焊接制成的钢结构架, 其钢结构架内外壁六面由钢板包装, 内钢板内壁六面设置软体, 内外壁钢板夹层的钢结构架各面设置平行的喷水管和喷水头, 其一端夹层内的水管连接, 内钢板内壁底边上的水管部位上设置手动阀门, 手动阀门不远处的夹层内设置温控电磁阀门, 本实用新型在突然发生地震或者火灾时完全保证人们生命安全。

地下给排水制冷/热装置

公开 (公告) 号:CN201273646

上一篇:道路管理成本控制分析下一篇:台湾大选