电子科技大学软件开发环境实验报告_第1页
电子科技大学软件开发环境实验报告_第2页
电子科技大学软件开发环境实验报告_第3页
电子科技大学软件开发环境实验报告_第4页
电子科技大学软件开发环境实验报告_第5页
已阅读5页,还剩94页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

电子科技大学软件开发环境实验报告软件开发环境试验-----Huffman编分割函数的三项原则包括:与其写注释,不如写函数;重复就是罪恶;函数不要超过关于分割函数三原则的具体含义,请见教材和课堂教学PPT关于电话本实验要求使用Huffman编码算法,实现对文件的压缩和解压。因此,我们首先介指导书试验原理部分较多,在这里就不做粘贴复制了。本实验要求实现一个exe程序。这个程序按照huffma名,可以包含路径信息,而compress_filename是压缩之后的文件名,同样可以包含路径提示:在实现程序时,需要考虑如何存储huffman树或者编码表或者词频表等等。对于每一个版本的程序,需要在实验报告中给出函数调用关系图、流程处理关系实验报告的评分标准,包括以下几个方面:):huffmanForC#sum_bit##count#voidfreToFile(intcode[],HCode*HC)}{}{}{}jmp整个多分支流程语句后的指令{}{B:执行计数变量递增操作jxxxxx如果仍旧满足条件,向下..........................................}int_tmain(intargc,_TCHAR*argv[]){while(i<10){}}while(i<10){002513ABmov002513B1mov}002513B6xor设置为0,即将i设置为0;同理在地址00251395处movdwordptr[ebp-1将[ebp-14]设置为0,即将j设置为0;在地址0025139C处cmpjge002513B6如果i小于10,则继续向下执行,若i>=10则跳转到002513B6处执行(即返回语句),若继续向下执行,则002513A2002513A5002513A8三地址处的002513AE002513B1对i进行加一操作;在002513B4jmp0025139C跳转回通过代码清单10的反汇编结果,while语句的反汇编代码规律while(){............................................................................................................}B:....................................int_tmain(intargc,_TCHAR*argv[]){{}}{}while(i<10);001913B4xor}在代码清单11当中,在地址0019138E处将[ebp-8]设置为0,即将j设置为0,在地址00191395处,将00191395设置为0,即将i设置为0.在地址0019139C0019139F001913A2三个地址处执行j增1的操作,在001913A5001913A8001913AB三个地址处执行i增1的操作。在地址001913AE处执行循环条件比较指令在接下来的001913B2jl在接下来的001913B2jlA:..........................................cmp操作数1操作数2do------while循环条件判断语句jxxA如果符合条件的话,就跳转到A处的循环体部分开始执行,否则继续向下执行编译器对函数调用的支持,通常情况下都会使用栈。例如使用栈传递传参,保存局部数组溢出,又采取了特殊的保护措施。本实验就需要通过观察栈帧布局,来了解这些保护措施。本实验的环境是VisualStudio2008。本实验总体目的是,通过使用VisualStudio2008查看函数调用时参数、局部变):{}{}{}返回地址....原edi的值从图2可以知道,即使没有任何局部变量,栈上仍然有0给ebp,然后再008D13A3处将esp的值减去0C0h,{}int_tmain(intargc,_TCHAR*{}{}返回地址i....代码清单4的实现步骤总体类似于代码清单2,也是首先将ebp压栈,ebp,有所变化的就是这次是将esp的值减去0CCh然后仍旧是压ebx,esi,edi的值入栈,之后仍旧是将002B13ACleaedi,[ebp-0CCh]ebp-0CCh地址值赋给edi,之后将033h赋值给ecx,之后执行st在实验报告中,需要分别给出只有一个char类型局部变量、只{}i{}i{}i{}int_tmain(intargc,_TCHAR*{}{edi,[ebp+FFFFFF28h]}从图4可以看出,当增加一个局部变量时,这个局部变{}int_tmain(intargc,_TCHAR*ar{}{}{}int_tmain(intargc,_TCHAR*argv[]){return0;}{}ij{}{}{i....{}{}{}果{}{}说明何种情况下,才会有__security_c在前面已经得出的栈帧布局规律基础之上,把局部数组的情况考虑进去,在实验报告在存放局部数组的时候,与一般局部变量的存放情况不同,是单独开辟一块空间存放数组,且按照数组下标大小按照小下标对应小地址,大下标对应大地址的方式存储,并且#include""{}{}{}_RTC_CheckStackVars函数的工作原理_RTC_StackFailure度,即数组末尾之上四字节_RTC_StackFailure

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论