开发工具:
文件大小: 9kb
下载次数: 0
上传时间: 2004-07-27
详细说明: 该程序模拟UNIX中save与resume函数,并介绍在VC中如何使用汇编进行机器级的操作. 主函数很简单首先引入两个外部函数,extern "C"表示按传统C命名习惯.函数save将程序指针保存在(*s)中并返回0,为什么有 if(save(&sp)){...} if后的语句看起来永远都不会被执行,但是运行结果表明它被执行了.这个问题同UNIX中处理机调度函数(switch)的那个if语句(第一句)一样. 程序执行完save(&sp)后得到因为条件为假而执行else语句, 却在判断之前将程序指针保存在sp中了. else语句中的resume(&sp),该函数很狡猾将堆栈中的返回地址改变了,改到了sp所指出,即将程序指针改到了执行条件判断前.resume返回1,条件满足,执行if语句. save函数堆栈: eip ebp+8 s ebp+4 ebp ebp+0 resume函数堆栈与save的相同. 新建一个win32的工程,将unixc.cpp和unix.obj加入过程即可. unix.obj是用masm6.11生成的:ml /c /coff unix.asm,生成coff格式的obj而不是omf格式. ...展开收缩
(系统自动生成,下载前可以参看下载内容)
下载文件列表
相关说明
- 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
- 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度。
- 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
- 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
- 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
- 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.