为了正常的体验网站,请在浏览器设置里面开启Javascript功能!
首页 > 20150512_综合研究二_李筝

20150512_综合研究二_李筝

2020-03-06 4页 doc 23KB 4阅读

用户头像

is_496339

暂无简介

举报
20150512_综合研究二_李筝一、研究过程: 1. 在tc中编写程序代码,使用debug直接加载ur1.exe Main函数的段地址很有可能是0B33H 2. 用书中说的打印main的方法,找到main代码的偏移地址是1faH 3. 所以我试着用u命令查看0B33:01fa 额。。。好吧 我又很不好意思地猜对了。。。段地址。。。。。。。。。。。。 4. 一开始的寄存器是这个状态 跳过0B33:0000~0B33:01f9这部分代码,我们直接执行到0B33:01fa之前,寄存器是这样的: 5. 后面的过程正常执行,注意_AX=_BX+_CX的实现...
20150512_综合研究二_李筝
一、研究过程: 1. 在tc中编写程序代码,使用debug直接加载ur1.exe Main函数的段地址很有可能是0B33H 2. 用书中说的打印main的方法,找到main代码的偏移地址是1faH 3. 所以我试着用u命令查看0B33:01fa 额。。。好吧 我又很不好意思地猜对了。。。段地址。。。。。。。。。。。。 4. 一开始的寄存器是这个状态 跳过0B33:0000~0B33:01f9这部分代码,我们直接执行到0B33:01fa之前,寄存器是这样的: 5. 后面的过程正常执行,注意_AX=_BX+_CX的实现是先将MOV _AX,_BX,然后ADD _AX,_CX的。 6. 最后尾ret返回的时候,返回到了0b33:011d处(在main函数的前面)执行,将ax入栈,然后又调用0b33:0215处(在main函数的后面)子程序,中间空了0214处的一个ret。另外0215处的程序还调了0194、0196处(main的前面)的程序。 (额。。。迫切的想知道main函数前前后后到底是多大的坑。。。。) 7. 验证c语言将函数实现为汇编语言中的子程序。 观察汇编代码我们发现,main函数的开始有push bp和mov bp,sp,main函数的结束有ret。 f函数的开始有push bp和mov bp,sp,f函数的结束有ret,二者相同。所以main函数被看做汇编中的子程序,另外,main函数调用f函数时,使用了call命令。所以可以进一步肯定:C语言将函数实现为汇编语言中的子程序。 二、总结过程中遇到的问题 main函数的段地址 通过debug模式下使用完u命令之后定位到的默认的段地址,猜测得出main函数的段地址。 三、未解决的问题 1.Main函数最后尾ret返回的时候,返回到了0b33:011d处(在main函数的前面)执行,将ax入栈,然后又调用0b33:0215处(在main函数的后面)子程序,中间空了0214处的一个ret。另外0215处的程序还调了0194、0196处(main的前面)的程序。 (额。。。迫切的想知道main函数前前后后到底是多大的坑。。。。) 2..tc文件和.tcp文件分别是干什么的?配置文件,具体呢? 四、研究体会 在学习汇编的时候,我一直默认子程序就是函数(觉着就是一回事儿,司空见惯),但说到问题的本质,这次我体会到了子程序是函数的实现方式。这次的研究学习,让我把曾经飘飘然的c语言落实到了具体的机器中,感觉非常靠谱!
/
本文档为【20150512_综合研究二_李筝】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索