㈠ C语言的子程序有哪几种,什么是逻辑类型集合类型什么是C语言用户标识符
汇编语言的实质和机器语言是相同的,都是直接对硬件操作,只不过指令采用了英文缩写的标识符,更容易识别和记忆。它同样需要前仔编程者将每一步具体的操作用命令的形式写出来。汇编程序通常由三部分组成:指令、伪指令和宏指令。汇编程序的每一句指令只能对应实际操作过程中的一个很细微的动作,例如移动、自增,因此汇编源程序一般比较冗长、复杂、容易出错,而且使用汇编语言编程需要有更多的计算机专业知识,但汇编语言的优点也是显而易见的,用汇编慧滚汪语言所能完成的操作不是一般高级语言所能实现的,而且源程序经汇编生成的可执行文件不仅比较小,而且执行速度很快备弯。
㈡ 3、子程序的RET指令执行时,FAR 类型和 NEAR类型有何差异为什么
子程序名相当于标号,表示本过程的符号地址。
过程有NEAR和FAR两种类型,FAR型的过程可供段间调用,NEAR型过程仅供段内调用。 在一个过程中辩消,至少要有一条返回指升御令RET,它可以书写在过程中的任何位置,但是过程执行的的最后一条指令一定是RET。
子程序在其任务完成后,执行的最后一条汇编指令是RET。根据对该子程序的调用是段内调用还是段间调用,其要实现的操作是不相同的。如果是段内调用,那么RET指令的功能只是把存放在堆栈里的返回地址送IP寄存器;如果是段间调用,那么RET指令的功能就是要把存放在堆栈里的返回地址和段地址,分别送IP寄存器和CS寄存器。因此,RET指令的使用也有多种吵灶岩形式:段内返回、段内带立即数返回、段间返回和段间带立即数返回。
㈢ 谁能告诉我一些关于数控车床的系统及它的指令
数控车床程序的构成
一、 主程序和子程序
1、 主程序
程序分为主程序和子程序,通常CNC系统按主程序指令运行,但在主程序中遇见调用子程序的情形时,则 CNC 系统将按子程序的指令运行,在子程序调用结束后控制权重新交给主程序。
CNC 存储区内可存 l25个主程序和子程序。程序开始的程序号用 EIA 标准代码O地址指令。
2、子程序
在程序中有一些顺序固定或反复出现的加工图形,把这些作为子程序,预先写人到存储器中,可 大大简化程序。
机电专业技术网
子程序和主程序必须存在同一个文件中,调出的子程序可以再调用另一个子程序,我们将主程序调用子程序称为一重子程序调用,子程序调用子程序称为多重调用。
一个子程序可被多次调用,用一次调用指令可以重复 999 次调用。
l )子程序的编制
在子程序的开始为O地址指定的程序号、子程序中最后结束子程序指令 M99 ,为一单独程序段。
2 )子程序的执行
子程序是由主程序或上层子程序调山并执行的。
子程序调用指令如下:
M98 P **** L x x x x
调用子程序指令 子程序号 子程序调用次数
子程序调用次数的默认值为 1
(例 l ) ; M98PL002L5 %1002 号子程序被连续调用 5 次 机电专业技术网
M98 指令可与刀具移动指令放于同一程序段中。
[注1]子程序和主程序必须存在同一个文件中
[注2]子程序名和主程序名不得相同。
[注3]M98 , M99 信号不愉出到机床处,
[注4]当找不到 p 地址指定的子程序号时报警。
[注5]在 MDI 下使用 M98 P **** 调用指定的子程序是无效的。
二、文件名
CNG 装置可以装人许多程序文件,以磁盘文件的方式读写。文件名格式为(有别于DOS的其他文件名) :
%XXXX(地址 O 后面必须有四位数字)
程序以程序号开始,以 M 叩或 M 的结束。
程序号格式为% XxXx ; (地址 O 后面必须有四位数字)
M02 表示主程序结束。 机电专业技术网
M99 表示子程序结束,并返回到主程序中。
三、顺序号和程序段
程序是由多条指令组成,每一条指令都称为程序段(占一行)。
程序段之间应用符号隔开,本说明书规定每个程序段的末尾以“;”作为程序段的结束,构成程序段的要素是程序字,程序字由地址及其后续的数值构成。
[注1] 程序段中字符数没有限制.
[注2] ISO代码中程序段结束符号为 LF
EIA 代码中程序段结束符号为 CRo
程序顺序号由 N 指明,范围为1—9999,顺序号是任意给定的,可以不连续可以在所有的程序段中都指定顺序号,也可只在必要的程序段指明顺序号
四、字和地址
程序段由字组成,而字由地址和地址后带符号的数字构成,如下所示:
X-----------------------------1000
机电专业技术网
[地址 数字] 字
地址是大写字母 A 到 2 中的一个,它规定了其后数字的意义,以下是本系统使用的各个地址的含义和指令值范围。见表 1一1
机电专业技术网
表 1一1
机电专业技术网
这些字组合在一起就形成了一个程序段,如下例所示:
M10 Xl00 Z200 M03
注 1 NC 装置所引起的限制和机床的限制是二个完全不同的概念,例如 NC 装置 X 轴的移动量可以指令约 l0m(m米为单位时) 但实际机床的 X 轴行程可能只有 2m,进给速度也是如此,作为 NC 装置可以进给速度控制到15m/分,但实际的机床就要限制到3m/分,因而,当编程序时,应将系统说明书与机床说明书熟悉,在很好理解的基础上。
注 2 每转进给速度是根据主抽转速而转换成每分钟进给量后按每分钟进给量执行的
http://jdzyjs.com/jixie/gc/8617.html
http://bbs.cmiw.cn/forums/4020/ShowPost.aspx
http://cncol.com.cn/Article/pro/200610/523.html
http://jdzyjs.com/jixie/gc/8647.html
㈣ 请问大家 汇编语言中 子程序调用指令和跳转指令有什么区别谢谢
简单点说,call指令在跳转前保存当前指令地址,而jmp一类的指令不保存当前指令的地址。
详细点说:
call指令在跳转前会在栈中保存当前的程序计数器(IP)的值(有必要的话还要保存CS),保存完IP的值后,再去执行跳转指令。即相当于:
push CS (没有这种指令,有没有这一句还要看调用的类型:far/near)
push IP (没有这种指令)
jmp [word ptr/dword ptr] ...
这样,程序在执行ret/retf指令时就能从栈中取出IP的值,即相当于:
pop IP (没有这种指令)
pop CS (没有这种指令,有没有这一句也要看调用的类型)
来继续执行call指令后的其他指令,当然你也可以选择不执行ret,而把call当做jmp来用。这样也没有问题(没人这么干),只不过栈里多了点东西罢了,记得处理就好。
而形如jmp一类的指令只是简单的执行跳转(修改IP的值),并不保存IP的值。当然跳转后程序也就不知道原来是从哪里跳转到这里来的,自然就无法返回。
当然,这个时候ret指令还是可以用的,因为ret指令只是简单的从栈顶取出一个word然后赋给IP,所以也可以用ret指令来实现jmp的功能(也没人这么干)。如:
mov bx,offset s
push bx
ret
这样就相当于:
jmp s
所以说不要只是记一个指令怎么用,而是要理解一个指令到底是什么原理。
㈤ 子程序的末尾有什么指令
子程序的末尾一定要有RETI指令,子程序的调用是LCALL和ACALL。
RETI是中断返回指令,这条指令的功能和RET指令相似,2条指令的不同之处是:本指令清除了中断响应时,被置1的MCS-51内部不可寻址的 “优先级生效”触发器清零。
执行这条指令后,CPU将会把堆栈中保存着的地址取出,送回PC,那么程序就会从主程序的中断处继续往下执行了。中断指令“RETI”作为中断跳出指令,除了将堆栈中保存着的地址取出,送回PC,使程序从主程序的中断处继凳培续往下执行的作橡搏用外,还有将“优先级梁粗祥生效”触发器清零的功能。
(5)子程序有什么和什么两大指令扩展阅读
单片机汇编指令中RETI和RET的区别
通常情况下,在普通的汇编子程序中用RET做返回,在中断服务子程序中用RETI起中断返回作用。两条指令都能从堆栈中弹出断点地址并装入PC中,使CPU回到原来主程序的断点处继续运行。
然而,RET和RETI有本质的区别:当某一中断源响应后,单片机中的标志寄存器flag H和flag L其中的一个将会自动置位,用于阻止比它低级或同级的中断触发。RETI可以清除“优先级激活触发器”(即flag寄存器),以保证后续中断源的及时响应。
所以,当把RETI替换为RET后,该程序在第一次运行时可能不会出错,但在第二次运行时就会出错了。
㈥ 什么是子程序,如何使用子程序呢
子程序(subroutine)是一个概括性的术语,任何高级程序所调用的程序,都被称为子程序。它经常被使用在汇编语言层级上。子程序的主体(body)是一个代码区块,当它被调用时就会进入运行。
一般程序设计语言包含两种基本的抽象:过程抽象和数据抽象。过程抽象有时也称控制抽象。子程序是最主要过程抽象机制。面向对象语言中的方法与子程序的概念十分相似,不同在于它们的调用以及它们与类或对象关联的方式。每个子程序只有一个入口。在执行期间,调用程序单位被停止执行,即任意时刻只有一个子程序在执行子程序执行完毕后,总是将控制返回给调用程序
(6)子程序有什么和什么两大指令扩展阅读:
子程序的应用
1、零件上若干处具有相同的轮廓形状,在这种情况下,只要编写一个加工该轮廓形状的子程序,然后用主程序多次调用该子程序的方法完成对工件的加工。
2、加工中反复出现具有相同轨迹的走刀路线,如果相同轨迹的走刀路线出现在某个加工区域或在这个区域的各个层面上,采用子程序编写加工程序比较方便,在程序中常用增量值确定切入深度。
3、在加工较复杂的零件时,往往包含许多独立的工序,有时工序之间需要适当的调整,为了优化加工程序,把每一个独立的工序编成一个子程序,这样形成了模块式的程序结构,便于对加工顺序的调整,主程序中只有换刀和调用子程序等指令。
㈦ 主程序调用子程序编程指令是什么
主程序调用子程序编程指令是:右击——插入——OB,然后填上OB100,OB由系统调用,并非由用户调用。
一般会有输入参数并有返回值,提供对过程的封装和细节的隐藏。这些代码通常被集成为软件库。函数在面向过程的语言中已经出现。是结构和类的前身。本身就是对具有相关性语句的归类和对某过程的抽象。
转子指令和返回指令:
在子程序的调用与返回过程中,子程序的入口地址是指子程序第一条指令的地址。用于调用子程序、控制程序的执行从主程序转向子程序的指令称为专注指令(子程序调用指令、过程调用指令)。为了正确调用子程序,必须在转子指令中给出子程序的入口地址。
主程序中转子指令的下一条指令的地址称为断点,断点是子程序返回主程序的返回地址,从子程序返回主程序的指令称为返回指令。为了在执行返回指令时能够正确地返回主程序,转子指令应具有保护断点的功能。
执行转子指令时保护断点的方式有多种,常用的有:将断点保存到子程序第一条指令的前一个字单元;将断点保存到某一约定的寄存器中;将断点压入堆栈。