我爱黑客网首页 设为首页
加入收藏
联系我们
 首 页  技术文章 下载中心 站长学院 交流论坛
 软件:
 文章:        教程:
 推荐: 我爱黑客网论坛
 
 
 
 
   
黑软: Q Q 软件 木马间谍 探嗅监听 溢出攻击 加密解密 漏洞扫描 脚本注入 远程控制 综合利用 聊天工具  
 
技术文章: 爱黑新闻 | 黑客攻防 | 网络技术 | 程序设计 | 系统操作 | 本站动态 | 业界动态 | 安全公告 | 病毒公告 | 八卦黑客
 
 
您当前的位置:我爱黑客 -> 程序设计 -> C语言 -> c编程实例 -> 文章内容  
栏目导航
· 入门基础 · c编程实例
· C数据结构 · C等级考试
热门文章
· C语言图形处理
· 用Eclipse平台进行C/C..
· 深入理解C语言指针奥秘..
· 利用C语言小程序来解决..
· Game Faster V1.0
· Mixer Volume Ctrler ..
· 学写基于对话框的程序..
· Casl汇编语言辅导
· 汇编语言中‘子程序’..
· 汇编语言的符号、标号..
· 汇编语言与C语言的接口..
· 结构化程序方法在汇编..
相关文章

· Casl汇编语言辅导
· 汇编语言的符号、标..
· 汇编语言与C语言的接..
· 结构化程序方法在汇..
· 小试Win32汇编
· Windows下程序的反汇..
· 汇编语言的高级语言..
· Javascript的IE和Fi..
· 汇编的数据无类型
· HELLO,WORLD进阶汇编..
查看更多与汇编语言中‘子程序’的设计方法相关内容

汇编语言中‘子程序’的设计方法
作者:幽火  来源:www.5ihack.com  发布时间:2007-1-8 16:41:22  发布人:ghostfire

减小字体 增大字体

  汇编语言是各种计算机语言中与硬件关系最为密切、最直接的语言,是时空效率最高的语言,它能够利用计算机所有硬件特性并能直接控制硬件,所以在计算机应用系统设计和过程控制中是必不可少的.目前教学中采用8086/8088汇编语言系统组织教学仍是最佳选择.其中子程序技术是一种解决重复性问题的重要设计方法,采用子程序结构可以简化源程序书写、提高程序存储效率、减少出错率、增加程序的易读性和可维护性,并且有利用子程序资源的组织和使用.设计子程序时,除了必需要考虑的程序调用、返回和完成特定功能的指令序列外,还必须注意解决子程序设计中带有的共性的一些问题,即:现场保护、参数传递、子程序的嵌套与递归调用、编写子程序说明文档等.

  1 现场保护 

  现场保护的目的是调用子程序之后,能够返回主程序继续执行.因此要对子程序中用到的寄存器,堆栈进行必要的保护.

  1 1 寄存器保护因为汇编语言程序中的主要操作对象是CPU中的各寄存器,对那些主程序和子程序中都会用到的一些寄存器要在子程序使用之前进行保护.寄存器保护最好是在子程序中进行,并且在子程序中进行恢复,这样子程序显得更完整.其方法是使用堆栈,由于指令系统中制定了规范的进栈指令PUSH和出栈指令POP,并会自动修改堆栈指针,只要在程序设计中注意8086/8088的堆栈是否按"后进先出"的原则组织的.

  1 2 堆栈保护子程序是利用调用(CALL)指令和返回(RET)指令来实现正确的调用和返回的.因为CALL命令执行时压入堆栈的断点地址就是供子程序返回主程序时的地址,编程时一定要注意子程序的类型属性,即是段内调用还是段间调用.段内调用和返回为NEAR属性,段间调 王艳玲,等谈谈汇编语言中子程序的设计方法37用和返回为FAR属性.8086/8088的汇编程序用子程序定义PROC的类型属性来确定CALL和RET指令的属性.如果所定义的子程序是FAR属性,那么对它的调用和返回一定都是FAR属性;如果所定义的子程序是NEAR属性,那么对它的调用和返回也一定是NEAR属性.这样用户只是在定义子程序时考虑它的属性,而CALL和RET指令的属性就可以由汇编程序来确定了.另外,进入子程序后再使用堆栈时也必须保证压入和弹出字节数一致,如果在这里堆栈存取出错,必然会导致返回地址的错误.

  2 参数传递 

  主程序在调用子程序时,经常要向子程序传递一些参数或控制信息,子程序执行后,也常需要把运行的结果返回调用程序.这种信息传递称为参数传递,其常用的方法有寄存器传递、内存固定单元传递、堆栈传递.

查看更多与汇编语言中‘子程序’的设计方法相关内容

[ ] [返回上一页] [打 印] [收 藏]
上一篇文章:
下一篇文章:
      汇编语言的符号、标号和变量符号       Casl汇编语言辅导
∷相关文章评论∷   (评论内容只代表网友观点,与本站立场无关!) [发表评论]
 
 
 
 
晋ICP备05008232   维护网络安全、传播安全技术才是我们的目标! 
 
关于本站 - 网站帮助 - - 下载声明 - 友情连接 -网站地图