编写程序实现对输入命令行参数求和求和30h开始的10个二进制数的和,结果放在寄存器a和B中(低字节放在a中)

    子程序是由设计者定义的完成某種功能的程序模块一旦定义了,该子程序可被任意调用

LEA SI , BUFR ;子程序待输出的数据的首地址

CMP AL 0AH ;判断输出数据是否为结束

上面的子程序,可以把数据段 BUFR 缓冲区以 OA 结束的数据,输出到 03F 8H 端口
主程序在调用子程序时,一方面初始数据要传递给子程序另一方面子程序运行的結果要传递给主程序。尽管没有初始数据或没有运行结果的情况也有但一般情况下是必须考虑的。 在编写较为复杂的子程序时可能出現子程序中调用子程序的情况,通常称这种情况叫子程序嵌套子程序嵌套层次的深度受堆栈大小的影响,由于堆栈不仅在子程序中使用还受多方面影响,必须保证整个程序运行过程中堆栈不能溢出。
把功能相对独立的程序段单独编写和调试作为一个相对独立的模块供程序使用,就形成子程序子程序可以实现源程序的模块化可简化源程序结构,可以提高编程效率
过程名(子程序名)为符合语法的标識符
NEAR 属性(段内近调用)的过程只能被相同代码段的其他程序调用
FAR 属性(段间远调用)的过程可以被相同或不同代码段的程序调用
对简化段定义格式在微型、小型和紧凑存储模式下,过程的缺省属性为 near ;在中型、大型和巨型存储模式下过程的缺省属性为 far
对完整段定义格式,过程的缺省属性为 near
用户可以在过程定义时用 near 或 far 改变缺省属性

   2、子程序的参数传递入口参数(输入参数):主程序提供给子程序
出口参數(输出参数):子程序返回给主程序
② 数据的地址(传址)
① 寄存器 ② 变量 ③ 堆栈
子程序计算数组元素的“校验和”
校验和是指不记进位的累加
入口参数: 数组的逻辑地址(传址)
出口参数: 求和结果(传值)
把参数存于约定的寄存器中可以传值,也可以传址
子程序對带有出口参数的寄存器不能保护和恢复(主程序视具体情况进行保护)
子程序对带有入口参数的寄存器可以保护,也可以不保护;但最恏一致
入口参数: CX =元素个数
DS:BX =数组的段地址:偏移地址
出口参数: AL =校验和
; 设置入口参数(含有 DS ←数组的段地址)
;BX ←数组的偏移地址
主程序和子程序直接采用同一个变量名共享同一个变量,实现参数的传递
不同模块间共享时需要声明
array =数组名(含段地址:偏移地址)

夲例采用 16 位寄存器表达数据,所以只能输入+ 327677 ~- 32768 间的数值

}

VIP专享文档是百度文库认证用户/机構上传的专业性文档文库VIP用户或购买VIP专享文档下载特权礼包的其他会员用户可用VIP专享文档下载特权免费下载VIP专享文档。只要带有以下“VIP專享文档”标识的文档便是该类文档

VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档

VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取非会員用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档

付费文档是百度文库认证用户/机构上传的专业性文档,需偠文库用户支付人民币获取具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档

共享文档是百度文库用戶免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定只要带有以下“共享文档”标识的文档便是该类文档。

}

    子程序是由设计者定义的完成某種功能的程序模块一旦定义了,该子程序可被任意调用

LEA SI , BUFR ;子程序待输出的数据的首地址

CMP AL 0AH ;判断输出数据是否为结束

上面的子程序,可以把数据段 BUFR 缓冲区以 OA 结束的数据,输出到 03F 8H 端口
主程序在调用子程序时,一方面初始数据要传递给子程序另一方面子程序运行的結果要传递给主程序。尽管没有初始数据或没有运行结果的情况也有但一般情况下是必须考虑的。 在编写较为复杂的子程序时可能出現子程序中调用子程序的情况,通常称这种情况叫子程序嵌套子程序嵌套层次的深度受堆栈大小的影响,由于堆栈不仅在子程序中使用还受多方面影响,必须保证整个程序运行过程中堆栈不能溢出。
把功能相对独立的程序段单独编写和调试作为一个相对独立的模块供程序使用,就形成子程序子程序可以实现源程序的模块化可简化源程序结构,可以提高编程效率
过程名(子程序名)为符合语法的标識符
NEAR 属性(段内近调用)的过程只能被相同代码段的其他程序调用
FAR 属性(段间远调用)的过程可以被相同或不同代码段的程序调用
对简化段定义格式在微型、小型和紧凑存储模式下,过程的缺省属性为 near ;在中型、大型和巨型存储模式下过程的缺省属性为 far
对完整段定义格式,过程的缺省属性为 near
用户可以在过程定义时用 near 或 far 改变缺省属性

   2、子程序的参数传递入口参数(输入参数):主程序提供给子程序
出口参數(输出参数):子程序返回给主程序
② 数据的地址(传址)
① 寄存器 ② 变量 ③ 堆栈
子程序计算数组元素的“校验和”
校验和是指不记进位的累加
入口参数: 数组的逻辑地址(传址)
出口参数: 求和结果(传值)
把参数存于约定的寄存器中可以传值,也可以传址
子程序對带有出口参数的寄存器不能保护和恢复(主程序视具体情况进行保护)
子程序对带有入口参数的寄存器可以保护,也可以不保护;但最恏一致
入口参数: CX =元素个数
DS:BX =数组的段地址:偏移地址
出口参数: AL =校验和
; 设置入口参数(含有 DS ←数组的段地址)
;BX ←数组的偏移地址
主程序和子程序直接采用同一个变量名共享同一个变量,实现参数的传递
不同模块间共享时需要声明
array =数组名(含段地址:偏移地址)

夲例采用 16 位寄存器表达数据,所以只能输入+ 327677 ~- 32768 间的数值

}

我要回帖

更多关于 编写程序实现对输入命令行参数求和 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信