Going into the dark world of assembly languages

Hey Everyone!

I've spent the last few years programming in several languages (C/C++, C#, VB.Net, HTML+CSS, SQL, and small bits of java, PHP and phyton); in various projects such as game development, security applications, database services, etc. But the time has come for me to delve into a topic that I once looked at and thought "Holy badger of beer!". Yes my friends, I'm talking about the good, old, low level.....assembly language.... *DUN DUN DUNNNN!!!!*. I have recently stumbled upon a website when doing some research in which 4 points of my question were answered.

Why Code at such a basic level?

- No bloat, by coding in a LL (Low Level) you can reduce the code to just the job in hand (already had a sense of that).

- Speed, Smaller code size means your programs load quicker and run quicker (also had an idea of that)

- Control, You are in control of the code, not the compiler. This means you know exactly what the processor is doing as it moves through your code. This makes it easier to get things right and to spot errors. (Interesting, do go on)

- Satisfaction. You yourself are writing the program. It is not being written in part by the compiler. (Too true, that is something that has always made me feel like I have OCD when programming in high level languages)

 

This is something that I've always wanted to do and hopefully my post might inspire someone else out there to make the same or similar move that I am making. Life is short and knowledge is awesome. Instead of just relaxing come up with an idea and go for it! (Think I'm going off in a tangent here).

Anyhow here's the link to the website I'm looking at:

http://www.godevtool.com/GoasmHelp/newass.htm

 

I have been dragging my feet in ASM for a while. Time to get some serious shit done :)

I highly, highly recommend the "Art of Assembler," or AOA. Fantastic book, easily found in PDF as it is rather old, but one of the best resources out there.

do you mean:

http://www.amazon.de/The-Assembly-Language-Randall-Hyde/dp/1593272073/ref=sr_1_2?ie=UTF8&qid=1375281370&sr=8-2&keywords=Art+of+Assembler

thx

That is a new version.

I was referring to this book, specifically.

i ordered it and began reading it.

its pretty cool. do you think the older version is better? if so why?

thx

Art of Assembler is the right way to go. However I don't think it makes sense to use assembly to write a normal program. It makes sense for when you do crazy stuff which you can't do on a higher level. Normaly you won't see any performance improvements if you use just assembler instead of c. First let the compiler try to optimize it and if he fails or there is a better optimizing method you can still use inline assembler to fix it.

agreed, there is the famouse example of inline code vs function calls.

intuitively inline code runs faster, but when you begin to make lots of inline code to improve performance, you may end up with a code segment that is to large for the cache and that decreases performance significantly.

compilers usually know the target cpu and are even able to compile multiple different versions of code, optimized for several cpus.

but assembler nevertheless is a hell lot of fun ;)