- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
汇编语言——子程序及参数
* 6.3.3 带参数的子程序 【例6.5】编写一个子程序,对一个无符号的字型数组的各元素求和。在调用子程序之前,已把数组的段地址放在DS中,起始偏移地址放在寄存器SI中,数组元素个数(0)放在CX中。要求子程序把计算结果以双字的形式存放,高位放在DX中,低位放在AX中。 【解】 sum PROC NEAR PUSH BX ;保护用到的寄存器BX XOR AX,AX MOV DX,AX ;求和前先把存放结果的DX,AX清0 MOV BX,AX s1: ADD AX,[BX+SI] ;把一个元素加到AX中 ADC DX,0 ;若有进位,DX加1 INC BX INC BX ;BX加2,指向数组的下一元素 LOOP s1 POP BX ;恢复寄存器BX的值 RET sum ENDP 子程序说明应该包含如下4个部分: (1)子程序的功能。用来指明该子程序完成什么样的操作。 (2)入口参数。说明调用子程序前应该把什么样的数据放在什么地方。 (3)出口参数。说明调用后从什么地方取得处理结果。 (4)破坏的寄存器。指出子程序中哪些寄存器没有被保护。 6.3.4 参数传递的方法 1.通用寄存器传值 2.通用寄存器传地址 3.标志寄存器传递逻辑型数据 【例6.6】编写一个子程序,以放在AX中的公元年份为入口参数,判断该年是否为闰年。 另有一个应用程序,它已定义了一个字节型数组t,依次存放着12个月的每月天数,其中2月份的天数是28。应用程序已经在DX中存放了年份值,利用前面编写的子程序,编写程序段调整数组t中2月份的天数。 【解】子程序清单如下: ;功能:判断一个年份是否为闰年 ;入口:AX = 公元年份 ;出口:CF,1表示是闰年,0表示非闰年 ;破坏寄存器:AX jud PROC NEAR PUSH BX PUSH CX PUSH DX MOV CX,AX ;临时保存年份值 MOV DX,0 MOV BX,4 DIV BX ;除以4,为预防溢出,用双字除以字 CMP DX,0 JNZ lab1 ;不能整除4则不是闰年,转 MOV AX,CX ;取回年份值 MOV BX,100 DIV BX ;除以100 CMP DX,0 JNZ lab2 ;不能整除100则是闰年,转 MOV AX,CX MOV BX,400 DIV BX ;除以400 CMP DX,0 JZ lab2 lab1:CLC ;把CF清0表示非闰年,设置出口参数 JMP lab3 lab2:STC ;把CF置1表示是闰年,设置出口参数 lab3:POP DX POP CX POP BX RET jud ENDP 对于DX中存放的年份值,需要先放到AX中,才能调用子程序jud,然后以调用返回后的CF值决定是否把t数组中表示2月份天数的[t+1]加1。程序段如下: MOV AX,DX CALL ju
您可能关注的文档
- 气动控制设计 空气动力学及热功基础-努伯利方程及其应用.ppt
- 氧化铪在半导体器件中及应用和发展.ppt
- 氨基酸及其重要衍生物及生物合成2010.ppt
- 氨基酸含量及测定-茚三酮比色法.ppt
- 水力学讲义第二章液体运动及流束理论.ppt
- 水力学4.3伯努利方程及意义和应用.ppt
- 水及健康概述(道和).ppt
- 水及分解及合成(一).ppt
- 水及浮力 浙教版.ppt
- 水文及水资源学 第五章 设计洪水分析及计算.ppt
- 江理工复变函数及积分变换及课件.ppt
- 江苏全面小康和基本现代化及几个问题.ppt
- 江苏地区2012届高三化学复习课件:专题5-第4讲-解题技能—元素推断题及思维模型和解(苏教版).ppt
- 求向量组及极大无关组.ppt
- 江苏大圆银泰及交易规则.ppt
- 江苏大圆银泰贵金属及交易规则和优势.ppt
- 江苏大圆银泰贵金属如何建立高胜算及现货白银投资理论.ppt
- 江苏省2013-2014学年高二上册生物同步课件:3.1 生物群落及基本单位——种群 苏教版 必修3.ppt
- 江苏省专转本高数全部知识点第一讲:极限、洛比塔法则第五讲利用导数证明不等式及导数及应用.ppt
- 江苏省专转本高等数学第三节 极限及运算法则第四节 无穷小(量)和无穷大(量).ppt
文档评论(0)