x86-64 Assembly Programming Part 1: Registers, Data Movement, and Addressing Modes

Sdílet
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

Komentáře • 41

  • @eshgholah
    @eshgholah Před 3 lety +4

    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. 🙏🙏🙏

  • @arkytiao
    @arkytiao Před 2 lety +3

    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!

  • @Matthew-McCallister
    @Matthew-McCallister Před 7 měsíci

    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!

  • @teachyourselfcs
    @teachyourselfcs Před 2 lety

    This is an amazing introduction. Great slides too! Thank you!

  • @raybing912
    @raybing912 Před 3 lety +4

    Thanks for helping me on this topic, your teaching is crystal clear and easy to follow !

  • @christophernoneya4635
    @christophernoneya4635 Před 3 lety +17

    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.

    • @rokibalboa840
      @rokibalboa840 Před 2 lety

      Necroing to ask how is your adventure going?

    • @christophernoneya4635
      @christophernoneya4635 Před 2 lety +2

      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

    • @rokibalboa840
      @rokibalboa840 Před 2 lety

      @@christophernoneya4635 nice to hear, cheers sir and thank you

    • @bravefastrabbit770
      @bravefastrabbit770 Před 2 lety +2

      @@christophernoneya4635 Moved to the Arctic?
      The actual north pole?

  • @j_blue6784
    @j_blue6784 Před 2 lety

    Thank you, this really helps me with exam prep!

  • @changchenchien4515
    @changchenchien4515 Před 3 lety +1

    Great tutorial ! Easy for understanding !

  • @claudiosilvestri8485
    @claudiosilvestri8485 Před rokem

    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 ?

  • @minma02262
    @minma02262 Před 4 dny

    Very nice.

  • @kodewill
    @kodewill Před 3 lety +9

    Hey Dr. Bloom! Hope you're doing well over there on the west coast. Best wishes from one of your Howard grads :)

    • @gedare
      @gedare  Před 3 lety +4

      Thanks Kode! Colorado is pretty great, if you've never been you definitely should visit sometime. I miss my Howard "kids" though!

    • @kodewill
      @kodewill Před 3 lety +4

      @@gedare I'm sure they miss you there too. Your expertise and joy were greatly appreciated by us students!

    • @yanyan-thecanadian
      @yanyan-thecanadian Před 2 lety

      @@gedare Hoooooooowwwwwaaaaaaaad kids!

  • @Matice21
    @Matice21 Před 9 měsíci

    Mann Whats the name of the book youre reading from?

  • @VozdOfUsce
    @VozdOfUsce Před 2 lety

    Well done.

  • @GlobalYoung7
    @GlobalYoung7 Před rokem

    thank you ❤😊

  • @yurirady3086
    @yurirady3086 Před rokem +1

    TU Delft CSE here?

  • @teachyourselfcs
    @teachyourselfcs Před 2 lety

    is this all taken from the book referenced at the bottom? asking because I am considering purchasing it

    • @gedare
      @gedare  Před 2 lety

      No, they provided some of the slide material.

  • @ccl4572
    @ccl4572 Před 3 lety +2

    WoW this is Guy is just amazing i m sure he will get more subscribers

    • @nishanth2038
      @nishanth2038 Před 2 lety +2

      I doubt it
      he uses AT&T syntax lol

    • @Felks60
      @Felks60 Před 2 lety

      ​@@nishanth2038 what's wrong with that? i'm watching to understand it, surely the syntax doesn't get in the way of that

    • @nishanth2038
      @nishanth2038 Před 2 lety

      @@Felks60 Ofcourse, you can learn from that but where do you see AT&T syntax nowadays? which chip uses it?

    • @j_blue6784
      @j_blue6784 Před 2 lety

      @@nishanth2038 The GNU Project is using it (gcc) afaik

  • @DanEllis
    @DanEllis Před 2 lety

    You have a mistake on your CPU/memory diagram. It shows instructions going only in one direction.

    • @gedare
      @gedare  Před 2 lety

      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.

    • @DanEllis
      @DanEllis Před 2 lety

      @@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?

    • @gedare
      @gedare  Před 2 lety

      @@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.

  • @Owl90
    @Owl90 Před rokem

    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.

  • @kaihusravnajmiddinov5413
    @kaihusravnajmiddinov5413 Před 5 měsíci

    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.

  • @b213videoz
    @b213videoz Před měsícem +1

    Why must you usr this horrible AT&T syntax ? 🤪

  • @andrewmosse6544
    @andrewmosse6544 Před rokem +1

    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.

  • @LukeSolo-One
    @LukeSolo-One Před 10 hodinami

    Intel syntax uses square brackets
    At and t uses parentheses