第四讲 汇编程序设计-3.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第四讲 汇编程序设计-3.ppt

第四讲 汇编程序设计 教学内容 PC汇编指令集中部分指令; 顺序、分支、循环程序设计; 子程序设计 教学目的 复习、巩固寻址方式、汇编完整框架等内容,培养良好的汇编编程习惯; 学会常用汇编程序设计方法: 数的简单处理(存储、加减、移位); 查表(平方表、立方表); 理解子程序调用、返回时堆栈的变化。 print() { printf(“Hello”); } main() { …… print(); c=max(2,5); …… } int max(x,y) { …… } 4.4 子程序设计 一、引言 大型、复杂的程序,往往采用模块化的程序设计——子程序设计。 汇编子程序/过程的定义 过程标号 proc 〈属性〉 …… 过程标号 endp 〈属性〉 …… print proc ;定义近过程 …… print endp main proc far ;定义远过程 …… main endp …… print() { printf(“Hello”); } main() { …… print(); c=max(2,5); …… } int max(x,y) { …… } 4.4 子程序设计 一、引言 大型、复杂的程序,往往采用模块化的程序设计——子程序设计。 print proc …… ret ;返回主程序 print endp main proc far …… call print ;调用 …… ret ;返回dos main endp 过程的调用、返回 调用:CALL 返回:RET 4.4 子程序设计 一、引言 子程序调用/返回举例 code segment print proc MOV DX,OFFSET OBUF MOV AH,9 INT 21H RET print endp main proc far assume ss:stck,cs:code,ds:data push ds sub ax,ax push ax mov ax,data mov ds,ax …… CALL print MOV AH,1 …… ret main endp code ends end main 子过程定义 主过程定义 子过程结束 返回主程序 调用print子过程 代码段定义 主过程结束 代码段结束 指定程序 入口地址 返回到DOS 设定程序返回地址 注:例子中两个子过程print和main都在同一代码段。 调用指令——CALL 格式1(直接调用):CALL 过程名 功能: 首先将CALL指令的下一条指令的地址(即程序返回地址)压入栈顶; 然后被调过程的入口地址?[CS:]IP 格式2(间接调用):CALL DST 功能: 首先将CALL指令的下一条指令的地址(即程序返回地址)压入堆栈; 然后将DST中的内容?[CS:]IP 4.4 子程序设计 二、子程序调用/返回指令 CALL指令举例 4.4 子程序设计 code segment print proc cs:0000 BA 0000 MOV DX,OFFSET OBUF cs:0003 B4 09 MOV AH,9 cs:0005 CD 21 INT 21H cs:0007 C3 RET print endp main proc far assume ss:stck,cs:code,ds:data cs:0008 1E push ds ;DS=140C cs:0009 2B C0 sub ax,ax cs:000B 50 push ax cs:000C B8 mov ax,data cs:000F 8E D8 mov ds,ax cs:0011 B8 0000 MOV AX,00H cs:0014 E8 FFE9 CALL print cs:0017 B4 01 MOV AH,1 cs:0019 CD 21 INT 21H cs:001B 8A E0 MOV AH,AL cs:001D CB ret main endp code ends end main 程序从何处开始执行? end [入口程序] CS=1421H,IP=0008

文档评论(0)

xinshengwencai + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:5311233133000002

1亿VIP精品文档

相关文档