Intro to x86 Assembly Language (Part 1)

Covers the basics of what assembly language is and gives an overview of the x86 architecture along with some code examples.

Example code:

Davy Wybiral


Vitex says:

I’m learning this for game hacking and so I’m doing it in C++. Is there a better way than doing it like this do you know?
I didn’t finish it off, I think I understand assembly more now, thanks 🙂

chérif Aly says:

Assembly language… Wtf?… You don’t need all this crap shit to crack app, I managed to crack lots of apps without having any knowledge about this shit.

maths soso says:

thank you, what is the software used for programming?

BenFTW says:

what does the “equ” and the $ character mean in the hello world program?

Cătălin George Feștilă says:


Myles Lamb says:

Been trying to teach myself x86 for a while, definitely not the ‘nicest’ language but a great feeling when it works

Dovytronas says:


Xerion567 says:

hehe, assembly language is fun. I bet the cute guy in front of the camera is even more so. 😉

Nicholas Decker says:

was good but dude quit reading. u got a great voice dont ruin it with the monotone

orastem says:

Nice, just worth mentioning what $ does.

DaiShuryo Technus says:

Do MASM and NASM share the exact same syntax? Also, could you please make a video on how to do this on Windows?

Zephorox Eternity says:

I hope I will learn something here…

Joaquim Jesus says:

how can i follow your tutorial, if i’m using Windows?

LemonGuy says:

I’m happy something is actually showing up after lots of searching! even though it is the ‘test.exe has stopped working’ window…
I’m using windows as you might’ve noticed and while a simple jmp $ loop works fine, your code causes the program to crash. What should I do?

g4yktzgjx6 says:

First part was informative but. You left out what the different keywords means once you get to 10:08.

msg db “Hello World!”,10,0 //Here we append ‘n'(newline) and the numeral 0 to our string in order to 0 terminate it(0-terminated string) – which is good practice.
Also you didn’t create a string of bytes but an array of bytes. You defined bytes(db). So you defined an array containing characters “Hello world!n”. Which you could also have done like so although very messy:

msg db ‘H’, ‘e’ , ‘l’,’ l’, ‘o’, ‘ ‘, ‘w’, ‘o’, ‘r’, ‘l’, ‘d’, ‘!’, 0x0a

len equ $ – msg // equ is used to define contants. “$” evaluates to the assembly position at the beginning of the line containing the expression(current address). Also maybe tell us why it works. It is not obvious for everyone that you’re taking the address exactly after making your string and subtracting the address of the very start of the string.

Please remember to tell us what each keyword does and means.

Yash Awasthi` says:


 Write a comment


Do you like our videos?
Do you want to see more like that?

Please click below to support us on Facebook!