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.

259 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.

  15. Have you ever considered writing an ebook or guest authoring on other
    sites? I have a blog based on the same ideas you
    discuss and would really like to have you share some stories/information. I know my readers
    would enjoy your work. If you are even remotely interested, feel free to send me an e mail.

  16. Outstanding post however , I was wanting to know if you could write a
    litte more on this topic? I’d be very thankful if you could elaborate
    a little bit further. Kudos!

  17. But they can’t pressure anybody to federate with them, so these servers are quarantined.” –I Fix Coin Ops “Schadenfreude is like masturbation. As someone who’s been operating their very own electronic mail servers for 25 years I want to power choke this person over the Internet.” –Justin Baugh “I typed this tweet with my left hand. She grasped the scabbard with her left hand, the hilt together with her right, and drew the blade halfway. I’m shocked. You imply people who are solely in it for the cash with 50mil golden parachute contracts are conservative leaning? The Gobi Desert is a couple of thousand instances as hospitable as Mars and 5 hundred instances cheaper and simpler to achieve.” –Bruce Sterling “If individuals aren’t jumping at your ‘easy’ repair to a posh, costly problem, maybe it is not that easy.” –Unfuck Your Habitat “This place mainly sucks but we aren’t chargeable for making it better as a result of we don’t personal anything, and the elements we like exist as a aspect impact of somebody’s cash making scheme. Real life consists of bluffing, of little techniques of deception, of asking yourself what’s the other man going to suppose I imply to do.” –John von Neumann “The quantity of individuals willing to pull the ladder up behind them and attempt to be ‘one of the good ones’ are at all times the identical people who find themselves probably the most stunned what happens when the people who they’re buddy-buddy with no longer require them.” –@casswantsrevolt “I’ll believe in people settling Mars at about the identical time I see individuals setting the Gobi Desert.

  18. Somebody necessarily help to make seriously articles I might state.
    That is the very first time I frequented your web page and so far?
    I surprised with the analysis you made to make this actual publish amazing.
    Magnificent activity!

  19. Wonderful blog! I found it while surfing around on Yahoo
    News. Do you have any suggestions on how to get listed in Yahoo News?
    I’ve been trying for a while but I never seem to get there!

    Many thanks

  20. I like the valuable info you provide in your articles.

    I will bookmark your weblog and check again here regularly.
    I’m quite sure I’ll learn many new stuff right here! Best of luck for the
    next!

  21. We absolutely love your blog and find the majority of your post’s to
    be exactly I’m looking for. Do you offer guest writers to write content in your
    case? I wouldn’t mind writing a post or elaborating on a number of the subjects you write regarding
    here. Again, awesome site!

Leave a Reply to Arthur1432 Cancel reply

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