Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 123307
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 11, 20262026-05-11T04:15:57+00:00 2026-05-11T04:15:57+00:00

GCC compiles (using gcc –omit-frame-pointer -s ): int the_answer() { return 42; } into

  • 0

GCC compiles (using gcc --omit-frame-pointer -s):

    int the_answer() { return 42; } 

into

            .Text     .globl _the_answer     _the_answer:         subl    $12, %esp         movl    $42, %eax         addl    $12, %esp         ret        .subsections_via_symbols 

What is the ‘$12’ constant doing here, and what is the ‘%esp’ register?

  • 1 1 Answer
  • 1 View
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. 2026-05-11T04:15:58+00:00Added an answer on May 11, 2026 at 4:15 am

    Short answer: stack frames.

    Long answer: when you call a function, compilers will manipulate the stack pointer to allow for local data such as function variables. Since your code is changing esp, the stack pointer, that’s what I assume is happening here. I would have thought GCC smart enough to optimize this away where it’s not actually required, but you may not be using optimization.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I recently tried building my own shared and weak pointers. Code that compiles using
Visual Studio 2008 I am using the following source code that compiles ok using
The below code compiles with gcc v4.3.3 and the templated child class seems to
I'm trying to make my project compile under GCC (Visual Studio compiles it flawlessly).
I am using Eclipse CDT with Cygwin GCC 3 as compiler. My project is
I am trying to compile Flusspferd on Windows using MSVC, but it fails due
I have a Visual Studio C++ based program that uses pre-compiled headers ( stdafx.h
I am not particularly new to C/C++ but today I discovered some things that
Following code fails with a error message : t.cpp: In function `void test()': t.cpp:35:

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.