05授人以鱼不如授人以渔●(模拟器CALL汇编代码分析 找CALL篇三).docVIP

05授人以鱼不如授人以渔●(模拟器CALL汇编代码分析 找CALL篇三).doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
05授人以鱼不如授人以渔●(模拟器CALL汇编代码分析 找CALL篇三) 注明:本教程须自行操作方可真正理解 上次我们分析了 send? recv函数的实现 今天我们还是用那个模拟器 源代码分析下那个 CALL 模拟器界面: ? 加血按钮的 源代码: ? 下面的这个CALL 应该就是上面那个加血功能的 汇编代码了 ? 对比下有什么相同之处 断在CALL的时候 堆栈的状况 ? 好了 我们来分析下 ? 子程序 发送封包? 的源代码 ? 我们进入到 CALL里面来对照一下 选中 call? ? 0040A875? ? 按回车? (或者 运行到此处 按 F7 步进) ? 呵呵 我们一点一点来分析 . 下面是 call? ? 0040A875? ? 里的 汇编代码 ? 第一个CALL 是 a = 包头 + 数据 第三个CALL 是 客户.发送数据(a) 我们进到 第一个CALL里面? 来看看 易语言是如何把2个封包数据组合在一起的 ? 这章 我对比源代码 分析了 他的汇编代码的实现过程. 因为水平问题,可能与正确答案有所出入,如果有错误的地方请指出. *汇编知识 esp是堆栈指针 ebp是基址指针 32位CPU所含有的寄存器有: 4个数据寄存器(EAX、EBX、ECX和EDX) 2个变址和指针寄存器(ESI和EDI) 2个指针寄存器(ESP和EBP) 6个段寄存器(ES、CS、SS、DS、FS和GS) 1个指令指针寄存器(EIP) 1个标志寄存器(EFlags) 寄存器AX和AL通常称为累加器(Accumulator),用累加器进行的操作可能需要更少时间。累加器可用于乘、除、输入/输出等操作,它们的使用频率很高; 寄存器BX称为基地址寄存器(Base Register)。它可作为存储器指针来使用; 寄存器CX称为计数寄存器(Count Register)。在循环和字符串操作时,要用它来控制循环次数;在位操作中,当移多位时,要用CL来指明移位的位数; 寄存器DX称为数据寄存器(Data Register)。在进行乘、除运算时,它可作为默认的操作数参与运算,也可用于存放I/O的端口地址。

文档评论(0)

***** + 关注
实名认证
文档贡献者

本账号下所有文档分享可拿50%收益 欢迎分享

1亿VIP精品文档

相关文档