Assembly Language Tutorial

Assembly Language Tutorial

Code & Transcript Here :

Logical Operators, Looping, Conditionals :

Functions & Stacks :

Support me on Patreon :

We’ll learn about Vim, Make, Adding, Subtracting and converting Decimals, Binaries and Hexadecimal numbers. As per Assembly Language we’ll learn about Registers, the Current Program Status Register, Receiving Input, Outputting Data to the Monitor, .global, MOV, SWI, ADD, SUB, MUL, MLA, Syscall, LDR, .text, .data, CMP, Branching and a whole lot more.

Thank you to Patreon supports like the following for helping me make this video

50 replies
  1. Andrew Min
    Andrew Min says:

    At the very end, how is r1_lt executed? Is it because the program goes into neither BEQ nor BGT and thus by default goes to r1_lt like an ‘else’ statement?

  2. Innaz Nassah
    Innaz Nassah says:

    There are Aliens among us and you Derek is one of them 😎, thanks for this, i came here just for a quick lesson hoping I can skip the book, but it’s obvious that I need to read first, I’ll be back 😂😂

  3. Vertigo Studios
    Vertigo Studios says:

    19:50 Hey Dr Bananas (Dr is shortened version of Derek 🙂 ) love your vids, and been a sub for years. I used to know binary but not well… but now I’m confused with 0111 + 1011 ..

    1 and 1 = 0 carry the 1. O.K.
    1 and 1 = 0 + carried 1 = 1. O.K. BUT why is there a 1 carried over here now when it’s actually 1 + 0?

    I thought a 1 is only carried over when it’s 1 + 1… I’m guessing since there’s originally a 1 and 1 prior to there being a carried over 1.. That even though it equals 0 + 1.. that a 1 gets carried over regardless even though the actual addition problem breaks down to 0(1+1) + 1.

    22:39 I thought ‘$’ signified a value to be stored instead of ‘#’… Or is that just for x64 Assembly?

    24:18 so setting the register to #3 means accept keyboard input? Could you have used R0, or R2 instead of R7? Do each of these registers serve specific roles? Like one is default for keyboard input and another with mouse input? So #0 represents the keyboard, and #3 means keyboard input mode in other words?

    Confusing. #3 signifies a mode, #0 is an object of input, but then #10 is very different than both of these signifying a size. So does this mean R2 register is always used for setting sizes of the objects in R0?

    So I’m probably wrong about this but R7 register sets the type of input modes, R0 sets the input object, and R2 sets the size of the input object or does it just set the size of whatever register comes before it?

    Or are these registers arbitrary picked which can be swapped with each other serving no specific purpose, and That the order they are in is what is important?

    32:34 so _start could be written as start? _start and other aren’t part of the language but are used defined variables?? Or labels as you called them??? This just keeps getting harder to understand. How does Assembly even know what start means? Or does it not mean anything and just something we use to help identify the code? I’m guessing we don’t need a "start" or "other" since they aren’t keywords, nor do we even need to use these labels am I right? Or are these labels being used because you are going use a branch?

  4. lulzmeme
    lulzmeme says:

    Im getting confused when you use Registers. For example, at 27:30 you simply changed R7 to R1. Why was that? Also, are you just assigning values to random registers to start off? or is there a reason why you chose those registers?

  5. szt1980
    szt1980 says:

    The difference between architectures isn’t in mnemonics only. On CISC you can use memory addresses directly almost anywhere, on RISC – only in load/store instructions.

    TAREK TCH says:

    hi , i need some help , can i take some of your time?I have a code written in the assembly language and need a simple modification

  7. Michael Anderwald
    Michael Anderwald says:

    This is great. But I’m not sure if I would have included a crash course in VIM. I grok VIM pretty well and cherish it, but it’s easy to forget how frightening it is to people who have never worked with it once you’ve got the editing and movement commands committed to muscle memory. I think it derails the focus a bit. Any "normal" non modal text editor would have done as well, as would have just not mentioning VIM while working with it.

    Just, like, my opinion though. Thanks for the ASM intro!

  8. ron cohen
    ron cohen says:

    Also, and sorry for the multi question:
    is this tutorial compatible for the raspberry pie 3 b+ ? it has an instruction set – ARM v8-A, which is 32 bit, but soon all will be 64 bit, will everything change then ? Thanks!

  9. FX News
    FX News says:

    i really don’t understand because you are not start step by step you think that the followers are professionals please start from how to install and access the assembler

  10. Ricardo Band
    Ricardo Band says:

    If you want to teach assembly you shouldn’t also teach vim and make. Just use any simple editor that people don’t have to learn. Make is actually fine because it’s really simple but vim is really complex for a beginner.

  11. CH borger
    CH borger says:

    for What ?? AS LD please tell me is there no AUTOcomplete OPJECT Orinented ARM MACROassembler
    availaible ??
    or CROSScompiler from <LANG_PYTHON _C++ or BASIC>

  12. ron cohen
    ron cohen says:

    from the command line, do you install vim and make directories on the rasperry pie itself ? does it have a flash/hard drive ?


Leave a Reply

Want to join the discussion?
Feel free to contribute!

Leave a Reply

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