Comments by "0x777" (@0x777) on "Assembly Language Misconceptions" video.
-
The speed will highly depend on the quality of the compiler used. With GCC or VC, I agree, especially when writing code for modern superscalar CPUs, they are awesome at optimizing rearranging instructions to maximize throughput, better than anything you could probably hope to do by hand. But there are some compilers, mostly for embedded MCs, that are horrible at optimization and you will gain a LOT of speed by using assembler rather than relying on them.
Which is kinda painful when you think about it, not only is power consumption and runtime often crucial in them, we're also talking about clock speeds that are measured in MHz rather than GHz, where wasting 1000 cycles actually results in measurable longer run time and thus power consumption. If you now also take into consideration that binary size does actually matter when your instruction memory is measured in kilobytes, it really, really hurts. Why can't they provide sensible compilers?
This aside, assembly language has very little use in "hacking". It, or rather, knowing it, is useful to reverse engineer software and to take a closer look at malware, something I did for quite a while in the early 2000s for a living, but most malware these days is actually written in high level languages. Malware has long become a business, and pushing out software is critical. The days of creatively hand-crafted, self modifying code written in assembly by masters of the art are long gone. What matters in terms of malware today is to pump out new variants quickly, and assembly language isn't exactly known for its speedy production cycles.
1