首页
社区
课程
招聘
[原创 汇编-1.变量函数
2020-9-20 11:15 1791

[原创 汇编-1.变量函数

2020-9-20 11:15
1791

0x01 变量

在test.s中,找到定义变量的代码

1
2
3
4
push    %ebp
mov     %ebp,% esp
and     %esp, 0FFFFFFF0h
sub     %esp, 20h

主要就是
push %ebp
毕竟这是两个变量

变量赋值

1
2
mov     dword ptr [esp+1Ch], 0
mov     byte ptr [esp+1Bh], 61h

可以看到0和61h(97,'a')被分别赋值到esp+1Ch和esp+1Bh。

0x02函数

调用很简单,直接call 函数名
call _scanf

传参数

也很简单,直接把参数存在寄存器里,需要时去读寄存器即可

 

#0x03 编译器优化部分
看了别人的文章,大概说一下
1.常量折叠
一个函数定义后赋值一个固定的数,就会常量折叠,比如

1
2
int n = 0;
printf("%d",n);

编译器会把它变成这样

1
2
int n =0;
printf("%d",0);

最后
·printf("%d",0);`


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2020-9-20 11:28 被wx_123456编辑 ,原因:
收藏
点赞0
打赏
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回