Intro to x86 Assembly Language (Part 1)

preview_player
Показать описание
Covers the basics of what assembly language is and gives an overview of the x86 architecture along with some code examples.

Davy Wybiral
Рекомендации по теме
Комментарии
Автор

08:34 Actually, MUL and DIV also affect EDX. The MUL instruction stores the higher half of the result in EDX, while DIV stores the remainder from division there. If one dosn't know about that, one can be very surprised that suddenly their EDX is getting clobbered with "random" numbers after division/multiplication.

bonbonpony
Автор

“Assembly language is basically just a human-readable form of machine code”

As a complete beginner who has just looked at Assembly code for the first time, I am crying both tears of laughter and pain at this statement

kraio-sfu
Автор

I just had hours over hours of Assembly lessons at University... 6 Videos and I finaly get how it works! Well done! Thanks a lot!

cn-truct-r
Автор

Thanks for this great, very comprehensible, video. Organization of the video (introduction and then development of the body part of this training) really is very nice, 👌👍

serdart
Автор

Didn't make sense to me the first time I watched it. After reading through parts of a book, following a tutorial on tutorialspoint, this made SO much more sense. Thank you my man.

sgyniguez
Автор

Absolutely brilliant. Nothing, I mean nothing at all worked on my computer from this tutorial.

memy
Автор

Excelent, straight to the point and no "suscribe bull".... Great presentation and introduction

ivandres
Автор

You are the only person that i could find online that can explain things extremely well! Thanks so much!

asheralbrecht
Автор

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.

gyktzgjx
Автор

Thanks for making this video series for free. I am really glad. It is a massive help to me. Plus you really simplify it which good for a beginner like me.

ahmedomar
Автор

I gave my thumb’s up to every episode of this series.

PAUNOMOLUSCO
Автор

Thank you so much man, this really helped me to get the basics of this thing. I may be able to pass my college exam now.

alexcocinda
Автор

This video is not really an "intro" but fortunately it's exactly what I need.

chevalier
Автор

I know this is 3 years old, but this is a very good series and should be continued :)

Learnerofthings
Автор

I am programmer for quite some time, but your videos seem to be the right way for me to move into asssembly more! Cheers

vojtechstoklasa
Автор

Hey Davy, what a masterpiece of a tutorial series, I wanted to have an idea of what Assembly programming looked like and better understand very low level programming, well man i wasn't expecting to find such a brillant tutorial in video !

Thanks, and if you want to carry on with more advance stuffs in assembly, please don't hold your breath !

FoxhoundULM
Автор

One thing you should mention is that there are two ways to write x86-64 assembly. The one you've shown in your video is the Intel syntax which is a lot nicer and readable, but is read right-to-left. The other one, which is just as common, is the AT&T and GNU syntax which is more complex and is read left-to-right.

Rogue_Art
Автор

There's probably no-one who cares about this, but.
My first ever 'proper' programming gig was in about 1979 and was a "This is stupidly slow. Speed it up, if you can" kinda thing.
I turned 4 lines of FORTRAN 'IF' statements into about a page and a half of inline assembler, and instead of taking around 24 hours, it now ran in about 2 hours and produced the same answers. Go me!

BytebroUK
Автор

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

myles
Автор

I feel privileged that the first language I learnt was IBM 1401 autocoder. I then went onto IBM 360 Assembler and so the concepts of x86 Assemble language are relatively easy. 360 processors had 16 general purpose registers and 4 (I think) floating point registers. Addresses of storage were calculated as base and displacement, that is, four bits denoting the base register and twelve bit denoting the offset from the address in that register.

suntexi
visit shbcf.ru