汇编解析随记

原创 2016年06月02日 10:57:01

1. push register指令并不意味着保存寄存器内容,有可能是分配4个字节的栈空间,例如如下源代码

int _tmain(int argc, _TCHAR* argv[])
{
	int* p =NULL;
	*p = 10;
	return 0;
}
汇编指令为

int _tmain(int argc, _TCHAR* argv[])
{
00E91000 55                   push        ebp  
00E91001 8B EC                mov         ebp,esp  
00E91003 51                   push        ecx  
	int* p =NULL;
00E91004 C7 45 FC 00 00 00 00 mov         dword ptr [p],0  
	*p = 10;
00E9100B 8B 45 FC             mov         eax,dword ptr [p]  
00E9100E C7 00 0A 00 00 00    mov         dword ptr [eax],0Ah  
	return 0;
00E91014 33 C0                xor         eax,eax  
}
可以看到为了给变量p分配栈空间,编译器采用了push ecx方式,而非sub esp, 4。

线性汇编随记

   1.在线性汇编中是可以加入"||"的,虽然TI文档里说在线性汇编里并行指令是非法,如果加入位置正确的话,是可以提高速度的2.在没有编排流水而将循环展开,有时候得到的性能比不采用循环展开,由CCS...
  • ciompmq
  • ciompmq
  • 2008年07月20日 15:53
  • 1228

汇编随记-程序结构组成

.bss是什么意思?.text和.data又是什么意思呢?让我们来看看汇编程序的基本结构,及各部分所代表的含义。...
  • u014717036
  • u014717036
  • 2015年05月21日 21:20
  • 364

3月份总结(随记)

今天早上看见了一句美丽的英语:you are the first ray of my every dawn.(你是我清晨的第一缕阳光)。烟大的春天很美丽,三元湖畔的白玉兰花开了,才猛然发现那是一棵美丽...
  • yantaidaxuecjj
  • yantaidaxuecjj
  • 2015年03月30日 16:35
  • 848

免费且快速地搭建个人网站

域名是怎么来的 这里我们先选择第二个,BAT中的A。 输入你想注册的域名,查询这个域名是否被别人注册了。 Tips: 我的域名是goileo.top,为了演示注册过程,显示未...
  • qq_21918903
  • qq_21918903
  • 2018年02月06日 11:20
  • 72

一周随记

来到UCL,正式开课第二周了吧,交换生活已经过去了不少了。随便说说这周吧。 前几天想起了自己买的那个域名,然后才想起来自己自从买了就没了下文,我也不知道要怎么办了。今天试了下,万网的域名解析,要是直接...
  • t9410
  • t9410
  • 2015年10月17日 07:25
  • 237

用汇编分析C++程序

一、   引用 “引用”是C++中引入的重要概念之一。指针的不安全使人们对它诟病颇多,C++引用机制恰如其分的解决了这一问题。在C++语法上,引用和指针是不同的,但在内部实现机制上,它们是完全相同的...
  • zang141588761
  • zang141588761
  • 2017年01月18日 15:07
  • 336

汇编总体讲解

第○章 写在前面 我不想夸大或者贬低汇编语言。但我想说,汇编语言改变了20世纪的历史。与前辈相比,我们这一代编程人员足够的幸福,因为我们有各式各样的编程语言,我们可以操作键盘、坐在显示器面前,甚至使...
  • Yuanchang_Best
  • Yuanchang_Best
  • 2014年10月01日 01:50
  • 1069

汇编-例子解析(一)

4-例子解析 一、hello实例   DSEG SEGMENT MESSAGE DB 'How do you do',0DH,0AH,24H DSEG ENDS   CS...
  • braveyly
  • braveyly
  • 2011年10月18日 13:52
  • 6713

汇编解析.

32位CPU所含有的寄存器有:4个数据寄存器(EAX、EBX、ECX和EDX) 2个变址和指针寄存器(ESI和EDI) 2个指针寄存器(ESP和EBP) 6 个段寄存器(ES、CS、SS、DS、FS和...
  • herecles
  • herecles
  • 2010年12月07日 21:36
  • 508

图解分析汇编代码以理解计算机是如何工作的

孙业毅 原创作品 转载请注明出处 《Linux内核分析》MOOC课程:在线课程链接http://mooc.study.163.com/course/USTC-1000029000  第一讲 计算机是如...
  • sunyeyi
  • sunyeyi
  • 2015年03月07日 19:31
  • 4264
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:汇编解析随记
举报原因:
原因补充:

(最多只允许输入30个字)