A. 汇编中什么叫子程序
能被其他程序调用,在实现某种功能后能自动返回到调用程序去的程序。其最后一条指令一定是返回指令,故能保证重新返回到调用它的程序中去。也可调用其他子程序,甚至可自身调用
B. 汇编语言子程序是如何定义的
这样定义的:
子程序名 PROC NEAR|FAR
拆则 .
.
RET
子程序名 ENDP
子程序名相当于标号,表示本过程的符号地址。过程有NEAR和FAR两种类型,FAR型的扮蚂过程可供段间调用,NEAR型过程仅供段内调用。
在一个过程中,至少要有一条返回指令RET,它可以书写在过程中的任何位置,但是过程执行的的最后一条指令一定是RET。
注意事项
一、子程序调用指令
格式:CALL [NEAR PTR] 子程序旅缺棚名
CALL指令的两个作用,1.将断点地址(CALL指令的下一条指令地址)压栈保存,2.转去子程序执行。
[NEAR PTR]可以省略。
二、返回指令
格式:RET [N]
指令作用:实现子程序执行完后返回主程序的指令。从堆栈栈顶弹出一个字数据(段内调用)送入IP作为返回地址。N是立即数,执行完RET之后,再将SP增加N,也叫“平栈”。
C. 什么是子程序,如何使用子程序呢
子程序(subroutine)是一个概括性的术语,任何高级程序所调用的程序,都被称为子程序。它经常被使用在汇编语言层级上。子程序的主体(body)是一个代码区块,当它被调用时就会进入运行。
一般程序设计语言包含两种基本的抽象:过程抽象和数据抽象。过程抽象有时也称控制抽象。子程序是最主要过程抽象机制。面向对象语言中的方法与子程序的概念十分相似,不同在于它们的调用以及它们与类或对象关联的方式。每个子程序只有一个入口。在执行期间,调用程序单位被停止执行,即任意时刻只有一个子程序在执行子程序执行完毕后,总是将控制返回给调用程序
(3)什么是汇编子程序嵌套调用扩展阅读:
子程序的应用
1、零件上若干处具有相同的轮廓形状,在这种情况下,只要编写一个加工该轮廓形状的子程序,然后用主程序多次调用该子程序的方法完成对工件的加工。
2、加工中反复出现具有相同轨迹的走刀路线,如果相同轨迹的走刀路线出现在某个加工区域或在这个区域的各个层面上,采用子程序编写加工程序比较方便,在程序中常用增量值确定切入深度。
3、在加工较复杂的零件时,往往包含许多独立的工序,有时工序之间需要适当的调整,为了优化加工程序,把每一个独立的工序编成一个子程序,这样形成了模块式的程序结构,便于对加工顺序的调整,主程序中只有换刀和调用子程序等指令。
D. 什么情况使用子程序,什么是子程序的套深
当一段代码需要在许多地方经常使用时,或者为了程序的结构更清晰将实现一定功能的程序段模块化时,需要使用子程序。
在子程序再调用子程序,这就是嵌套,嵌套的层数即 套深。
E. 用汇编语言编写子程序后如何调用
通过C语言函数形式封装汇编语言程序段,而后就可完全按照C语言函数的形式调用。这种方法保证了子程序段与主程序衔接的完全适配,使用简便。使用方法如下:
用低划线_后接关键字asm指示后面的语句是汇编语句。汇编语句既可以是单句,例如__asm mov bx,1;也可以是复合语句,即,用花括号对包含的多条单句,例如:
__asm
{ mov al, 3
mov dx, 0xE008
add ax,dx
}
在语法规则中,这些语句与C语言的语句完全等价。因此,可以直接进行编译。
F. 数控车床中,什么是子程序
当一个被加工零件,有多个部位有相同之处时,加工轨迹也相同,如一根轴上每10mm就切一槽,深度、宽度都是2mm,共5条槽,切槽程程序肯定相同,不同的是切完一条槽退出后,向一个方向移动10mm后再切,为了简化程序,我们把那个切槽程序专门编写一个程序,称为子程序,那么再切槽时就不必每次编写程序而可调用5次子程序,并且切完槽后回到目前的程序(主程序),继续进行其它该做的程序。 当然间距不等而槽形相同也一样能调用子程序。
那个子程序与主程序一样,有一个独立的程序号,不包含在主程序里,实际上也是一个程序。