最新新闻
我要投稿
联系电话:027-87592219/20/21转188
投稿邮箱:tb@e-works.net.cn
您所在的位置:首页 > 智库 > 智能生产

数控技术中的高级语言调用低级语言处理

发布时间:2013-09-29 作者:赵先仲  来源:万方数据
本文通过第1象限直线插补实例说明了用c语言调用汇编语言程序的实现步骤和方法。在本例中既使用了屏幕动态显示运动轨迹,也发出了电机控制信号。

2 生成被调用的汇编语言目标文件

  2.1 制作一个被调用的汇编语言框架

  (1)制作一个C语言空函数

  在C语言环境中建立一个空函数,空函数内容为:

  zxcb(){}

  本例的文件名为zxasm.cpp。

  (2)将空函数文件转换成汇编语言文件在windows命令提示符状态下,用命令bcc—SZXaSm 回车,该命令生成一个zxz路m.嬲m汇编语言框架文件。该命令在Borhndc(或Turboc中的tcc命令等)的bin文件夹下。

  2.2 在框架文件中加入汇编语言内容

  打开zxasm.asm汇编语言程序框架文件,在框架中加入汇编语言程序内容。本例的汇编语言为第一象限直线插补程序。下列程序中的带汉字说明的语句是加入的内容。将其用原名存盘。

程序

程序
程序
程序

  2.3 参数传送说明

  c语言程序在调用汇编语言程序时以函数的形式调用。本例中在主函数的前面定义了一个名字为zxcb的函数,该函数中有8个参数,8个参数的用途见程序中的注解。

  在汇编语言程序中,框架中保护了bp,并且用pb指向堆栈,在汇编程序中如果使用了8i和di还要保护8i和di。如果汇编语言返回给C语言程序数据时,一般数据用ax。

  当C语言用有参函数调用汇编语言程序时,参数将会自动地压入堆栈,由于在汇编语言中有pushbp、push 8i、push di语句,同时堆栈中还有返回c程序的地址。所以在本例中的8个参数的地址在bp+8以后。第1个参数的地址是bp+8,每个参数占两个字节。

  2.4 将汇编语言程序汇编成目标文件

  在windows命令提示符状态下用命令t鲫:n/mlzxasm.asm回车将zxasm.asm文件汇编成目标文件zxasm.obi。命令中的/ml选项使外部名字小写。该命令在Borlandc(或Turboc等)的bin文件夹下。该步骤也可用宏汇编MASM完成。

3 连接成可执行文件

  将目标文件zxdasm.obj和zxasm.obi文件连接成可执行文件,就可以在windows命令提示符下运行了。

  用命令tlink C08 zxdasm zxasm,zxsy,,Csgraphic8回车将目标文件连接成可执行文件,该文件可在命令提示符状态下运行。该命令在Borhndc(或Turboc等)中的bin文件夹中。命令中的zxdasm和zxasm是要连接的目标文件C0s使用C0s.obi,它包含启动程序和DOs所规定的头部信息。cs是使用c8.nC的标准小模式库。graphics是使用graphics.1ib图形库。zxsy为连接后的可执行文件名。

4 结语

  用这种方法可以在C程序中调用多个汇编语言程序,可以方便地实现对硬件进行各种控制。同时程序运行的速度可以大大加快,程序长度也可相应的缩短。

2
本文为授权转载文章,任何人未经原授权方同意,不得复制、转载、摘编等任何方式进行使用,e-works不承担由此而产生的任何法律责任! 如有异议请及时告之,以便进行及时处理。联系方式:editor@e-works.net.cn tel:027-87592219/20/21。