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 8368249
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 9, 20262026-06-09T13:20:30+00:00 2026-06-09T13:20:30+00:00

I am trying to understand the following: Given a small Hello World program in

  • 0

I am trying to understand the following:

Given a small Hello World program in C

#include <stdio.h>

int main()
{
    int i;
    for(i=0; i < 10; i++)
    {
        printf("Hello, world!\n");
    }
}

When you compile this with gcc, and then examine the resulting .out file using objdump, you get something like the following:

08048374 <main>:
8048374:       55                      push   ebp
8048375:       89 e5                   mov    ebp,esp
8048377:       83 ec 08                sub    esp,0x8
804837a:       83 e4 f0                and    esp,0xfffffff0
804837d:       b8 00 00 00 00          mov    eax,0x0
8048382:       29 c4                   sub    esp,eax
8048384:       c7 45 fc 00 00 00 00    mov    DWORD PTR [ebp-4],0x0
804838b:       83 7d fc 09             cmp    DWORD PTR [ebp-4],0x9
804838f:       7e 02                   jle    8048393 <main+0x1f>
8048391:       eb 13                   jmp    80483a6 <main+0x32>
8048393:       c7 04 24 84 84 04 08    mov    DWORD PTR [esp],0x8048484
804839a:       e8 01 ff ff ff          call   80482a0 <printf@plt>
804839f:       8d 45 fc                lea    eax,[ebp-4]
80483a2:       ff 00                   inc    DWORD PTR [eax]
80483a4:       eb e5                   jmp    804838b <main+0x17>
80483a6:       c9                      leave  
80483a7:       c3                      ret    
80483a8:       90                      nop    
80483a9:       90                      nop    
80483aa:       90                      nop    

The first column of values in the resulting .out file are memory addresses, if I understand correctly, these addresses contain the instructions that are following in the other columns.

Now my question: If you copy the file to a different machine (or a different location on the same machine even) and dump the file again these addresses should change to something else because the program will be at a different location in memory, correct? But if I do that, I get the exact same output, the same address values. Why is that? I clearly misunderstand the meaning of this first column, could somebody please explain to me what these addresses are exactly? Thanks in advance!

Update:
As I understand it now, thanks to Paul R’s answer and some further wikipedia reading, these addresses are referencing a virtual address space in which the code is executed by the operating system of the machine on which it runs. These virtual addresses are mapped to absolute addresses on the actual machine by its operating system.

  • 1 1 Answer
  • 0 Views
  • 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. Editorial Team
    Editorial Team
    2026-06-09T13:20:31+00:00Added an answer on June 9, 2026 at 1:20 pm

    The addresses in the left column are the (virtual) addresses at which your code will be loaded when it’s run. Unless the code is position-independent it will need to be loaded at these addresses to run correctly.

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

Sidebar

Related Questions

I am trying to understand the following code: #include<stdio.h> #include<stdlib.h> #include<sys/io.h> #define baseport 0x378
I'm trying to understand why the following test does not fail. In this simplified
I am trying to understand a shell script.Following script is just a small portion
i am trying to understand following fragment of javascript code <!DOCTYPE html> <html> <body>
I'm stuck trying to understand the following: %w[a b c d][4,20] => [] %w[a
I was just trying to understand delegates using the following code. public class delegatesEx
I'm trying to understand why out ColdFusion 9 (JRun) server is throwing the following
I am trying to understand isolation/locks in SQL Server. I have following scenario in
I have the following class written by someone else that I'm trying to understand
I'm trying to understand how ActiveMQ's configuration treats dynamicallyIncludedDestinations etc. eg. Consider the following

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.