码迷,mamicode.com
首页 > 其他好文 > 详细

c变量的压栈操作

时间:2017-09-04 17:45:15      阅读:123      评论:0      收藏:0      [点我收藏+]

标签:log   pre   ret   例子   字节   生成   har   blog   color   

int main()
{
   long t = 10;
   int x = 10;
   short y = 20;
   char c = a;
    return 0;
}
生成的汇编如下
1long t = 10 
?
movq    $10, -16(%rbp)   
也就是 10 存储在下面8字节中。
 %rbp - 16 
 %rbp - 15
 %rbp - 14
 %rbp - 13
 %rbp - 12
 %rbp - 11
 %rbp - 10
 %rbp - 9

int x = 10;
 ?
movl    $10, -8(%rbp)

也就是 10 存储在下面4字节中。
 %rbp - 8
 %rbp - 7
 %rbp - 6
 %rbp - 5

short y = 20;
 ?
movw    $20, -4(%rbp)

也就是 10 存储在下面2字节中。

   %rbp - 4

 %rbp - 3

char c = a;

 ?
movb    $97, -1(%rbp)

也就是 a存储在下面1字节中。
 %rbp - 1

从上面的例子可以看出,变量值从低地址到高地址存放。

c变量的压栈操作

标签:log   pre   ret   例子   字节   生成   har   blog   color   

原文地址:http://www.cnblogs.com/snail88/p/7474388.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!