首页 热点专区 小学知识 中学知识 出国留学 考研考公
您的当前位置:首页正文

十六.反汇编

来源:要发发知识网
搞懂本质 直接看到了sizeof,然后去看看他里面的东西,就给他一个具体的数字,说明他是一个符号而已

sizeof 就是一个符号,编译器一看到他,就知道是这个符号了,然后给他设置内部的数而已


int c = ++a

bp指针如果加的话,就是找参数,如果减法,就是找到局部变量;

init c = ++a + ++a 看看这句话,结果39

编译器不一样,这就话有可能结果也不一样,实际开发中不要这样写,不安全;


访问结构体属性 比较条件结果表 符号寄存器,存放比较的结果,修改相应的二进制位 Jietu20170520-121738.jpg

switch和if的效率问题

if (a > 0),bp-4,局部变量

8086架构有16个寄存器;
ARM架构有37个寄存器;6个特定的寄存器,其他都叫通用寄存器

ARM寄存器.gif EFLAGS标志寄存器图示01.png
switch函数的反汇编1 switch函数的反汇编2 if语句

在这种基本比较中,我们认为是相同的,但是其他情况就不应了;

switch123 switch1-7

开辟空间,放指令,将来拿来就用,然后保存,cmp的结果都放到哪里,还有要去执行的代码放到内存中,保存内存地址,将来直接用,拿空间换时间;

编译器的优化-有些优化了时间,有些最大优化,有些尽可能优化。。。

显示全文