VC++ 内联汇编
杨小卫
技术男
展开
-
VC++ 内联汇编函数调用方式
#include "stdafx.h"int g_nC=10;void UseParameter(){ int a = 5,b=6,c; __asm { xor edx,edx ;edx=0 add edx,a ;edx +=a add edx,b ;edx +=b原创 2010-03-18 23:10:00 · 3258 阅读 · 0 评论 -
内联汇编 实现 strlen
unsigned int __cdecl getstrlen(char *str1){ __asm { mov edx, str1 xor eax, eax L: mov bl, [edx] cmp bl, 0 je EXIT inc eax原创 2010-03-18 23:04:00 · 1268 阅读 · 0 评论 -
栈,函数,参数,局部变量之间的关系
栈的定义及规则: 栈从高位到底位顺序来排列数据, 栈顶=0, 栈顶始终指向最顶端的数据. Push(EAX) : TOP--, S[TOP]=EAX; //先减栈顶, 再进数据 Pop(EAX) : S[TOP]=EAX, TOP++; //先出数据,再加栈顶 初始值: EBP=ESP=20 (EBP-ESP=0,0个数据) 假如有以下栈段(Step0)与函数ST(): STACK 0-19 //定义栈开始原创 2010-11-03 18:46:00 · 2464 阅读 · 1 评论 -
通过函数调用栈反向推导函数调用路径
#include "stdafx.h"#include int main(int argc, char* argv[]);bool IsStackPointer(unsigned int p){ return ( p>=0x00030000 && p=0x00400000 && p=0x00130000 && p=0x00600000 && p原创 2010-12-30 08:53:00 · 1068 阅读 · 0 评论 -
可执行内存的分配
<br />//ExeMemory.h#ifndef _EXE_MEM_H_#define _EXE_MEM_H_#include <memory.h>#if defined(WIN32) && defined(_MSC_VER) #include <windows.h>#else #include <sys/mman.h>#endiftypedef int (*ExeMemoyFun)();typedef unsigned int size_t;原创 2011-01-04 08:34:00 · 1019 阅读 · 0 评论