-1

I've been a developer since 2009 and I've learnt a lot of languages since, but I've always wanted to understand and be able to code in the lowest level language so I can directly (or at least very close to directly) speak to machines through my code.

There was a point in time when someone showed me how to do an if statement in assembly, but out of all the books that I got, I could never really understand where/how to start learning to code in assembler.

any help please? I'm obsessed with learning this!

PS: if you have any software suggestions, I use ubuntu and am looking to convert to backtrack soon, so it would be preferred if you could give me something that'll be easily installed on debian linux, otherwise don't sweat it, give me the name of the windows software and I'll find an equivalent myself

5
  • 5
    Learn Assembly easily is an oxymoron ;-)
    – morgano
    Commented Aug 2, 2013 at 9:19
  • Questions asking us to recommend a tool, library or favorite off-site resource are off-topic for Programmers as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
    – gnat
    Commented Aug 2, 2013 at 10:24
  • @gnat the questions that you posted in this forum and have the most votes for are also open ended and demand opinionated answers. what's more is that some of them; My boss decided to add a “person to blame” field to every bug... actually require no knowledge of programming to answer. how is this question different from those? Commented Aug 2, 2013 at 10:52
  • AFAIK, every assembler is bound to the instruction set of the underlying machine. You don't specify what machine you want to talk to. This question is likely to be closed soon for reasons that @gnat explained. However, you can go to the "related questions" list to the right of this response (on my screen), and get some suggestions. PS I learned assembler in the fall of 1962, over 50 years ago. I question whether it really makes sense to learn it today, unless job requirements compel it. Commented Aug 2, 2013 at 12:17
  • @pythonian29033 question you refer to, doesn't ask us to recommend a tool, library or favorite off-site resource while your does: "Any good, easy to learn from books or tutorials..."
    – gnat
    Commented Aug 2, 2013 at 12:26

1 Answer 1

2

I am having a hard time answering this one tbh.
I found learning assembly language to be quite difficult indeed as a lot of knowledge is required on how the computer actually works before even considering to start looking into assembly language.

To get you started and if you do not posses the knowledge already, you should check out some college book lists on logic and computer design fundamentals or Digital Design and Computer Architecture.
I will not link any books regarding this topic as I find learning from books very subjective. I read them parallel while slowly starting to look into assembly languages.

Second problem is which assembly language to learn and with which tool:
I learnt SPARC Assembly back in the day, but my university switched to Intel x86 architecture which seems to make a little more sense.
Perhaps you should look into ths gcc compiler as a debugger, MASM for Windows or the GAS >.

There are tons of links and forums from there.
I would also advise you to join a group or find some like minded people after obtaining some fundamental knowledge on the topic. A few pair of eyes can really helped me out as i was programming Assembly.
Start small and slowly. Also Comment your code frequently and constantly.

It's tough but I found it very rewarding. Good luck.

**** edit ****
Here you go should give you a taste:
gcc assembly

4
  • my OS of choice is ubuntu/backtrack, so I use debian linux distros mostly Commented Aug 2, 2013 at 9:47
  • wow! checked your link out and that actually looks easy! 10rep for your answer! Commented Aug 2, 2013 at 9:51
  • Thx. For Ubuntu try the GAS, should be on Ubuntu and is a part of the gcc if I remember correctly. Flick open the Terminal and try some gcc flags(objdump --help) to debug some C programs to get a first taste of small c programs. Commented Aug 2, 2013 at 9:54
  • already had it installed trying to compile a c program, but thanks for the link Commented Aug 2, 2013 at 10:35

Not the answer you're looking for? Browse other questions tagged or ask your own question.