易语言子程序、参数和变量什么意思啊?

易语言子程序、参数和变量什么意思啊?,第1张

子程序里边的"参数" 是从外部传递进来的数据.

假设

执行该命令 子程序1("传送的数据")

-------------------------------------

.子程序 子程序1

.参数 参数1, 文本型

信息框 (参数1, 0, )

那么信息框会输出 传输的数据.这就是参数的作用.

那么当你看完上面的方法后,下面我们来举一个算数例子.

.子程序 加法运算

.参数 参数1, 整数型

.参数 参数2, 整数型

.局部变量 结果, 整数型

结果 = 参数1 + 参数2

信息框 (结果, 0, )

这里我们用到了1个变量.还有2个参数

2个参数由外部传输进来.相加以后给变量,作为结果.然后显示.

---------------------------------------

这里边要注意一下.假如说

我们这样调用一下.

.子程序 子程序2

.局部变量 变量1, 整数型

加法运算 (1, 变量1)

这样子呢.变量是0 相加结果是1

如果我们把加法运算修改一下.改成以下方式

.子程序 加法运算

.参数 参数1, 整数型

.参数 参数2, 整数型

参数2 = 参数1 + 参数2

我们继续调用一下 子程序2

.子程序 子程序2

.局部变量 变量1, 整数型

加法运算 (1, 变量1)

这样调用以后的结果呢 子程序2里边的变量1的值就是 1.因为我们传了参数1 = 1. 他们进行累加

然后赋值给 参数2.因此参数2的值就改变了.

总结.变量 是 子程序内部使用的 参数呢是由外部传递进来的.如果替换了参数 可能把从传递过来的地方的值修改了.

在我们写代码的时候 如果要反复 调用参数的时候 就要注意了.

该信息由云豆思提供,仅供参考学习.如有什么不懂地方,欢迎请教!

子程序一般都是完成某种特定功能的程序段。当一个程序调用一个子程序时,通常都向子程序传递若干个数据让它来处理;当子程序处理完后,一般也向调用它的程序传递处理结果,我们称这种在调用程序和子程序之间的信息传递为参数传递。

用程序向子程序传递的参数称为子程序的入口参数,子程序向调用它的程序传递的参数称为子程序的出口参数。子程序的入口参数和出口参数都是任意项,对某个具体的子程序来说,要根据具体情况来确定其入口和出口参数,也可以二者都没有。

程序和被调用子程序之间的参数传递方法是程序员自己或和别人事先约定好的信息传递方法。这种信息传递方法可以是多种多样的,在本节,我们只介绍常用的、行之有效的参数传递方法有:寄存器传递参数、约定存储单元传递参数和堆栈传递参数等。如果对其它的参数传递方法感兴趣的话,可参考其它《汇编语言程序设计》书籍。

7.3.1 寄存器传递参数

一方面,由于CPU中的寄存器在任何程序中都是“可见”的,一个程序对某寄存器赋值后,在另一个程序中就能直接使用,所以,用寄存器来传递参数最直接、简便,也是最常用的参数传递方式。但另一方面,CPU中寄存器的个数和容量都是非常有限,所以,该方法适用于传递较少的参数信息。

例7.1是用寄存器传递参数的例子,子程序处理的数据被保存在寄存器AL中。假设有下列的程序段:

MOVAL, ’b’

CALLUPPER子返回时,(AL)=’B’

MOVAL, ’2’

CALLUPPER子返回时,AL的值不变,因为’2’不是字母

例7.3 按五位十进制的形式显示寄存器BX中的内容,如果BX的值小于0,则应在显示数值之前显示负号’-’。

例如:(BX)=123,显示:00123;(BX)=-234,显示:-00234;

解:

子程序功能:把寄存器BX的内容按十进制有符号数显示出来

入口参数:BX

出口参数:无,只有显示信息

算法描述:

1、定义6个字节的存储单元

2、先判断BX是否小于零,如果是,则先显示负号’-’,再取BX的绝对值;

3、采用除10,得余数的方法,从低位向高位求出每位十进制位;

4、输出数据的字符串。

SubDataSEGMENT

DB 5 DUP(’0’), 0ah, 0dh, ’$’0ah、0dh:换行、回车

SubDataENDS

DISPBXPROC

ASSUMEDS:SubData

PUSHDS

PUSHDX

PUSHCX

PUSHAX

MOVAX, SubData取子程序所用的数据区段地址

MOVDS, AX

CMPBX, 0

JGEnext

MOVDL, ’-’

MOVAH, 2

INT21H显示负号’-’

NEGBX求-BX,使其值为正数

next:MOVSI, 4

MOVAX, BX

MOVCX, 10D

again:XORDX, DX

IDIVCXDX存放余数,AX存放商

ADDDL, ’0’

MOV[SI], DL

DECSI

JGEagain

XORDX, DX

MOVAH, 9

INT21H调用中断21的功能9,显示DS:DX指向的字符串

POPAX

POPCX

POPDX

POPDS

RET

DISPBXENDP

对于你的这个问题我不知道是不是用初学者的方式跟你解答与否。

比如最开始学编程时所使用的“信息框(,,)”这个子程序(这是系统自带的),

而你使用的时候是填了默认的信息框(“信息”,0,“窗口标题”);

其中用逗号隔开的几个间隔之间里填写的就是参数。

如果这个子程序是你自定义的子程序,则你需要在子程序名那敲下回车就会自动下拉一个子程序下的参数表表格,此时你需要填的是参数名和参数的数据类型:

我这里给你提供一个简单的事例吧

.子程序 __启动窗口_创建完毕

子程序1 (“这里写你的内容”)

.子程序 子程序1

.参数 str, 文本型

信息框 (str, 0, “标题”)

-------------------------------------------------------------------------

代码易语言化及运行结果图:


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/8131053.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存