欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    第4章子程序结构(精品).ppt

    • 资源ID:71978244       资源大小:173KB        全文页数:24页
    • 资源格式: PPT        下载积分:16金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要16金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第4章子程序结构(精品).ppt

    子程序结构第六章第六章汇编语言程序设计 计算机系统教研室张洁第第2 2章章 80868086计算机组织计算机组织在在程程序序设设计计中中,我我们们会会发发现现一一些些多多次次无无规规律律重重复复的的程程序序段段或或语语句句序序列列。解解决决此此类类问问题题一一个个行行之之有有效效的的方方法法就就是是将将它它们们设设计计成成可可供供反反复复调调用用的的独独立立的的子子程程序序结结构构,以便在需要时调用。以便在需要时调用。在汇编语言中,子程序又称过程。在汇编语言中,子程序又称过程。调用子程序的程序称调用子程序的程序称为主调程序或主程序为主调程序或主程序。一、子程序的概念汇编语言程序设计 计算机系统教研室张洁第第2 2章章 80868086计算机组织计算机组织 二、过程定义、过程调用过程名过程名 PROC PROC 类型类型 RETRET 过程名过程名 ENDP ENDP 1.定义2.调 用CALL CALL 过程名过程名一般过程名同标号一样,具有三种属一般过程名同标号一样,具有三种属性,即段属性、偏移地址属性以及类性,即段属性、偏移地址属性以及类型属性型属性汇编语言程序设计 计算机系统教研室张洁第第2 2章章 80868086计算机组织计算机组织N E N E A R A R 子子程程序序书书写写形形式式CODE SEGMENTCODE SEGMENT ASSUME MAIN PROC FARMAIN PROC FAR CALL SUB1CALL SUB1 RET RET SUB1 PROC NEARSUB1 PROC NEAR CALL SUB2CALL SUB2 RETRET SUB2 PROC NEARSUB2 PROC NEAR RETRET SUB2 ENDPSUB2 ENDP SUB1 ENDPSUB1 ENDP MAIN ENDPMAIN ENDPCODE ENDSCODE ENDS 汇编语言程序设计 计算机系统教研室张洁第第2 2章章 80868086计算机组织计算机组织调调 用用 图图 示示CALL SUB1CALL SUB2RETRET主程序子程序SUB1子程序SUB2汇编语言程序设计 计算机系统教研室张洁第第2 2章章 80868086计算机组织计算机组织F F A A R R 子子程程序序书书写写形形式式CODE1 SEGMENTCODE1 SEGMENT ASSUME MAIN PROC FARMAIN PROC FAR CALL SUBCALL SUB RETRET MAIN ENDPMAIN ENDPCODE1 ENDSCODE1 ENDSCODE2CODE2SEGMENTSEGMENT ASSUME SUB PROC FARSUB PROC FAR RETRET SUB ENDPSUB ENDPCODE2 ENDS CODE2 ENDS 汇编语言程序设计 计算机系统教研室张洁第第2 2章章 80868086计算机组织计算机组织CALLCALL指令指令-段内调用段内调用直接寻址直接寻址间接寻址间接寻址CALL proc-name CALL disp16 IP入栈;IP IP+偏移量 例:例:CALL SUB1 寻址方式寻址方式格格 式式操操 作作注:注:段内调用,段内调用,CS不变不变 CALL r16/m16 IP入栈;IP(r16)/(m16)例:例:CALL BX CALL WORD PTR BX汇编语言程序设计 计算机系统教研室张洁第第2 2章章 80868086计算机组织计算机组织CALLCALL指令指令-段间调用段间调用直接寻址直接寻址间接寻址间接寻址CALL FAR proc-name CS入栈;IP入栈;CS 过程的段地址;IP 过程的偏移地址。例:例:CALL SUB1 CALL SUB1 寻址方式寻址方式格格 式式操操 作作注:注:DWORD PTR表明内存操作数属性为双字,用于段间调用表明内存操作数属性为双字,用于段间调用 CALL mem32 CS入栈;IP入栈;IP (EA+1,EA)CS (EA+3,EA+2)例:例:CALL DWORD PTR BX CALL DWORD PTR BX 远远过程名过程名汇编语言程序设计 计算机系统教研室张洁第第2 2章章 80868086计算机组织计算机组织RET RET 指令指令段内:RETRET expIP出栈 IP出栈 SP SP+exp 段间:RETRET exp IP出栈 CS出栈 IP出栈 CS出栈 SP SP+exp 返回类型返回类型格格 式式操操 作作注:返回类型由调用类型定汇编语言程序设计 计算机系统教研室张洁第第2 2章章 80868086计算机组织计算机组织信息的保护与恢复信息的保护与恢复例如:若子程序SUB1中改变了寄存器AX,BX,CX,DX的值,则可采用如下方法 保护和恢复现场。POP DXPOP CXPOP BX ;恢复现场恢复现场POP AXRET ;返回断点处返回断点处SUB1 ENDPSUB1 PROCPUSH AXPUSH BX PUSH CX;保护现场保护现场PUSH DX 汇编语言程序设计 计算机系统教研室张洁第第2 2章章 80868086计算机组织计算机组织主程序与子程序参数传递方式主程序与子程序参数传递方式(1)寄存器法(2)约定单元法(3)堆栈法汇编语言程序设计 计算机系统教研室张洁第第2 2章章 80868086计算机组织计算机组织软延时:指利用CPU执行指令需要耗费一定时间的特点实施的延时,常用减1循环来实现。例:8088CPU,主频4.77M,每个时钟周期为:1/4.77M=0.21s。循环指令LOOP,当CX不为零时,执行循环转移分支,占用17个时钟周期;当CX为零时,退出循环,占用5个时钟周期。如果CX初值是2801时,执行指令WAIT1:LOOP WAIT1,所需时间为:(0.212801)17+0.21 5 10ms(0.212801)17+0.21 5 10ms 子程序应用举例子程序应用举例汇编语言程序设计 计算机系统教研室张洁第第2 2章章 80868086计算机组织计算机组织1010msms延时子程序延时子程序;子程序:DELAY;功能:实现软件延时,延时单位时间为10ms;入口参数:BX,延时常数,实际延时时间为:10*BX(ms);出口参数:无DELAY PROC NEAR PUSH BX ;现场保护 PUSH CXWAIT0:MOV CX,2801 ;内循环次数,大小由单位时间定WAIT1:LOOP WAIT1 ;延时10ms DEC BX JNZ WAIT0 POP CX POP BX RETDELAY ENDP 子程序说明子程序说明汇编语言程序设计 计算机系统教研室张洁第第2 2章章 80868086计算机组织计算机组织子程序调用,实现子程序调用,实现100100msms、550550延时延时CSEG SEGMENT ASSUME CS:CSEG,MAIN PROC FAR PUSH DS SUB AX,AX PUSH AX MOV BX,10 ;延时100ms,参数赋值 CALL DELAY ;调用延时子程序 MOV BX,55 ;延时550ms,参数赋值 CALL DELAY ;调用延时子程序 RET MAIN ENDP 汇编语言程序设计 计算机系统教研室张洁第第2 2章章 80868086计算机组织计算机组织子程序应用举例 【例例5.1】将将一一个个给给定定的的二二进进制制数数按按位位转转换换成成相相应应的的ASCII码码字字符符串串,送送到到指指定定的的存存储储单单元元并并显显示示。如如二二进进制制数数10010011转转换换成成字字符符串串为为10010011。要要求求将将转转换换过过程程写写成成子子程程序序,且且子子程程序序应应具具有有较较好好的的通通用用性性,而而必必须须能能实实现现对对8倍倍和和16倍倍二二进进制制数数的转换。的转换。汇编语言程序设计 计算机系统教研室张洁第第2 2章章 80868086计算机组织计算机组织入口参数:入口参数:DX存放待转换的二进制数存放待转换的二进制数CX存放待转换数的位数(存放待转换数的位数(8位或位或16位)位)DI存放存放ASCII码首地址码首地址出口参数:转换后的字符串存放出口参数:转换后的字符串存放在以在以DI作指针作指针 的字节存贮区中的字节存贮区中程序如下:程序如下:DATA SEGMENTNUM8 DB93HNUM16 DW0ABCDHASCBUF DB20DUP(0)DATA ENDS汇编语言程序设计 计算机系统教研室张洁第第2 2章章 80868086计算机组织计算机组织CODE SEGMENT ASSUME DS:DATA,CS:CODESTART:MOVAX,DATAMOVDS,AXMOVDX,0MOVDL,NUM8 ;转换二进制数送转换二进制数送DXMOVCX,8 ;置位数置位数8LEADI,ASCBUF;字符串首址字符串首址DICALL BTASC ;调用子程序调用子程序BTASCMOVDI,BYTE PTR 0DHMOVDI+1,BYTE PTR 0AH汇编语言程序设计 计算机系统教研室张洁第第2 2章章 80868086计算机组织计算机组织 MOVDI+2,BYTE PTR$LEA DX,ASCBUFMOVAH,9INT21HMOVDX,NUM16MOVCX,16;置位数置位数16LEA DI,ASCBUFCALLBTASC MOV BYTE PTR DL,0DHMOV BYTE PTR DL+1,0AHMOV BYTE PTR DL+2,;显显示示转转换换后后的的字字符符串串LEA DX,ASCBUF MOVAH,9 INT21H汇编语言程序设计 计算机系统教研室张洁第第2 2章章 80868086计算机组织计算机组织BTASCPROCPUSHAX;保存AXMOVAL,0CMPCX,8;比较8位数JNEL1;直接转换16位数MOVDH,DL;8位数转换送DHL1:ROLDX,,1;DX最高位移入CFRCLAL,1;CF移入AL最低位ADDAL,30HMOVDI,ALINCDILOOPL1POPAXRET BTASCENDPCODEENDSENDSTART汇编语言程序设计 计算机系统教研室张洁第第2 2章章 80868086计算机组织计算机组织子程序的嵌套与递归调用1子程序的嵌套子程序不但可以被主程序调用,而且也可以被其他子程序调用。我们把一个子程序调用另一个子程序称为子程序的嵌套调用。2子程序的递归调用子程序的递归调用是指一个子程序直接或间接地调用自己。递归子程序一般对应于数学上对函数的递归定义,它往往能设计出效率较高的程序,完成相当复杂的计算,因而是很有用的。汇编语言程序设计 计算机系统教研室张洁第第2 2章章 80868086计算机组织计算机组织【例例 5.2】试试 编编 制制 计计 算算 N!(N0)的的 程程 序序。N!=N*(N-1)*(N-2)*1其递归定义如下:其递归定义如下:0!=1N!=N*(N-1)!(N1)计算计算N!的子程序的子程序FACT的流程图如图所示。的流程图如图所示。汇编语言程序设计 计算机系统教研室张洁第第2 2章章 80868086计算机组织计算机组织汇编语言程序设计 计算机系统教研室张洁第第2 2章章 80868086计算机组织计算机组织【例】计算【例】计算5!,!,RESULT是保存阶乘的存储单元是保存阶乘的存储单元。DATASEGMENT N DW 5 RESULT DW?DATAENDSCODESEGMENT ASSUME CS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAX,NCALL FACT汇编语言程序设计 计算机系统教研室张洁第第2 2章章 80868086计算机组织计算机组织 MOVAH,4CHINT21H FACT PROC NEARCMPAX,0JNEL1 MOV RESULT,1JMPEXIT L1:PUSH AXDECAXCALL FACTPOPAXMUL RESULTMOV RESULT,AX EXIT:RET FACTENDP CODEENDSENDSTART

    注意事项

    本文(第4章子程序结构(精品).ppt)为本站会员(hyn****60)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开