Jump to content

Why learn Assembly?

- - - - -

  • Please log in to reply
32 replies to this topic

#1
MrAnderson

MrAnderson

    Newbie

  • Members
  • Pip
  • 8 posts
Hi guys,
Can anyone give me a few reasons to learn assembly?

If I write code for a particular pc, to run code on another i'm going to have to rewrite it?
Also, how should i start Assembly on a AMD X64 System?

Thanks!

#2
Hurricane

Hurricane

    Newbie

  • Members
  • PipPip
  • 20 posts
You should read the first chapter of the book "The Art of Assembly Language" by Peter Kitson. It explains why you should learn the assembly lanaguage, and contradict the reasons for not learning it. It also teaches you the assembly lanauge. =D

#3
Gunner

Gunner

    Learning Programmer

  • Members
  • PipPipPip
  • 45 posts
Why? For the basically the same reason one chooses manual transmission over automatic.. Full control and speed. Even the best compilers cannot beat a program written in Assembly by someone that knows what they are doing. If you want small apps, then Asm is the way to go... Full control... You know why and how the processor is doing something... Sure, it takes a bit more time to write a program in Asm, but when it is done, it feels good knowing you wrote a program that not many others can.... Kinda "Elite" ;) I taught myself Assembly over 10 years ago and don't know anything else...

If you write a windows app, then you will have to rewrite it to run on *nix... DOS programs are almost dead... so don't learn for DOS or 16bit... Start with 32bit x86 code to grasp all the concepts before you dive into x64... Code written for INTEL cpus will run on AMD and vise versa.... there are some instructions that 1 has that the other doesn't... once you get the hang of 32bit code... and for nostalgia, you can learn 16bit code :-)

Oh, forgot... if you know another language.... and you learn Assembly... then that knowledge you gain will help you write better code in your language...

#4
RhetoricalRuvim

RhetoricalRuvim

    JavaScript Programmer

  • Members
  • PipPipPipPipPipPipPipPip
  • 1,252 posts
  • Location:C:\Countries\US
And also to build an operating system or executive or anything of that type you need to use assembly language.

The other thing that I think about assembly language is that it's easy (in a way). As long as you know what the instructions you're using do you know exactly what's going on. The hard part about it is that you would probably need to type more. Other than that I don't really know other big hardnesses about assembly language.

#5
Gunner

Gunner

    Learning Programmer

  • Members
  • PipPipPip
  • 45 posts

RhetoricalRuvim said:

The hard part about it is that you would probably need to type more. Other than that I don't really know other big hardnesses about assembly language.

Yes, but you become a really fast typer :cool: Well, COM in ASM is a bit hair pulling at first!

#6
MrAnderson

MrAnderson

    Newbie

  • Members
  • Pip
  • 8 posts
Thanks for all the responses guys!

#7
NewProgrammer

NewProgrammer

    Newbie

  • Members
  • PipPip
  • 20 posts
I think that everybody must have a idea about assembly.Because assembly is a base for programmers.If you really know assembly,it means you know everything about PC.

#8
dargueta

dargueta

    Writes binary right handed and hex left handed

  • Moderators
  • 4,705 posts
  • Programming Language:C, Java, C++, PHP, Python, Perl, Assembly, Bash, Others
  • Learning:JavaScript
@NewProgrammer: No, not really. In that case you'd still have to learn about caching, address spaces, virtual memory, VGA and derivatives, port IO...
sudo rm -rf /

#9
NewProgrammer

NewProgrammer

    Newbie

  • Members
  • PipPip
  • 20 posts
@dargueta;
Your saying are true.I couldn't tell what i think.

If you really know assembly,you will be an really advanced programmer.

#10
RhetoricalRuvim

RhetoricalRuvim

    JavaScript Programmer

  • Members
  • PipPipPipPipPipPipPipPip
  • 1,252 posts
  • Location:C:\Countries\US
Maybe if you gain enough experience with assembly language (just knowledge alone is not enough; or is it?).

#11
An Alien

An Alien

    Programming Professional

  • Members
  • PipPipPipPipPip
  • 260 posts
Dam, I wish I knew Assembly. What about Binary? How the heck would someone learn a language full of 1s and 0s?!

#12
RhetoricalRuvim

RhetoricalRuvim

    JavaScript Programmer

  • Members
  • PipPipPipPipPipPipPipPip
  • 1,252 posts
  • Location:C:\Countries\US
By reading the Intel manuals, probably; the Intel instruction set manual has an opcode map in the appendix. But then again you would either have to or would end up learning at least some assembly language.




1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users