三九宝宝网宝宝百科宝宝知识

子程序的参数传递

11月22日 编辑 39baobao.com

[幸福快乐传递——开学第一天]开学的第一天,轮到我早班,早早来到教室,可是发现孩子们故意和我躲猫猫,等很久还是没有孩子来班级报到。是下雨天的关系,是新学期的第一天,是习惯了赖床 各种可猜测的因素在头脑里...+阅读

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

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

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

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

IDIVCX;DX存放余数,AX存放商

ADDDL, ’0’

MOV[SI], DL

DECSI

JGEagain

XORDX, DX

MOVAH, 9

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

POPAX

POPCX

POPDX

POPDS

RET

DISPBXENDP

以下为关联文档:

孩子口中的“屎尿屁”,竟然传递出这么重要的信号一位妈妈说:我儿子3岁了,最近特别喜欢研究他的屎尿屁。每次拉完臭臭尿完尿,都要蹲下来看好久。还经常要闻一闻。我下班回家,他跟我分享的第一件事情绝对是他的屎尿屁,“妈妈,我今...

不要让你对孩子说的每句话都在传递,我不爱你!小D周末吃午饭,吃到一半,突然对我们说,“我可以吃小熊饼干吗?”他爸爸马上和颜悦色地说,“不可以哦,我们要到吃点心的时间才能吃”。话音刚落,小D马上从刚开始的询问句转变成了命令...

精城合作展教研团队精神——传递大班教研组正能量近日,我们大班教研组又传喜讯:在上学期的平湖市优秀教研组材料检查中,我们教育组的成绩名列前茅,虽然成绩还没有完成出来,但是这足以是对我们这几年工作的肯定。我们教研组由两位...

宝宝哭闹是正常的信号传递母乳喂养的宝宝拥有更富挑战性的性格最近,在线杂志《公共科学图书馆》上的一篇研究论文显示,和奶粉喂养的婴儿相比,母乳喂养的婴儿会更容易发怒,更少微笑、大笑以及更少咿呀发...

小班幼教手记——爱心在传递妈妈,这个小姐姐真可怜! 这是我与女儿说了唐微媚小朋友的病症后,女儿跟我说的话。女儿还说: 妈妈,我们是不是应该帮帮她呢,我把压岁钱拿去给姐姐看病吧。 很开心女儿有这样的意识,...

传递老年人正能量共筑“中国梦”实现中华民族的伟大复兴,就是中华民族近代以来最伟大梦想。中国梦是中华民族的梦,是中国共产党的梦,是十四亿人民共同的梦,也是广大中国老年人的梦。实现中华民族的伟大复兴是饱...

子程序的调用和返回指令子程序的调用和返回是一对互逆操作,也是一种特殊的转移操作。一方面,之所以说是转移,是因为当调用一个子程序时,程序的执行顺序被改变,CPU将转而执行子程序中的指令序列,在这方面...

呼吸链与电子传递[细胞生物学]呼吸链与电子传递 在三羧酸循环中,乙酰CoA氧化释放的大部分能量都储存在辅酶(NADH和FADH2)分子中。细胞利用线粒体内膜中一系列的电子载体(呼吸链),伴随着逐步电子传递,将NADH或FAD...

分享阅读的快乐,传递灵动的智慧在这丹桂飘香、果实累累的金秋十月,我们6所结对园的老师们也收获着 早期阅读教学 研究的累累硕果,在各园分别研讨、推荐的基础上,10月22日,汇聚各园教师智慧的6个阅读活动在实幼...

推荐阅读
图文推荐