- 1、本文档共42页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
NO1-高校汇编语言精讲课件
子程序设计 课前思考 子程序调用和返回时需要保护与恢复哪些寄存器? 子程序的参数传送有几种方法? 如何采用增强功能的过程定义伪操作编制子程序? 子程序嵌套与递归的区别? 学习目标 了解子程序的构成 学会运用多种方法在调用程序与子程序之间传递参数。 掌握递归子程序的编程技巧。 学习指南和难重点 【学习指南】 熟悉堆栈的运行过程对学习这一章至关重要。 【难重点】 子程序的调用和返回。保护与恢复寄存器。子程序的参数传送。嵌套与递归子程序。DOS系统功能调用。 子程序的设计方法 过程定义伪操作 过程定义伪操作(续) 过程定义伪操作(续) 过程定义伪操作(续) 子程序的调用和返回 保存与恢复寄存器 子程序的参数传送 例1 主程序--用寄存器传参数 例1 子程序--用寄存器传参数 子程序的参数传送(续) 例2 通过存储单元传递参数 例2 通过存储单元传递参数 子程序的参数传送(续) 例3 主程序 子程序的参数传送(续) 子程序的嵌套与递归调用 例4 嵌套子程序-1/2 例4 嵌套子程序-2/2 例5 子程序递归(求阶乘)-1/2 例5 子程序递归(求阶乘)-2/2 子程序举例 ; 定义子程序hexibin(十六进制转换成二进制,结果在bx中)hexibin proc near mov bx,0newchar: mov ah,key_in int doscall ; 键盘输入单个字符 sub al,30h jl exit cmp al,10d jl add_to ; 0~9之间转add_to ; 判断是否a~f之间(‘a’的ASCII码为61h) sub al,27h cmp al,0ah jl exit cmp al,10h jge exit (待续) (续) ; 0~9或a~fadd_to: mov cl,4 shl bx,cl ; (bx)*16 mov ah,0 add bx,ax jmp newchar exit: ret hexibin endp ; 定义子程序binidec(二进制转换成十进制) binidec proc near mov cx,10000d call dec_div ; bx被10000除 mov cx,1000d call dec_div ; bx被1000除 mov cx,100d call dec_div ; bx被100除 mov cx,10d call dec_div ; bx被10除 mov cx,1d call dec_div ; bx被1除 ret ; 定义子程序dec_div(十进制除) dec_div proc near mov ax,bx mov dx,0 ; 被除数在dx:ax中 div cx mov bx,dx ; 余数送bx mov dl,al ; 商送dl add dl,30h mov ah,display int doscall ; 显示单个字符 ret dec_div endpbinidec endp ; 定义子程序crlf crlf proc near mov dl,0ah mov ah,display int doscall mov dl,0dh mov ah,display int doscall ret crlf endp hexidec ends end start 例7 本例为一个简单的信息检索系统。在数据区里,有10个不同的信息,编号为0~9,每个信息包括30个字符。现在要求编制一个程序:从键盘接收0~9之间的一个编号,然后在屏幕上显示出相应编号的信息内容。 datarea segment thirty db 30 ; 信息表 msg0 db ‘I like my IBM-PC---------------------------------------’ msg1 db ‘8088 programming is fun--------------------------------’ msg2 db ‘Time to buy mor
文档评论(0)