c变量的压栈操作
Posted 蜗牛码
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c变量的压栈操作相关的知识,希望对你有一定的参考价值。
int main() { long t = 10; int x = 10; short y = 20; char c = ‘a‘; return 0; } 生成的汇编如下 1、long t = 10 ? movq $10, -16(%rbp) 也就是 10 存储在下面8字节中。 %rbp - 16 %rbp - 15 %rbp - 14 %rbp - 13 %rbp - 12 %rbp - 11 %rbp - 10 %rbp - 9 2、int x = 10; ? movl $10, -8(%rbp) 也就是 10 存储在下面4字节中。 %rbp - 8 %rbp - 7 %rbp - 6 %rbp - 5 3、short y = 20; ? movw $20, -4(%rbp) 也就是 10 存储在下面2字节中。 %rbp - 4 %rbp - 3 4、char c = ‘a‘; ? movb $97, -1(%rbp) 也就是 a存储在下面1字节中。 %rbp - 1
从上面的例子可以看出,变量值从低地址到高地址存放。
以上是关于c变量的压栈操作的主要内容,如果未能解决你的问题,请参考以下文章