Posted in C
12:25 pm, December 12, 2021

Hello world in C and seeing what it is actually doing

One of the most simple C applications, how to compile it and how to objdump it. 



int main()
  int i;
  for(i=0;i < 10; i++)
    puts("Hello Mac\n");
  return 0;

This will return the string Hello Mac 10 times.

lets compile and run it

gcc firstprog.c
ls -l

now see what its really doing

objdump -D a.out | grep -A20 main.:

Random Fact about 32 vs 64 bit processors.

32-bit processors have 232 (or 4,294,967,296) possible addresses
64-bit ones have 264 (1.84467441 x 1019) possible addresses

Each byte is shown in hexadecimal notation which is a base 16 numbering system, rather than the normal system we are used to which is base-10. Hex uses 0 - 9 and also A - F for 10 - 15. 

Show what it would look like with intel formatting

objdump -M intel -D a.out | grep -A20 main.:

Note this will throw an error on arm based mac's, for obvious reasons.

objdump: error: 'a.out': Unrecognized disassembler option: intel


View Statistics
This Week
This Month
This Year

No Items Found.

Add Comment
Type in a Nick Name here
Search Code
Search Code by entering your search text above.

This is my test area for webdev. I keep a collection of code snippits here, mostly for my reference. Also if i find a good site, i usually add it here.

Join me on Substack if you want me to send you a collection of the things i have done or found or read for the week. Or follow me on twitter if you prefer, i dont post much but i probably should!


Random Quote
All of humanity's problems stem from man's inability to sit quietly in a room alone, wrote Blaise Pascal.