News:

MASM32 SDK Description, downloads and other helpful links
MASM32.com New Forum Link
masmforum WebSite

Assembly - A few questions

Started by tokzikate, December 27, 2011, 11:27:25 AM

Previous topic - Next topic

tokzikate

Hi all,
I've been programming for a while now, I started with python, then moved on to C++.
Anyway, back on topic, is it worth learning assembly, and if so, what is achievable by learning it?
I apologise for the basic question.
Regards,
~tokzikate

dedndave

most of us have learned assembler because we had some specific need to do so
it will involve a lot of reading   :P
but - it's a good challenge - and not without rewards
personally, i prefer assembler over higher-level languages because i was always bumping into some limitation
i.e. "i can't do this; i can't do that"
assembler removes many of these limitations
but, you must learn a lot of info, and you may find the syntax more difficult, at first

SteveAsm

Quote...is it worth learning assembly, and if so, what is achievable by learning it?"

Well, (unfortunately), there isn't a whole lot of commercial support for Assembly Language today.
Not like in the old days, when you could find tons of books available on the topic.
Now days you have to rely pretty much on web searches and forums like this one.

As to what is achievable..., like any language, that is up to your imagination.
You do need to know ahead of time that if you have been doing oop programming, Assembly Language is not oop. Neither is it RAD.

Assembler, as I'm sure you are aware, is a very low level type of programming.
In earlier days, you had complete control of the machine hardware and could make the hardware do anything you liked, (and the hardware was capable of).
These days the operating systems kind of get in the way of that.

Needless to say, operating systems and programming languages can be written in Assembler.
Nearly any type of user-app can be written in Assembler, once you understand the constraints imposed by the operating systems.
Today, instead of writing programs that cause the hardware to perform in a certain way, you write programs that cause the operating system to perform in a certain way.

It has to be said, too, that compiled languages do not always produce the most efficient programs, either. Even when optimized.
In that respect, if you are an efficient programmer, you can write highly efficient Assembly code.
Conversely, you can also write very sloppy Assembly code as well.

I began learning Assembly Language back in the early 1980's and by no means would I consider myself an expert in Assembly Language programming.
Like everyone else who learned Assembly Language, back in those days, I first had to learn about the hardware, in intimate detail.
I still have a couple dozen books I acquired on Assembly Language from back then.
Today, I seem to be acquiring more books about the operating system and the API.