- 1、本文档共125页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章汇编语言及其程序设计分析
1班 * 2班 * * * 2、参数传递 主程序在调用子程序时,经常需要向子程序传递一些参数或控制信息,子程序执行完成后,也常常需要把运行的结果返回给调用程序,这种调用程序和子程序之间的信息传递,称为“参数传递”。 参数传递的主要方法有:寄存器传递、内存变量传递和堆栈传递。 传递的内容如果是数据本身,称为“值传递”;如果是数据所在单元的地址,称为“地址传递”。 * * 3、现场保护和恢复 所谓“现场保护”是指子程序运行时,对可能破坏的主程序用到的寄存器、堆栈、标志位、内存数据值进行的保护。 所谓“现场恢复”指由子程序结束运行返回主程序时,对被保护的寄存器、堆栈、标志位、内存数据值的恢复。 现场保护和现场恢复方法: a、用堆栈实现:用进栈实现保护,用出栈实现恢复,但一定要注意先进后出,后进先出,并且成对出现。 b、用内存缓冲区实现:主要使用MOV指令将要保护对象送入内存缓冲区,而后再回送实现还原。 * * 4、子程序嵌套 一个程序可以调用某个子程序,该子程序可以调用其他子程序,这就形成了子程序嵌套。 子程序嵌套调用的层次不受限制,其嵌套层数称为“嵌套深度”。 由于子程序中使用堆栈来保护断点,堆栈操作的“后进先出”特性能自动保证各个层次子程序断点的正确入栈和返回。 在嵌套子程序设计中,应注意寄存器的保护和恢复,避免各层子程序之间寄存器发生冲突。特别是在子程序中使用PUSH、POP指令时,要格外小心,以免造成子程序无法正确返回。 * * 例:利用寄存器传递参数,编程显示两位十六进制数的子程序。 1、明确任务,确定算法。 设两位十六进制数存放在AL寄存器,对两位十六进制数进行逐位显示,由于每位的显示过程是相同的,所以采用子程序结构。,显示两位十六进制数的子程序调用显示一位十六进制数的子程序 2、绘流程图 3、根据流程图编写汇编语言程序 子程序设计举例 * * DISPP PROC NEAR PUSH DX PUSH CX ;保护现场 MOV DL, AL MOV CL, 4 ROL DL, CL ;循环左移4位 AND DL, 0FH ;高4位清零 CALL DISP1 MOV DL, AL AND DL, 0FH ;高4位清零 CALL DISP1 子程序设计举例 POP CX POP DX RET DISPP ENDP * * DISP1 PROC OR DL, 30H ;十六进制数的ASCII CMP DL, 3AH JB DDD ;小于,转移DDD ADD DL, 07H ;否则,转换为相应ASCII DDD: ;利用DOS功能调用显示字符 MOV AH, 2 INT 21H RET DISP1 ENDP 子程序设计举例 * * 本例利用寄存器DL传递参数。 作为出口参数的寄存器是不能保护的,否则就失去了传递参数的作用; 作为入口参数的寄存器可以保护也可以不保护。 由于寄存器的数量有限,这种方法只适用于少量数据的传递。 当有大量数据要传递时,需要用到指定单元或堆栈的方法传递参数。 * * 例:利用内存单元传递参数,已知数组由100个字数据组成,编程求出这个数组元素之和。 1、明确任务,确定算法。 数据已经存放在ARY开始的存储区中,其各元素之和存入在以SUM开始的存储区中。用子程序结构进行编程,并采用固定缓冲区传送方法来实现子程序参数传送。 2、绘流程图 3、根据流程图编写汇编语言程序 子程序设计举例 利用内存单元传递参数的方法,可以用于传递大量的参数,但其存取速度较慢。 * * DATA SEGMENT ARY DW 100 DUP(?) SUM DW ? DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA START: MOV AX, DATA ;设置DS段值 MOV DS, AX CALL RADD MOV AH, 4CH INT 21H 子程序设计举例 * * RADD PROC NEAR
您可能关注的文档
- 第4章循环结构程序设计分析.ppt
- 第4章恒定电场分析.ppt
- 第4章形状和位置公差与检测分析.ppt
- 用户习惯分析解析.docx
- 第4章投资估算与融资方案分析分析.ppt
- 第4章接口、内部类和包分析.ppt
- 第4章战略薪酬分析.ppt
- 用户后台v3.2.1解析.doc
- 第4章异步电机分析.ppt
- 用法归纳english解析.docx
- 2024高考物理一轮复习规范演练7共点力的平衡含解析新人教版.doc
- 高中语文第5课苏轼词两首学案3新人教版必修4.doc
- 2024_2025学年高中英语课时分层作业9Unit3LifeinthefutureSectionⅢⅣ含解析新人教版必修5.doc
- 2024_2025学年新教材高中英语模块素养检测含解析译林版必修第一册.doc
- 2024_2025学年新教材高中英语单元综合检测5含解析外研版选择性必修第一册.doc
- 2024高考政治一轮复习第1单元生活与消费第三课多彩的消费练习含解析新人教版必修1.doc
- 2024_2025学年新教材高中英语WELCOMEUNITSectionⅡReadingandThi.doc
- 2024_2025学年高中历史专题九当今世界政治格局的多极化趋势测评含解析人民版必修1.docx
- 2024高考生物一轮复习第9单元生物与环境第29讲生态系统的结构和功能教案.docx
- 2024_2025学年新教材高中英语UNIT5LANGUAGESAROUNDTHEWORLDSect.doc
最近下载
- 基于UML的大学图书馆图书信息管理系统设计实验.docx VIP
- 推土机安全作业操作规程技术交底培训.pptx VIP
- BYK技术手册_润湿分散剂.pdf
- 最新GBT20647.9物业服务管理体系一整套文件(手册+程序文件+管理制度+表单).pdf
- 关于续签2017年度物业管理服务项目合同的请示1-12月-.doc VIP
- 一例二型糖尿病患者个案护理.pptx
- 幼儿教育课题申报书:《幼儿劳动养成教育的培养研究》.docx
- 2022年道德与法治新课标《义务教育道德与法治课程标准(2022年版)》解读PPT课件.pptx VIP
- 五年级上册平行四边形的面积说课之课件.ppt
- 房屋装修监管难痛点与策略.doc
文档评论(0)