源码工程 汇编语言 人工审核无毒

该程序模拟UNIX中save与resume函数,并介绍在VC中如何使用汇编进行机器级的操作. 主函数很简单首先引入两个外部函数,extern "C"表示按传统C命名习惯.函数save将程序指针保存在

所属分类 汇编语言
文件大小 7 K
文件格式 ZIP 文件
累计下载 171 次
分享作者
发布日期

资料详细技术说明

该程序模拟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格式.

压缩包内文件清单(共 7 个文件)

已自动扫描归档包内目录结构与文件清单 源码与文本文档支持点击「在线阅读」,二进制/媒体文件请下载压缩包后使用
1 FILE
unix.asm 575 B
包内组件
2 FILE
unixc.dsp 3.3 KB
包内组件
3 FILE
unixc.opt 47.5 KB
包内组件
4 FILE
unixc.cpp 335 B
包内组件
5 FILE
- 777 B
包内组件
6 FILE
unix.obj 208 B
包内组件
7 FILE
unixc.dsw 535 B
包内组件

相关汇编语言资料推荐

下载与解压说明

下载积分规则

  • 本资源下载仅需 2 积分
  • 24 小时内重复下载免扣积分
  • VIP 会员享专属免积分高速通道

文件解压指南

  • 推荐使用 7-Zip 或新版 WinRAR 解压
  • 原理图与 PCB 请使用对应 EDA 软件打开
  • 压缩包内源码可直接在上方在线预览

免费获取积分