i am pretty new to assembly language and i wonder what is difference between the final binary output of the same program written in c and written in an assembly if they do exactly the same thing. if the binary output is the same then why use assembly language? if they are not same then how the programs function the same?
Apart from that, it often takes a lot more effort to write assembly code to achieve X than it does to do X in a higher level language like C. C also has a library .... which means it is not necessary to code everything from scratch.
As an exercise, try getting to the stage where you have some level of familiarity with both assembler (on your target machine) and with C. Then pick a reasonably non-trivial programming task that seeks to read data from files, do some processing, and write data back to files. First implement it in assembler, and track how long it takes. Take a week off to clear your head. Then implement it in C, (without looking at any of the design or code from your assembler work) and track how long that takes.
When you've done that, report back here (I'll look forward to seeing your post in a couple of months).
Odds are, you will find things take you a lot longer with assembler.
>what is difference between the final binary output of the same program
>written in c and written in an assembly if they do exactly the same thing.
Hand-crafted assembly written by a skilled assembly programmer will probably be more optimized than the object code produced by a compiler.
>if they are not same then how the programs function the same?
You can do things very differently in a program and still end at the same result. That's why you can ask ten programmers to write the same program to the same specification and get ten completely different solutions.