CatCompiler.dev

The cat compiler.

Hi! I like cats, computers and compilers and I sometimes write blog posts.

How to learn assembly


  1. The 0th step is to set your expectations carefully.
    Anyone can learn assembly, but you should be aware of what you’re getting yourself into.
    Assembly is hard to learn, hard to debug, hard to debug and doesn’t guarantee performance. Assembly will be a challenge for people of most backgrounds and will require lots of time and attention to make small progressions. You will have to learn several concepts and many run into several pitfalls before you write your first hello world program. I don’t say this out of negativity, I say it so you can pace yourself realistically, exercise self-compassion and ultimately set you up for success.
    It is also extremely beneficial (but not a hard requirement) to know C or another low level language. A lot of the concepts in low level languages still apply to assembly. You will benefit from plenty of practice reading documentation. Perhaps most importantly, you will benefit most from a community to ask your questions and exchange knowledge about the topic – there really is no substitute for asking people questions especially in extremely complex and nuanced topics like this.
  2. Be aware there are multiple flavours of assembly. Assembly is not a single language, it’s a language family. It doesn’t particularly matter which type of assembly you choose, but you do need to be aware of it because it fundamentally impacts how the concepts that you’ll learn are expressed. You should begin with one resource and be aware of what type of assembly it is, and specify that type whenever you search up questions, pose questions to your community and consider resources. You aren’t expected to know what any of these mean when you start off, think of them like a model number to assist in describing your setup to others. If you are most comfortable with windows and you have a modern desktop computer, you will most likely use the assembly with the following features:`
    • MASM assembler
    • Microsoft visual studio Linker
    • Windows api calls (also called Windows NT api calls)
    • Microsoft x64 calling convention
    • CPU architecture named x86_64 (also called x64, AMD64)
    I personally started with writing assembly in linux because I am most familiar with it at a lower level and I found more resources for it:
    NASM assembler
    – The GNU linker ld
    Linux syscalls
    cdecl
    – CPU architecture x86 (also called 8086, x86_32. NOT the same as above)
    I then moved on to:
    FASM assembler
    – GNU Linker ld (when required)
    Linux syscalls
    System V ABI syscalls
    – CPU architecture x86_64 If a resource does not clarify it’s probably using one of the above setups.
  3. Find resources, practice religiously and make notes liberally
    A lot of assembly requires rote memorization of boilerplate and magic numbers. You cannot remember all of them and should make friends with note taking, especially where you fail to recall things. It’s also the case that assembly resources are hard to find and you will waste countless hours if you do not note down information that you keep using. To start learning, find a tutorial that works with your learning style and slowly work through it. It is important to consider that tutorials alone will not teach you all of assembly, but they can be a great starting point to introduce you to ideas and will make you ask yourself questions which you should explore. Good tutorials start with something basic like teaching you how to exit correctly and what happens if you don’t – it sound stupid but that foundational knowledge is an important prerequisite to writing assembly that behaves correctly. Be aware that tutorials often contain flaws because people as a whole are bad at assembly which is why it’s become very unpopular to learn. Practice unfamiliar things over and over again until they become second nature. If you have made it this far and you’re still unsure, then try these out, and see which (if any) play to your learning style, knowledge background and so on. There’s no shame in trying some out until you find a resource that plays to your strengths.
    “Assembly Programming tutorial” – Tutorialspoint
    “You Can Learn Assembly in 10 Minutes (it’s easy)” – Low level learning
    “Fasm 0 – Introduction” – Phillip Bohun
    “The Art of 64-Bit Assembly, Volume 1” – Randall Hyde
    “To-Do App in Assembly” – Tsoding
    “x86 Assembly Guide” – University of Virginia
    “You Can Learn Assembly in 60 Seconds (its easy) #shorts” – Low level learning
  4. Find a community
    Whether it be Stack Overflow, discord communities, mailing lists, or anything at all, it’s important you find a group of people who you can go to when you’ve been unable to solve a problem for a prolonged period of time. The first thing I mentioned in this article is assembly is hard and you will have a miserable time if you go it alone and don’t occasionally ask for help. Being in a community who you can exchange this knowledge with is a benefit to you, others there and anyone else who happens to find the discussions in future. Assembly is a human invention which only makes sense in the context of human computing history, human design choices and human collaboration to solve human problems. To understand assembly, is in a small part to understand people, you mustn’t forget the human side.

239 responses to “How to learn assembly”

  1. Excellent post. Keep writing such kind of information on your
    site. Im really impressed by your site.
    Hi there, You’ve performed an excellent job. I will certainly digg it and in my view suggest to my friends.
    I’m sure they will be benefited from this site.

  2. Very nice post. I just stumbled upon your
    blog and wished to say that I’ve truly enjoyed browsing your blog posts.
    After all I will be subscribing to your feed and I hope you write again very soon!

    Also visit my blog: briansclub.c

  3. Awesome blog! Is your theme custom made or did you download it from somewhere?
    A design like yours with a few simple tweeks would
    really make my blog jump out. Please let me know where you got your design. Thank you

    Here is my website … savastan0 biz

  4. Hello, i read your blog from time to time and i own a similar one and
    i was just curious if you get a lot of spam remarks?
    If so how do you prevent it, any plugin or anything you can advise?
    I get so much lately it’s driving me mad so any
    support is very much appreciated.

    Also visit my blog post findsome cc

  5. I was suggested this blog by my cousin. I am not sure whether this post is written by
    him as nobody else know such detailed about my problem.
    You are wonderful! Thanks!

    Visit my web blog … findsome ru

  6. Hmm it looks like your site ate my first comment (it was super long) so I guess I’ll just sum it up
    what I wrote and say, I’m thoroughly enjoying your blog. I too am an aspiring blog writer but I’m
    still new to everything. Do you have any tips and hints for newbie
    blog writers? I’d genuinely appreciate it.

  7. I do not even know how I ended up here,
    but I thought this post was good. I do not know who you are but
    certainly you’re going to a famous blogger if you are not already 😉 Cheers!

  8. Within the long, dark passages he met with no accident or impediment, coming finally
    into the light of day past the mountains, and no nice distance from the southern verge of the domains of the Torquasians, not a couple of hundred and
    fifty haad at the most. 2020-02-12: DC Comics Announces Dark NIGHTS: Death
    Metal, And It’s 90’s As HELL io9: DC’s bonkers Dark Nights:
    Metal occasion gave birth to some of the
    wildest developments within the … And after that, every little
    thing really goes to hell. First: it goes again and forth between details
    of a cold case … As much as you – but I would
    suggest instantly cancelling any credit score cards you might
    have given them details for. For the benefit of anyone that wishes to fund a criminal underworld, their particulars are as follows RECEIVER’S Name: Elizabeth Olivia MONREAL RECEIVER’S
    Address: 1 New Change Road, London EC4M 9AF, UNITED KINGDOM.
    Sadly our anti-fraud techniques are insufficiently quick to deal with these
    items, but my hope is that eg. She gripped hope with the identical
    care she held her sword; if Morgan had been injured, she would give him the chance to get better.
    Leave the cowl of the jar unfastened.

  9. I love your blog.. very nice colors & theme.
    Did you design this website yourself or did you hire someone to do it for
    you? Plz reply as I’m looking to create my own blog and would like to know where u got this from.
    many thanks

  10. What’s Happening i am new to this, I stumbled upon this
    I have found It absolutely useful and it has helped me out loads.
    I hope to give a contribution & help other users like its aided
    me. Great job.

  11. USA Network is a popular American channel that has
    more than 90 million viewers. This channel is used by millions of people on their TVs.
    The best thing about USA Network is that you
    can stream it from any device such as Roku, Apple
    TV, Android TV, firestick, and others. So it is basically the USA Network cable channel which
    is accessible on a variety of different digital media players.
    For instance, If you have a Roku device or any other device we will help you with the steps to
    activate it.

    Whether you are in the United States, South America, or Canada, you can follow the steps below to activate USA Networks on Roku at usanetwork/activatenbcu.
    After activating, you can watch your preferred
    shows in either entertainment or sports in various languages like English as well as Spanish.

    https://www.usanetwork-nbcu.com/

  12. If you’re an Apple device owner, you would likely be delighted with an Apple gift card as a gift from family
    and friends. Getting Apple credit can pay for ongoing monthly Apple subscriptions via Apple.com/redeem ,
    App Store apps, games, music, movies, TV, books, or hardware products in the Apple Store.
    So how do you redeem an Apple gift card, and get the
    money to go shopping? Let’s find out.

  13. Hi! I’m at work browsing your blog from my new iphone 3gs! Just wanted to say I love reading through your blog and look forward to all your posts! Keep up the great work!

  14. I’m pretty pleased to find this web site. I need to to thank you for your time just for this wonderful read!! I definitely appreciated every little bit of it and i also have you book marked to see new stuff on your blog.

Leave a Reply to formationmatieresdangereuses.com Cancel reply

Your email address will not be published. Required fields are marked *