普通程序利用子程序实现无限循环,只是宏程序具有通用性,只需要修改其中的变量即可进行不同尺寸相同形状的零件的加工,而且宏程序能够计算函数,能够方便的进行加工较难加工有规律的圆弧,例如锥台,椭圆,球。而且占用的程序空间较小。
伪指令是用来告诉编译器如何编译源程序的
宏指令是由用户按照宏定义格式编写的一段程序,其中语句可以是指令、伪指令,甚至是已定义的宏指令。
伪指令和指令的区别在于,每一条指令必须生成机器代码,然后在程序运行期间由CPU来执行其 *** 作;而伪指令是在汇编期间由汇编程序执行的 *** 作命令,除了数据定义及存储器分配伪指令分配存储器空间外,其它伪指令不生成目标码。和各种指令一样,伪指令也是程序设计不可缺少的工具。
宏是伪指令,宏的作用是把一个复杂的或者是不直观的语句或是组合用一个简单的、易记的形式表示,当编译器遇到源程序中的宏时,就把它定义的内容原封不动的copy过来。如果程序中使用100次宏,这段代码就被复制100次。因此,使用多次调用能使源程序变短,而不能使运行代码变短(子程序调用可以,但也增大系统开销)。
子程序是为了简化主程序而编辑出来的辅助程序,可以呼叫一次也可以呼叫多次进行复杂一些的零件加工。
宏程序是利用宏运算而编辑出来的程序,里面涉及到变量的加减乘除平方开平方等运算,可以进行一些普通程序代码无法加工出来的零件加工,如抛物线外形,椭圆,偏心圆等等
子程序里面可以用宏程序来编辑,在主程序当中呼叫,同样,宏程序中也可以出现呼叫副程序的命令,具体的编辑方法根据零件来决定
宏程序可用以下方法调用:
简单调用 G65;
模态调用 G66、G67;
用 G 代码调用宏程序;
用 M 代码调用宏程序;
用 M 代码的子程序调用;
用 T 代码的子程序调用。
1宏程序调用和子程序调用的区别
用 G65可以指定实参(传送给宏程序的数据),而 M98没有此能力。
当 M98程序段包含其他 NC 指令(如:G01 X1000 M98 P )时,在该指令执行完后调用子程序,而 G65则无条件调用宏程序。
当 M98程序段包含其他 NC 指令(如:G01 X1000 M98 P )时,在程序单段运行模式下机床停止,而 G65不会让机床停止。
G65调用时,局部变量的层次被修改,而 M98调用不会更改局部变量的层次。
2简单调用 G65
宏程序的简单调用是指在主程序中,宏程序可以被单个程序段单次调用。
当指定 G65调用时,地址 P 后指定的用户宏程序被调用,同时数据(实参)被传递给用户宏程序。
调用指令格式:G65 P(宏程序号)L(重复次数)(变量分配)
其中:G65——宏程序调用指令;
P(宏程序号)——被调用的宏程序号;
一.
1ADD BX,AX 或 ADD BL,AL ;类型配对
2MOV AX,0A999H
3MOV AX,0F8H
4MOV AX,1234H 或 MOV AL,12H
5MOV AX,[BX]
6MOV DS,AX ;DS不能直接存立即数
7ADD [BX],10 ;对
8PUSH AX ;push不能直接push立即数
9IN AL,DX
10OUT 40H ,AL
11MUL AL ;mul不能直接跟立即数
12MOV [DI],AX ;mov不能两个都是内存
13ADD DI,AX
14MOV DS,AX ;CS不可以改
15SUB 10[SI],AX ;si di 不可以同时出现
二.
SUB [BP], BX 寄存器间接寻址方式;30400H;
MOV [BX+DI], SI 基址变址寻址方式;10400H;
ADD ES:[SI], DI 寄存器相对寻址方式;20200H;
MOV 10[BX], DI 寄存器相对寻址方式;10100H;
MOV DS:[100H], BX 相对基址变址寻址方式;10100H
三.
3456H;5678H;1234H;5678H;
四.
1234H;2468H;0008H;1008H;0804H;0408H;0508H;0508H
五.
01H,31H,0FFH,00H,78H,56H,FFH,FFH,00H,24H,00H,0BH,00H,0BH,19H,09H,09H
(从左往右地址变大)
AX=3101H,BX=0023H
六.
1
汇编语言:(AssemblyLanguage)是面向机器的程序设计语言。
汇编:把汇编语言翻译成机器语言的过程称为汇编。
汇编程序:把汇编语言书写的程序翻译成与之等价的机器语言程序的翻译程序。汇编程序输入的是用汇编语言书写的源程序,输出的是用机器语言表示的目标程序。汇编语言是为特定计算机或计算机系列设计的一种面向机器的语言,由汇编执行指令和汇编伪指令组成。采用汇编语言编写程序虽不如高级程序设计语言简便、直观,但是汇编出的目标程序占用内存较少、运行效率较高,且能直接引用计算机的各种设备资源。它通常用于编写系统的核心部分程序,或编写需要耗费大量运行时间和实时性要求较高的程序段。
2
3
单独cmpsb就是逐一比较8个位;加上rep,循环比较,还是比较这8位啊
4
是指在计算机执行期间,系统内发生任何非寻常的或非预期的急需处理事件,使得CPU暂时中断当前正在执行的程序而转去执行相应的时间处理程序。待处理完毕后又返回原来被中断处继续执行或调度新的进程执行的过程。
5
宏和子程序都是为了简化源程序的编写,提高程序的可维护性,但是它们二者之间存在着以下本质的区别:
1、在源程序中,通过书写宏名来引用宏,而子程序是通过CALL指令来调用;
2、汇编程序对宏通过宏扩展来加入其定义体,宏引用多少次,就相应扩展多少次,所以,引用宏不会缩短目标程序;而子程序代码在目标程序中只出现一次,调用子程序是执行同一程序段,因此,目标程序也得到相应的简化;
3、宏引用时,参数是通过“实参”替换“形参”的方式来实现传递的,参数形式灵活多样,而子程序调用时,参数是通过寄存器、堆栈或约定存储单元进行传递的;
4、宏引用语句扩展后,目标程序中就不再有宏引用语句,运行时,不会有额外的时间开销,而子程序的调用在目标程序中仍存在,子程序的调用和返回均需要时间。
总之,当程序片段不长,速度是关键因素时,可采用宏来简化源程序,但当程序片段较长,存储空间是关键因素时,可采用子程序的方法来简化源程序和目标程序。
七
…………
以上就是关于数控加工宏程序与普通程序的区别全部的内容,包括:数控加工宏程序与普通程序的区别、87. 宏指令与伪指令的区别是什么、宏指令 子程序相同点等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)