Machine language

I was looking at Arduino´s C compiler modules but I did not find where the final machine code (hex) is generated for each C command. Did anybody have same curiosity already ? Any advise about that such some info or link resource will be appreciated. Thanks

If you are looking for a way to copy the generated hex file, please see the Arduino IDE menu.

Export Compiled Binary Saves a .hex file that may be kept as archive or sent to the board using other tools.


but I did not find where the final machine code (hex) is generated for each C command.

You'll have a very difficult time determine which bytes in the hex file correspond to a given C "command" (especially since C does not have commands; it has functions). Some statements, like for, might get unrolled. Some get optimized away completely.

Actually I was just curious to see how optimized (or not) one C instruction such x=x+1; is transformed in machine language. I know how to find the corresponding hex bytes generated but I would like to see how they are generated !!!! As I noticed the C compiler has a complex and confused structure... Nothing is trivial... Too many directories, subdirectories, subsub and so on...

My initial guess was that you where looking for a way to generate an assembler listing. There are several, a good description may be found on this German web-page.

Please note that you will have to modify the compiler options for the Arduino build receipts or write a local configuration file.


Thanks kowalski for you answer but that is not the problem. I know how to get the assembler list generated by Arduinos's C compiler. The problem is how to know which algoritimum the compiler is using for each operation...

I think you have to look into how AVR-GCC works for that.

Thank you man… It is exactly what I want…