自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 资源 (1)
  • 收藏
  • 关注

转载 可变参数学习笔记

前言:本文在很大程度上改编自网友kevintz的“C语言中可变参数的用法”一文,在行文之前先向这位前辈表示真诚的敬意和感谢。一、什么是可变参数我们在C语言编程中有时会遇到一些参数个数可变的函数,例如printf()函数,其函数原型为: int printf( const char* format, ...); 它除了有一个参数format固定以外,后面跟的参数的个数和类型是可变的(用三个点“…”做

2011-06-27 09:05:00 410

转载 可执行文件格式

<br /><br />UNIX/LINUX 平台下三种主要的可执行文件格式:a.out(assemblerand link editor output汇编器和链接编辑器的输出)、COFF(Common Object File Format 通用对象文件格式)、ELF(Executableand Linking Format 可执行和链接格式)。<br />首先是对可执行文件格式的一个综述,并通过描述 ELF文件加载过程以揭示可执行文件内容与加载运行操作之间的关系。随后依此讨论了此三种文件格式,并着重讨论

2010-11-05 12:33:00 1480

转载 X86架构上函数调用过程的堆栈

理解调用栈最重要的两点是:栈的结构,EBP寄存器的作用。首先要认识到这样两个事实:  1、一个函数调用动作可分解为:零到多个PUSH指令(用于参数入栈),一个CALL指令。CALL指令内部其实还暗含了一个将返回地址(即CALL指令下一条指令的地址)压栈的动作。  2、几乎所有本地编译器都会在每个函数体之前插入类似如下指令:PUSH EBP; MOV EBP ESP;即,在程序执行到一个函数的真正函数体时,已经有以下数据顺序入栈:参数,返回地址,EBP。由此得到类似如下的栈结构(参数入栈顺序跟调用方式有关,这

2010-11-05 10:25:00 423 1

转载 链接--地址重定位

什么叫做重定位?以上内容来自:张不同的《计算机操作系统教程》6.1 存储器的基本概念       主存储器管理仍然是今天操作系统十分重要的内容;能否合理而有效的使用主存,在很大成度上反映了操作系统的性能,并直接影响到整个计算机系统作用的发挥。6.1.1 存储器的层次      目前在许多计算机系统中,采用三级存储器结构,即高速缓冲存储器、主存储器和外部存储器。三级存储器的比较     从高速缓存到外存,其容量愈来愈大,一般每级之间相差几个数量级。而访问数据的速度则愈来愈慢,价格也愈来愈便宜。 6.1.2 地

2010-11-04 16:38:00 1320 1

转载 函数调用方式(__cdecl, _stdcall, _fastcall, _thiscall, etc)

__cdecl目录几种函数调用方式几种调用约定的区别名字修饰约定设置方法编辑本段几种函数调用方式  __cdecl 是C DECLaration的缩写(declaration,声明),表示C语言默认的函数调用方法:所有参数从右到左依次入栈,这些参数由调用者清除,称为手动清栈。被调用函数不需要求调用者传递多少参数,调用者传递过多或者过少的参数,甚至完全不同的参数都不会产生编译阶段的错误。   _stdcall 是StandardCall的缩写,是C++的标准调用方式:所有参数从右到左依次入栈,如果是调用类

2010-11-04 12:39:00 513

转载 x86栈帧布局简记

x86栈帧布局简记2008-01-24 01:27<br />       虽然不用汇编做开发,但在C/C++中定位一些core问题时需要查看堆栈结构,所以对堆栈布局要有一个基本的了解,但长期不接触就又忘了,因此在这里做个简记,以备用到的时候可以快速记起。当函数P调用函数Q时,Q的参数是放在P的帧中的,且P中的下一条指令地址将被压入栈中,形成P的栈帧的末尾。Q的栈帧从保存帧指针的位置开始,后面开始保存其他寄存器的值。大多数信息的访问都是相对于帧指针(%ebp)的。如果函数要返回整数或指针的话,常用寄存器%e

2010-11-03 22:45:00 808

转载 x86寄存器

x86寄存器说明ebp和esp是32位的SP,BP esp是堆栈指针 ebp是基址指针 ESP与SP的关系就象AX与AL,AH的关系. 32位CPU所含有的寄存器有: 4个数据寄存器(EAX、EBX、ECX和EDX) 2个变址和指针寄存器(ESI和EDI) 2个指针寄存器(ESP和EBP) 6个段寄存器(ES、CS、SS、DS、FS和GS) 1个指令指针寄存器(EIP) 1个标志寄存器(EFlags) 1、数据寄存器 数据寄存器主要用来保存操作数和运算结果等信息,从而节省读取操作数所需占用总线和访问存储器的

2010-11-03 22:06:00 411

转载 LMA和VMA

原文可见:http://blog.ednchina.com/conan85420/393994/message.aspx标签: LMA与VMA  LMA与VMALMA 详解LMA的英文原版解释:LMA(Load Memory Address): the address at which the section will be loaded.什么是Load Memory Address,内存装载地址呢? 此处,单单从名字上,我们就可以看出几层意思:load,装载为何要装载呢? 因为,如果想要使你的程序(即经历

2010-11-03 22:01:00 516

AT&T-asm-cn.pdf

经典的AT&T汇编中文教程,欢迎下载!!!

2008-11-04

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除