x86-64 Assembly Programming Part 1: Registers, Data Movement, and Addressing Modes
Vložit
- čas přidán 22. 07. 2024
- First out of four part series introducing x64 assembly programming. This part focuses on the general-purpose registers, movq instruction, and an overview of the addressing modes available for the x86_64 instruction set architecture (ISA).
- Věda a technologie
Please continute with this series and produce more in-depth videos. No one has produced such detailed serires with GAS sysntax. Keep up the good work. Many Thanks. 🙏🙏🙏
My instructor spent an hour on this topic quoting a bunch of documentations and I got lost. 20 mins of your instruction saved my life! Thanks for your clear and concise and so understandable lecture!
I have a Final exam next week that is almost entirely just X86-64, and I feel like I’ve been reading Japanese for the last 2 months. You are a lifesaver!
This is an amazing introduction. Great slides too! Thank you!
Thanks for helping me on this topic, your teaching is crystal clear and easy to follow !
tg
Hey just wanted to say I appreciate this series. I was learning stack overflows, basic reverse engineering, and exploit development (all ethical of course) and while it is possible to do it without actually understanding what you're doing, I felt lost and this helped me catch up. This is legitimate uni quality lecture uploaded free to youtube on a pretty complex topic and a great help.
Necroing to ask how is your adventure going?
Hello hello, i ended up going to an IT course but it was low quality so i dropped out, moved to the arctic to pay off loans and geared to Lua, then gdscript, and now c++. I would have got into another course if the plane didnt blow up a fear hours before my flight so now im just working on my own projects. Geared toward higher level concepts instead, although i do enjoy TIS/100 and shenzhen io now and again... i might be diving back into this soon enough as i want to start developing my own game engine as a learning situation.
Tl;dr shortly after this comment life happened and this got put on the backburner, but now im slowly working my way back with my new experience in code instead of trying to start with ASM. I do recommend zachtronics games on ASM tho
@@christophernoneya4635 nice to hear, cheers sir and thank you
@@christophernoneya4635 Moved to the Arctic?
The actual north pole?
Thank you, this really helps me with exam prep!
Great tutorial ! Easy for understanding !
Ciao, secondo te è possibile imparare a programmare (intendo a scopo didattico) in assembler senza la conoscenza dell'architettura del calcolatore ? Oppure in alternativa cosa è necessario saper conoscere e mi riferisco all'architettura per poter affrontare la programmazione in assembler ?
Very nice.
Hey Dr. Bloom! Hope you're doing well over there on the west coast. Best wishes from one of your Howard grads :)
Thanks Kode! Colorado is pretty great, if you've never been you definitely should visit sometime. I miss my Howard "kids" though!
@@gedare I'm sure they miss you there too. Your expertise and joy were greatly appreciated by us students!
@@gedare Hoooooooowwwwwaaaaaaaad kids!
Mann Whats the name of the book youre reading from?
Well done.
thank you ❤😊
TU Delft CSE here?
is this all taken from the book referenced at the bottom? asking because I am considering purchasing it
No, they provided some of the slide material.
WoW this is Guy is just amazing i m sure he will get more subscribers
I doubt it
he uses AT&T syntax lol
@@nishanth2038 what's wrong with that? i'm watching to understand it, surely the syntax doesn't get in the way of that
@@Felks60 Ofcourse, you can learn from that but where do you see AT&T syntax nowadays? which chip uses it?
@@nishanth2038 The GNU Project is using it (gcc) afaik
You have a mistake on your CPU/memory diagram. It shows instructions going only in one direction.
Yes! Generally we consider the instructions to only ever be read (fetched) from memory. It is a bit of a technicality, but in modern architectures you don't and often can't send instructions to the instruction portion (text segments) of memory. To understand this, you may want to learn about virtual memory.
@@gedare That's just completely untrue. "We" don't consider that at all, except in very specific circumstances (e.g. Harvard architecture with instructions in ROM, which isn't what you have there). How do you think programs get loaded in the first place?
@@DanEllis Ok I take your point, but the kernel in most systems (certainly, general-purpose ones) will be the only program that writes instructions to memory. Any userspace program that attempts to modify it's own instructions will incur a page fault on any modern OS and hardware that uses W xor X permissions on pages. This point is however too complicated for an introduction to assembly programming. I appreciate your eye for detail, but the programmer's mental model should generally be that instructions only go one way.
If you're gonna be reading in the video tutorial, in a robotic voice, you might as well just put out the tutorial in text-only format.
The lecture quality could be better. Its not very well designed for the one unfamiliar with concepts to got from words to same meanings as the author claims to go from the meanings to words. "For X convention we use X convention" - isn't logically good and methodologically efficient way of expressing thoughts.
Best wishes. Try to imagine people who listen to part1 dont know the subject, speak to them rather than to yourself.
Its good if video lesson is more effective than written one.
Why must you usr this horrible AT&T syntax ? 🤪
when you read dear teacher you are going too fast and the intonation is not right and people have a hard time to follow. not nice. you can have better feedback if you just show a little interest and teaching skills.
Intel syntax uses square brackets
At and t uses parentheses