x86 NASM Assembly Crash Course

Поділитися
Вставка
  • Опубліковано 25 лис 2024

КОМЕНТАРІ • 73

  • @iqdotcode706
    @iqdotcode706 3 роки тому +62

    6:11 we didn't expect that 🤦🏿‍♂️🤣

    • @Someone-bs1zf
      @Someone-bs1zf 2 роки тому +1

      i legit freaked out

    • @pgproductions2900
      @pgproductions2900 Рік тому +1

      bruh heart attack 💀

    • @bonbonpony
      @bonbonpony Рік тому +2

      After "constant variables" and supposedly a C code in 05:22, I kinda expected it.

  • @oussaber
    @oussaber Рік тому +4

    Best crash course of assembly, in-depth and easy to follow explanation, very much appreciated!

  • @SlowedOutOfExistence
    @SlowedOutOfExistence 3 роки тому +17

    This tutorial is great, only a real programmer brain can understand this video is gold
    I have a student project in which I should code some functions using NASM I have now the basics to experiment myself
    Thank you a lot

  • @noctarin1516
    @noctarin1516 2 роки тому +8

    This tutorial is amazing, goes over everything, really explains much better than a lot of others do! Thank you for this!

  • @soumelee5661
    @soumelee5661 4 місяці тому

    00:10 Basics of x86 NASM Assembly
    02:41 Keeping track of data conversions and representations is crucial in NASM Assembly
    08:15 Understanding x86 NASM Assembly basics
    10:46 General purpose registers in x86 NASM Assembly
    15:29 Explaining data manipulation and bitwise operations in x86 NASM Assembly
    17:48 NASM assembly instructions for arithmetic operations and testing
    22:39 Flags in x86 NASM Assembly
    25:07 Explaining conditional jumps and their variations in x86 NASM Assembly
    29:44 Understanding the return and compare operations in NASM Assembly
    31:49 Compare and conditional jump sequencing
    36:30 Shift, rotate, and masking operations are important in x86 NASM Assembly.
    39:12 Using a mask to extract specific data from a register.
    43:47 Interrupt handling and kernel calls in x86 Assembly
    45:49 Exiting a program and return values in x86 NASM Assembly
    50:39 Defining and initializing data sections in x86 NASM Assembly
    53:13 Introduction to x86 NASM Assembly basics
    58:26 Using different variables in assembly programming is recommended.
    1:00:41 Explaining If Statements and For Loops in Assembly and C
    1:05:29 Converting numbers to ASCII for readability
    1:07:57 Incrementing loop variables in x86 NASM Assembly
    1:12:52 Functions in C use registers for inputs or stack for modern functions
    1:15:13 Exploring NASM assembly for variable declaration and function call
    1:20:10 Working with the stack in x86 NASM Assembly
    1:22:05 Saving and managing values using stack in x86 NASM Assembly
    1:26:42 Explaining how to access a pointer in NASM Assembly
    1:29:05 UA-cam channel for additional resources
    Crafted by Merlin AI.

  • @kraftwerk974
    @kraftwerk974 3 роки тому +11

    Having coded a lot on the 6502/6510 in the 80's I've been able to follow this excellent intro, but you should have explained how ML actually works in the cpu for people with no knowledge. For instance give examples with real RAM addresses instead of labelling, use a monitor step by step, etc. Enjoyed it thank you 🤙

  • @7073shea
    @7073shea 11 місяців тому

    thank you umbc, great vid

  • @proggenius2024
    @proggenius2024 11 місяців тому +1

    I found an oversight at 1:01:23 on line 173 (add edx, ecx). I guess it should be mov edx, ecx as it matches with c = b.

  • @mrDustin0Channel
    @mrDustin0Channel 2 роки тому +3

    at 1:01:20 in line 173: i think the correct statement would be "mov edx, ecx", not "add edx, ecx", because in c is no add, only assign

  • @acing_algorithmic_interviews

    Thank you very much for posting such a useful video! All the moments were explained with pretty much details! And I liked your soft and pleasant voice :)

  • @EduardQualls
    @EduardQualls Рік тому +4

    For a "crash course," this doesn't really "crash," but crawls. One thing: if you're going to use C as your higher-level example language, spend some time familiarizing yourself with it, instead of writing lines that will make those who have experience in C yell at their monitor. It scares the dogs. (Such as @55:33, when you slipped into JavaScript in your "if" statement.)

  • @bekonix-b3s
    @bekonix-b3s 3 роки тому +1

    Good intro to NASM, time to write a new boot sector game.

  • @logicalkarma3314
    @logicalkarma3314 2 роки тому +9

    Java/C# dev identified. In c you write arrays as type name[] not type[] name

    • @bonbonpony
      @bonbonpony Рік тому +2

      If he codes in Java/C# the same way he codes in assembly, I'm worried…

    • @TheDa6781
      @TheDa6781 6 місяців тому

      ​@@bonbonpony is there a better nasm crash course ?

  • @yanglijian
    @yanglijian 8 днів тому

    I love it so much.... Where can I get the rest series

  • @stanjockson
    @stanjockson 3 роки тому +1

    Thanks, this is a great overview

  • @guliyevshahriyar
    @guliyevshahriyar Рік тому

    Very informative tutorial, thank you very much!

  • @vishnuparvatikar7965
    @vishnuparvatikar7965 2 роки тому

    43:07 very important part explaining registers i.e, eax , ebx , ecx , edx ....

  • @judparn5885
    @judparn5885 3 роки тому +2

    I like the pace of the speaker but the fonts are very small. I even tried using a high resolution LED TV.

  • @Poker-s_S.V.
    @Poker-s_S.V. 2 роки тому +1

    great lessons. continue.

  • @macho4697
    @macho4697 2 роки тому

    Amazing!

  • @KellyMurphy
    @KellyMurphy 3 роки тому +12

    Should actually compile your code examples to make sure they work or your causing lots of confusion for the people who are starting from scratch.
    IE in your loop example you need a memory address to store x in and mov your value to so you can pass the address that the syswrite function is looking for.

    • @bonbonpony
      @bonbonpony Рік тому

      "A blind leads the blind" should be the title of this video.

  • @mohammedhajomar4400
    @mohammedhajomar4400 7 місяців тому

    thanks a lot man, appreciate the video

  • @nikosnikolakis6991
    @nikosnikolakis6991 3 роки тому +4

    nice intro t assembly language , though the programs i tried myself dont actually work

  • @miyukinozomi
    @miyukinozomi 2 роки тому

    Thank you so much!!!

  • @muhamedkveshkshaano
    @muhamedkveshkshaano 3 роки тому

    Your C uninitialized variable example is just exceptional man

  • @TowardstheAqsa
    @TowardstheAqsa 3 роки тому

    dude thank you soo much for this

  • @aminekadi5292
    @aminekadi5292 15 днів тому

    I am a beginner ,the 8086 microprocessor we have studied have 16 bits and i don't understand is he in another version of 8086 or we didn't studied the general purpose of registers .
    So am confused should i continue with him or i should look on an other source 🤔

  • @kimjw001
    @kimjw001 2 роки тому

    Do you have a tutorial demonstrating the process of setting up NASM on a windows machine?

  • @Ronvict
    @Ronvict 2 роки тому

    Thanks :) why we converted EDI to ASCII (add EDI, '0') and returned it back to decimal num (sub EDI, '0')?

  • @marcosadriano5861
    @marcosadriano5861 2 роки тому +1

    1:01:30 I think you forgot jump outside if and elseif statements.

    • @remigramatica2429
      @remigramatica2429 5 місяців тому +1

      was actually freaking out searchin for somebody saying this

  • @gotonethatcansee
    @gotonethatcansee Рік тому

    have ye tried nasm for dosbox?

  • @atharvakadlag1937
    @atharvakadlag1937 3 роки тому +1

    i need help printing some integer like 3478 with assembly. basically how to convert integer to ascii

    • @bob-ny6kn
      @bob-ny6kn 3 роки тому

      Found this... maybe you have a similar system...
      cssimplified.com/computer-organisation-and-assembly-language-programming/an-assembly-program-in-which-a-procedure-converts-hexadecimal-value-to-print-its-decimal-form-on-screen

    • @atharvakadlag1937
      @atharvakadlag1937 3 роки тому

      @@bob-ny6kn Thanks. I'll try 😁

  • @elbozo5723
    @elbozo5723 2 роки тому

    5:40 ... stick to assembly

  • @coderlyfe1023
    @coderlyfe1023 3 роки тому +2

    where can i take more courses like this. where can i take the next training.

    • @ayoubab2120
      @ayoubab2120 3 роки тому

      ua-cam.com/video/zEuvNYe7WG0/v-deo.html

    • @bonbonpony
      @bonbonpony Рік тому

      In grammar school, judging by the level presented in it.

  • @bonbonpony
    @bonbonpony Рік тому

    04:00 "Constant variables" - what an oxymoron…
    05:22 DAFUQ is that? :o That's not C. That's not even wrong -_-
    06:10 ………I don't even know how to comment this……… But that's the end of this video for me.

  • @RetroEcoChicken
    @RetroEcoChicken Рік тому +1

    6:10 why the fuck is there a jumpscare here?

  • @bob-ny6kn
    @bob-ny6kn 3 роки тому +3

    Painful to follow. I quit at 15 minutes. You can't freeverse. "Umm" means nothing. Stop it. Practice a planned outline and stick to it.

    • @BitwiseMobile
      @BitwiseMobile 3 роки тому +19

      We'll wait on your video bob. Let us know when you publish it. Since you know how to make these videos so well I anticipate something well done and organized.

    • @bob-ny6kn
      @bob-ny6kn 3 роки тому +3

      @@BitwiseMobile I teach live people, live. No editing. No complaints. Plenty of "I never knew that could be done. Thank you." Constructive criticism is good.

    • @bob-ny6kn
      @bob-ny6kn 3 роки тому

      @@BitwiseMobile p.s. No video recordings exist, only subject papers written and freely (and often) copied.

    • @cheetah_5314
      @cheetah_5314 3 роки тому +8

      @@bob-ny6kn teach us assembly bob

    • @bob-ny6kn
      @bob-ny6kn 3 роки тому +1

      @@cheetah_5314 okay. Here, in the comments section, I will teach (NOT give) how to coda machina... Step (1) Read a book. Step (2) Read more books. Step (3) Keep reading books until your teacher asks you to explain how you machine-coded your planetarium program, and then give a demonstration to the class (because he can't) - at the age of 15. Step (4) Read more books and write a back-end to a User Interface that quadruples your efficiency (speed plus accuracy) over dozens of "expert" colleagues (at age 19 years). Step (5) Read more books until you solve a decade-old design flaw that catapults your product line to the highest in sales domestically and internationally (and gets you a hand shake from the original designer), then teach a scientist for a space agency how to code, over the phone, three hours a day for three months, then code for an aerospace engineer who needed a help to get past writers block (to eventually launch). Step (6) allow yourself to constructively criticize someone on UA-cam who is trying, but could do much better (and will) with a couple pointers. Step (7) have no sympathy for snarky trolls of the inturdnet. Now, write your Hello, World! in vi and stfu.
      To think that I was forced to take a typing class to graduate high school, when I already coded over 60 wpm, and now reduced to thumbing soliloquies to trolls brings a tear to my good eye.