| | |
Is assembly worth learning it?
![]() |
•
•
Join Date: Oct 2006
Posts: 6
Reputation:
Solved Threads: 0
hi,
first post here. It seems a very nice community.
So, I know a little about 16bit DOS Assembly and also a little about 32bit Linux Assembly.
I started learning Assembly out of curiosity, to understand C better and to learn exactly how the stack worked.
I am currently learning Linux Assembly, as this is the OS I want to concentrate in for the time being.
While reading, a lot of computing concepts and theories made a lot more sense.
While I enjoy assembly much, a question keeps popping up.
Is assembly worth learning it?
I know that everything you learn can only be an advantage, but sometimes I just get the feeling that I'm wasting my time with Assembly.
I've got a huge list of books that I want to read and I just want to be sure that I'm not spending precious time on something that is obselete, unwanted and useless.
The thing is, that I really like low-level stuff.
So my questions are:
1. I hear a lot of people saying that the only people still writing assembly are some crazy old hackers that refuse to use anything else. Is that true?
2. I hear also that anyone wanting/trying to make a real application in assembly (except device drivers) is a masochist. Like make a GUI in Windows or something. Is that true?
3. It has come to my attention, that there is no dedicated forum for Linux Assembly on the whole web! The only resources/discussions I have seen are a couple of blogs and some empty/deserted subforums in larger assembly forums.
What is the reason of this limited interest in Linux Assembly?
Does this mean that noone uses assembly on Linux?
Or does that mean that doing assembly on Linux is pretty much useless?
4. I know assembly is fast and efficient (if the programmer is good) and is great for developing device drivers, operating systems and is often used in embedded devices. But what are some other applications of it?
5. The most people I see are just *forced* to learn assembly, in order to involve themselves with reverse engineering or cracking.
I think that's because the 95% or more of the assembly material/forums/resources I see is headed towards the Microsoft Windows OS. Because there is a lot of commercial programs that attract reverse engineers and/or crackers. Is that right?
Is there a reason to do Windows Assembly if you're not interested in reverse engineering (I'm not saying that I'm not)? If yes, please list as many as you can.
6. Does learning 16bit DOS Assembly make any sense anymore? Except the concepts/general asm way of thinking taught from it.
first post here. It seems a very nice community.
So, I know a little about 16bit DOS Assembly and also a little about 32bit Linux Assembly.
I started learning Assembly out of curiosity, to understand C better and to learn exactly how the stack worked.
I am currently learning Linux Assembly, as this is the OS I want to concentrate in for the time being.
While reading, a lot of computing concepts and theories made a lot more sense.
While I enjoy assembly much, a question keeps popping up.
Is assembly worth learning it?
I know that everything you learn can only be an advantage, but sometimes I just get the feeling that I'm wasting my time with Assembly.
I've got a huge list of books that I want to read and I just want to be sure that I'm not spending precious time on something that is obselete, unwanted and useless.
The thing is, that I really like low-level stuff.
So my questions are:
1. I hear a lot of people saying that the only people still writing assembly are some crazy old hackers that refuse to use anything else. Is that true?
2. I hear also that anyone wanting/trying to make a real application in assembly (except device drivers) is a masochist. Like make a GUI in Windows or something. Is that true?
3. It has come to my attention, that there is no dedicated forum for Linux Assembly on the whole web! The only resources/discussions I have seen are a couple of blogs and some empty/deserted subforums in larger assembly forums.
What is the reason of this limited interest in Linux Assembly?
Does this mean that noone uses assembly on Linux?
Or does that mean that doing assembly on Linux is pretty much useless?
4. I know assembly is fast and efficient (if the programmer is good) and is great for developing device drivers, operating systems and is often used in embedded devices. But what are some other applications of it?
5. The most people I see are just *forced* to learn assembly, in order to involve themselves with reverse engineering or cracking.
I think that's because the 95% or more of the assembly material/forums/resources I see is headed towards the Microsoft Windows OS. Because there is a lot of commercial programs that attract reverse engineers and/or crackers. Is that right?
Is there a reason to do Windows Assembly if you're not interested in reverse engineering (I'm not saying that I'm not)? If yes, please list as many as you can.
6. Does learning 16bit DOS Assembly make any sense anymore? Except the concepts/general asm way of thinking taught from it.
•
•
Join Date: Jun 2006
Posts: 47
Reputation:
Solved Threads: 4
go with a higher level language becuase the only use for assembly is for boot loaders the modern day compilers have power to do so good these days there is no reason to code for speed!
I will try to answer some of yout questions.
The answer is yes and no. Learn it but dont crack your head about it.
No its not true. Ok old guys using them more than young ones, but not for hacking. For example for optimising, but not for PC but for embedded systems.
Yes he is masochist (this is only my opinion which can be false).
Once time I wanted to add tutorial for MIPS assembler, and I posted a thread to ask where can I do it. This answer I got. So now you know the answer for your question.
Skipping these questions becouse don't know the answer.
For example I'm using it for embedded system, but don't know for what also is used.
For other questions don't know the answer.
The point is that assembly is not very popular. For example there are bunch of moderators for assembly forum (which are taken from C/C++ forum) but they hardly visit this forum, not to say that almost never post anything here. Narue posted here (from the team who helps to work this forum) but I don't know where she is. Hadn't seen here for a while. Also the owner of this forum posts here. I'm trying to post as much as I can but only for MIPS assembly. There are off course others who posts here but none of them are mods.
•
•
•
•
Is assembly worth learning it?
•
•
•
•
1. I hear a lot of people saying that the only people still writing assembly are some crazy old hackers that refuse to use anything else. Is that true?
•
•
•
•
2. I hear also that anyone wanting/trying to make a real application in assembly (except device drivers) is a masochist. Like make a GUI in Windows or something. Is that true?
•
•
•
•
It has come to my attention, that there is no dedicated forum for Linux Assembly on the whole web! The only resources/discussions I have seen are a couple of blogs and some empty/deserted subforums in larger assembly forums.
What is the reason of this limited interest in Linux Assembly?
•
•
•
•
Does this mean that noone uses assembly on Linux?
Or does that mean that doing assembly on Linux is pretty much useless?
•
•
•
•
4. I know assembly is fast and efficient (if the programmer is good) and is great for developing device drivers, operating systems and is often used in embedded devices. But what are some other applications of it?
For other questions don't know the answer.
The point is that assembly is not very popular. For example there are bunch of moderators for assembly forum (which are taken from C/C++ forum) but they hardly visit this forum, not to say that almost never post anything here. Narue posted here (from the team who helps to work this forum) but I don't know where she is. Hadn't seen here for a while. Also the owner of this forum posts here. I'm trying to post as much as I can but only for MIPS assembly. There are off course others who posts here but none of them are mods.
Last edited by andor; Oct 5th, 2006 at 5:04 pm.
If you want to win, you must not loose (Alan Ford)
•
•
Join Date: Jul 2006
Posts: 24
Reputation:
Solved Threads: 0
•
•
•
•
Is assembly worth learning it?
I know that everything you learn can only be an advantage, but sometimes I just get the feeling that I'm wasting my time with Assembly.
I've got a huge list of books that I want to read and I just want to be sure that I'm not spending precious time on something that is obselete, unwanted and useless.
The thing is, that I really like low-level stuff.
•
•
•
•
6. Does learning 16bit DOS Assembly make any sense anymore? Except the concepts/general asm way of thinking taught from it.
•
•
Join Date: Oct 2006
Posts: 1
Reputation:
Solved Threads: 0
I believe so, while High Level languges make life easier, ASM teaches you how processors actually work.
Nah ASM is big in the debugging world. A lot of engineerings (especially those who work in reverse engineering) use it.
LOL, sounds like something a VB coder would say.
While some elements of ASM are OS specific you should focus more on the concepts which are univeral between all processors.
You can code ANYTHING in ASM. Its all about how much time you have on your hands 
Common uses:
Boot application
BIOS'
Virii
Stupid Hello world scripts
See my closing statement
Just concepts, which is all you should be looking for
Assembly isn't for everyone, personally I think assembly programming is a wonderful thing. I think most programmers would learn a thing or two if they spent some time learning the cocepts which asm is based around.
That said there is no real reason to learn assembly in depth, writing a few applications and understand the cocepts of stacks, pointers and registries is as far as most people need to take it.
•
•
•
•
1. I hear a lot of people saying that the only people still writing assembly are some crazy old hackers that refuse to use anything else. Is that true?
•
•
•
•
2. I hear also that anyone wanting/trying to make a real application in assembly (except device drivers) is a masochist. Like make a GUI in Windows or something. Is that true?
•
•
•
•
3. It has come to my attention, that there is no dedicated forum for Linux
Assembly on the whole web! The only resources/discussions I have seen are a couple of blogs and some empty/deserted subforums in larger assembly forums.
What is the reason of this limited interest in Linux Assembly?
Does this mean that noone uses assembly on Linux?
Or does that mean that doing assembly on Linux is pretty much useless?
While some elements of ASM are OS specific you should focus more on the concepts which are univeral between all processors.
•
•
•
•
4. I know assembly is fast and efficient (if the programmer is good) and is great for developing device drivers, operating systems and is often used in embedded devices. But what are some other applications of it?

Common uses:
Boot application
BIOS'
Virii
Stupid Hello world scripts

•
•
•
•
5. The most people I see are just *forced* to learn assembly, in order to involve themselves with reverse engineering or cracking.
I think that's because the 95% or more of the assembly material/forums/resources I see is headed towards the Microsoft Windows OS. Because there is a lot of commercial programs that attract reverse engineers and/or crackers. Is that right?
Is there a reason to do Windows Assembly if you're not interested in reverse engineering (I'm not saying that I'm not)? If yes, please list as many as you can.
See my closing statement
•
•
•
•
6. Does learning 16bit DOS Assembly make any sense anymore? Except the concepts/general asm way of thinking taught from it.
Assembly isn't for everyone, personally I think assembly programming is a wonderful thing. I think most programmers would learn a thing or two if they spent some time learning the cocepts which asm is based around.
That said there is no real reason to learn assembly in depth, writing a few applications and understand the cocepts of stacks, pointers and registries is as far as most people need to take it.
•
•
Join Date: Nov 2006
Posts: 134
Reputation:
Solved Threads: 3
I learnt assembly in the days of MS-DOS, when the chances of actually making use of it in real life programs were high. But now you will hardly ever find yourself making use of it, and that primarily for two reasons:
1.) Assembly language was the only way in which MS-DOS functions could be called. Therefore, if you wanted to do more than was easily do-able in a high level language, you had to use assembly language. However, the Windows and Linux API's were both designed with C in mind, so assembly language is no longer needed for that.
2.) Another reason for writing in assembly language used to be so that you could directly program the hardware: Bare metal programming as it was (still is) called. However, protected mode operating systems like Windows take a very dim view of applications trying to directly program the hardware, and shut them down if they try. (The reason for that being that, in a multi tasking environment, you can't have two or more programs vying for direct control of one and the same piece of hardware). Therefore assembly is no longer needed for that purpose either.
So, unless I was planning on writing my own operating system, or very low level device drivers (which are mostly written in C nowadays) I would probably have only very limited motivation for learning assembly language today.
1.) Assembly language was the only way in which MS-DOS functions could be called. Therefore, if you wanted to do more than was easily do-able in a high level language, you had to use assembly language. However, the Windows and Linux API's were both designed with C in mind, so assembly language is no longer needed for that.
2.) Another reason for writing in assembly language used to be so that you could directly program the hardware: Bare metal programming as it was (still is) called. However, protected mode operating systems like Windows take a very dim view of applications trying to directly program the hardware, and shut them down if they try. (The reason for that being that, in a multi tasking environment, you can't have two or more programs vying for direct control of one and the same piece of hardware). Therefore assembly is no longer needed for that purpose either.
So, unless I was planning on writing my own operating system, or very low level device drivers (which are mostly written in C nowadays) I would probably have only very limited motivation for learning assembly language today.
![]() |
Similar Threads
- Is It Worth Learning Rugby? (Ruby)
- Reccomended languages (Computer Science)
- c++ learning advice (C++)
Other Threads in the Assembly Forum
- Previous Thread: Assembly language comparing strings
- Next Thread: DOS EXE patching / far calls / relocations
| Thread Tools | Search this Thread |





