What Is Assembly Language?

Sdílet
Vložit
  • čas přidán 12. 06. 2024
  • Assembly language (ASM) is not a mythical dark art, in fact it's fundamental to computers operating at all. I take a quick look at a very simple assembly language and show where it fits in.

Komentáře • 930

  • @paeden5431
    @paeden5431 Před 6 lety +559

    Indeed, well done Manchester. Love from the USA, stay strong, brothers across the big pond.

    • @jzpatelut
      @jzpatelut Před 5 lety +1

      THANKS FOR VIDEO...!!!!! HAY YOU F.......!!!!! ASSEMBLY LANGUAGE IS JUST MNEMONIC CODE OF INSTRUCTIONS..!!! jzpatelut...INDIA...

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

      stay strong against what

    • @dodgecoates8760
      @dodgecoates8760 Před 4 lety +6

      Thulsa Doom en.m.wikipedia.org/wiki/Manchester_Arena_bombing

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

      332 likes
      nicxe

    • @WolfyRed
      @WolfyRed Před 3 lety

      @LastName Almaember yessere

  • @juhanakaarlehto7754
    @juhanakaarlehto7754 Před 4 lety +1490

    This dude looks exactly like the person I thought would teach me Assembly.

  • @Rtoledo5502
    @Rtoledo5502 Před 3 lety +21

    Man!! You sent me back to 1977 when I was doing accounting programs for an Olivetti computer.

    • @javidx9
      @javidx9  Před 3 lety +10

      Lol... Could be a new record for "take me back" on this channel!

  • @ZingsVideos
    @ZingsVideos Před 4 lety +76

    Learned assembly language as a teenager when it was essential for making games. It remains as the voice in my head that complains when I write bloated, slow code.

  • @ucmRich
    @ucmRich Před 6 lety +444

    I vote for more Assembly videos and tutorials! if you would please :-)

  • @NeilRoy
    @NeilRoy Před 6 lety +459

    Back in the day, before optimizing compilers, you had to give some thought on how your program would be converted into machine code. C instructions like ++i were directly converted into a single machine language instruction (in this case, the INC, or increment instruction) which was far faster than say i = i + 1. There were a bunch of tricks you could do to improve your program's speed when you understood the machine language your code would be converted to.
    There is still some optimizing you can do when you understand certain advanced topics on how the CPU operates. Things like the L1 and L2 caches, you can still organize your code to vastly improve speed when you understand how the CPU fetches large groups of instructions into cache (hint: it doesn't just fetch 1 instruction at a time). It's interesting anyhow and I watched some videos on the subject that demonstrated how some simple changes in code ended up in huge improvements in speed just by keeping in mind how the CPU cache works.

    • @javidx9
      @javidx9  Před 6 lety +155

      Hi Neil, I like that your comments add to the video content, and are useful for others to read, so cheers for that!

    • @Jianju69
      @Jianju69 Před 5 lety +35

      Can you believe that, due to the presence of modern optimizing compilers, some programmers will openly mock others for using such tricks? I suppose the point is that "a = b * 2" is more "readable" than using "

    • @michellewilliams1090
      @michellewilliams1090 Před 5 lety +12

      You are a real OG coder

    • @kuhluhOG
      @kuhluhOG Před 5 lety +12

      @@Jianju69 I met once a programmer who didn't know how the dual number system worked.
      Me, not even knowing how to program back then, looked it up for FIVE minutes and explained it to him (I am good at maths).
      I suppose, not every programmer likes to dig into how a computer works...

    • @dustinandband
      @dustinandband Před 5 lety +2

      Anything you could reference that goes in more depth on this topic (i.e. those videos you mentioned)? Very interesting stuff

  • @roblastem2905
    @roblastem2905 Před rokem +14

    Hello! I’m an EE of 15+ years, and I really enjoyed this video. I’ve been using varied versions of assembly to program different types of microcontrollers for a very long time, and it can be a bit of a pain (I recently switched to C full time, because programming USB HID devices in assembly is a nightmare). It’s nice to see someone with such a firm understanding of assembly explain it so well. Keep up the great work, sir!

    • @billlets5460
      @billlets5460 Před rokem

      This stuff used to covered in an A.A.S. of Electronics courses at most community colleges using Trainers (hardware w/CPU,memory,registers,buffers,etc.)

  • @ed505
    @ed505 Před 6 lety +99

    Your channel is like a gem that I just came across with. This is exactly what I was looking for.

    • @javidx9
      @javidx9  Před 6 lety +8

      Hey thanks ed505! Hope it's helpful!

    • @ed505
      @ed505 Před 6 lety +8

      It is extremely helpful. It does clear up a lot of things I couldn't quite understand. Your channel has some great content. I am a new subscriber.

  • @Jared-Cruz
    @Jared-Cruz Před 5 lety +20

    I'm currently in my 3rd year of studying Computer Engineering at university and I just recently came across your channel a few days ago. Your content is amazing and super interesting. Keep it up!

    • @javidx9
      @javidx9  Před 5 lety +6

      Hey Cheers Jared, I will! Good luck with your studies!

    • @howardalien2720
      @howardalien2720 Před 10 měsíci

      You finished school? What do you do now?

  • @gregandark8571
    @gregandark8571 Před 6 lety +463

    why you don't write your own book on these stuff ?
    You are awesome!!!

    • @javidx9
      @javidx9  Před 6 lety +324

      Thanks Gregan! After writing my thesis I vowed I'd never write a book again! But that was some time ago now, so maybe I will... I've been thinking of putting a tutorial video series together for next year though.

    • @yxor
      @yxor Před 6 lety +12

      Please do

    • @gregandark8571
      @gregandark8571 Před 5 lety +8

      Please,good,jewish man.
      Write your book to give us the light inside this grey world !!!

    • @metall7331
      @metall7331 Před 5 lety +4

      @@javidx9 same here XD

    • @jzpatelut
      @jzpatelut Před 5 lety

      WELL DEAR '@@metall7331' THANKS FOR COMMENTS BUT PLEASE SOME ONE TELL ME WHAT IS NEED OF ASSEMBLY LANGUAGE ??? JITENDRA KUMAR Z.PATEL GUJARAT INDIA...EMAIL jzpatel.2011@rediffmail.com OR MOBILE 00-91-9004648715 jzpatelut..

  • @hommefatale9156
    @hommefatale9156 Před rokem +2

    I have always thought my mind wasn't working right when I sat through 6 hours of lectures and couldn't understand anything but this guy explained this all I needed to understand under 30 minutes. Thank you sir. I knew it when a guy keeps his hair long and has a beard is the proper IT guy to go to. You won't be let down. Thank you again.

  • @Garfield_Minecraft
    @Garfield_Minecraft Před 10 měsíci +2

    coding in assembly looks fun(and hell at the same time)
    you tell where the data should go and control everything from below
    it's very close to machine language make you look like you can talk with computer
    who made a game in assembly they are so impressive
    respect who code in assembly 🙏

  • @nivalius
    @nivalius Před 6 lety +149

    no words can describe my admiration for ASM and the people who are fluent in it, but for me it's still a dark magic

    • @javidx9
      @javidx9  Před 6 lety +35

      HI nivalius, it is indeed strange to those that are new to it, and can be hard work as the code is not verbose. Practice Practice Practice!

    • @AhnafAbdullah
      @AhnafAbdullah Před 4 lety +11

      Asm is like making a 10 story building out of 1 cm^3 of cement and stone

    • @NewCurryofthepast
      @NewCurryofthepast Před 4 lety +6

      WAY back in the day people learned how to use punch cards and had to pretty much memorize or at least keep manuals nearby to write machine instructions. Over time it has become easier. Pick your favourite compiled language and a decompiler. Feed it a simple routine. While the syntax looks arcane over time you will understand how the functions translate into instructions. This has been useful for me. godbolt.org

    • @nivalius
      @nivalius Před 4 lety

      @@NewCurryofthepast oh, it's cool, thank you!

    • @MrDragonorp
      @MrDragonorp Před 4 lety +7

      @@AhnafAbdullah that's what fun in it, sometimes I think that asm is, even more, simpler because there are such limited functions, you learn to use the very least of things to do the biggest task, looping, recursion, complex math becomes fun to make because you dont just copy from a library and forget it, you build everything by hand with simple commands and after that higher language become much easier to understand and appreciate.

  • @TrebleWing
    @TrebleWing Před 5 lety +13

    Learning 6502 ASM was very rewarding. It is very simple to understand and get things fun working on old systems like the NES and c64

    • @fahimaljahangir3059
      @fahimaljahangir3059 Před 4 lety +2

      what kind of things did you do with ASM on these consoles?

    • @TrebleWing
      @TrebleWing Před 4 lety

      @@fahimaljahangir3059 My main goal was making music.... Made an album on NES as my first project

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

    Just ran into your this video while learning basics what & how computer and programming works.. and I am glad that i found this vidoe.
    Dude you r awesome, I love your explanation here.
    I hope u make more of these videos where complete beginners like me can learn so much from.
    Thnx a lot man.

  • @kimjongun9915
    @kimjongun9915 Před 6 lety +108

    If you want to get your head dissembled , this is the language to learn.

  • @raymondmichael4987
    @raymondmichael4987 Před 4 lety +9

    From Tanzania 🇹🇿, my thanks to you because i like a bit more on that assembly language, I appreciate your effort.
    Greetings from Tanzania 🇹🇿

    • @jzpatelut
      @jzpatelut Před 4 lety

      THANKS FOR VIDEO..JITEN PATEL INDIA jzpatelut..

  • @JakobWierzbowski
    @JakobWierzbowski Před 4 lety +4

    Dear Mister Barr, you are a great person! The way you explain things is rather poetic from the point of view of a non-native speaker. Thank you for all your hard work in the videos. I love them!

    • @javidx9
      @javidx9  Před 4 lety +1

      lol hey thanks Jakob!

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

    I just happened on to this channel. My only language is a form of BASIC (PS2Yabasic), but it allows me to graphically express every idea I come up with or emulate old ones.

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

    Great infomation, so happy I just found your channel. Currently in college taking data structures, computer arch, and theory of computation. Never saw the point of learning about computer architecture for programming. Thanks for the info and you got yourself a fan, stay safe and happy programming.

  • @bogulans2897
    @bogulans2897 Před 4 lety +4

    Seeing videos like this I cannot believe I can watch this high quality materials provided basically for free. Awesome work sir!

  • @Milosz_Ostrow
    @Milosz_Ostrow Před 4 lety +8

    This reminds me of the time one of the IC designers in the company asked me what a capacitor is. People working with computers in high tech get so involved with abstractions that they lose touch with the physical world.

    • @AhnafAbdullah
      @AhnafAbdullah Před 4 lety +6

      Wait... An integrated circuit designer is supposed to know what capacitors are since they make those circuits

    • @kamalmanzukie
      @kamalmanzukie Před 3 lety

      @@AhnafAbdullah yeah, that doesn't make any sense

  • @kasimsche2812
    @kasimsche2812 Před 4 lety

    It's your channel that made me feel great for using CZcams since 2012. Else each and every one is on fly. Many will come many will go, you are the only CZcams's real soul. Assembly is Love. You made it life for me. Thank you sir.

  • @spiderjuice9874
    @spiderjuice9874 Před 4 lety +21

    I'm developing my own assembly language for a computer I'm building. Not sure how to implement it all just yet. Wish me luck!

    • @arlenestanton9955
      @arlenestanton9955 Před 4 lety

      Spider Juice Ben Eater’s 8-bit computer?

    • @spiderjuice9874
      @spiderjuice9874 Před 4 lety

      @@arlenestanton9955 No, but inspired by it - the first one he showed us that is, not the 6502 system he's doing currently. I wanted to use 256 bytes of memory in my version as well as trying to implement my own op-codes. I haven't made much progress - too many other things to do, and I've kept my job so no extra free time for me - but it's there in the spare room, still waiting for me.
      Currently, I've just got a newly-acquired Commodore 128 operational and am keen to play with that. Basically, I'm a procrastinator...

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

      @math Alas, I'm also a procrastinator. Recent global events have shifted priorities about a bit. It's still a project waiting for attention...
      PS 'studied' for a decade or more, on and off. However, just a knowledge of machine code and its underlying microcode, plus some hardware details, is all you need to move forward on this.

  • @garrusarchangel4562
    @garrusarchangel4562 Před 6 lety +28

    Thank you for your great video! Your English is perfect. I'm russian and my English level is intermediate, but I understood almost everything... about 80% My like and subscription are yours =)

    • @javidx9
      @javidx9  Před 6 lety +19

      Hi Garrus, I'm sure your English is better than my Russian! :D Thanks for your support, it is much appreciated!

  • @wdestroier
    @wdestroier Před 4 lety +1

    This is the BEST explanation I've seen so far. Nobody explains the details like you

  • @nakternal
    @nakternal Před 5 lety +1

    One of the best assembly tutorials on the tube. Explained in easy to comprehend terms and I love the the little piece at the end. Subscribed.

  • @SpencerMckenithWilliams
    @SpencerMckenithWilliams Před 6 lety +91

    No hate here. thank you for your contribution

    • @javidx9
      @javidx9  Před 6 lety +6

      Thanks Spencer!

    • @SpencerMckenithWilliams
      @SpencerMckenithWilliams Před 6 lety +6

      Thank you. This has been quite helpful. even as an introduction

    • @akshatghoshal6098
      @akshatghoshal6098 Před 3 lety

      @@SpencerMckenithWilliams why did he said he will get hate for saying c#. Isn't c# an excellent language?

    • @SpencerMckenithWilliams
      @SpencerMckenithWilliams Před 3 lety

      @@akshatghoshal6098 it's really personal preference thing. I worked with 14 programming languages using this channel to help with that path. I personally like C, python, PHP, and JavaScript. I know java and c# well enough to know I'll avoid those languages for as long as possible. COBOL is really handy for landing a 64 an hour job helping with stimulus setbacks. I declined because I hate new York and would never set foot back there. It's about personal or financial preferences. Anyone who says otherwise is either an asshole or a fanboy. Learn the pros and cons and go from there

  • @thefoolishgmodcube2644
    @thefoolishgmodcube2644 Před 6 lety +163

    You deserve more views.

    • @javidx9
      @javidx9  Před 6 lety +16

      Thanks! I'm happy if people just find the content useful.

    • @thefoolishgmodcube2644
      @thefoolishgmodcube2644 Před 6 lety +3

      I can't believe Pewdiepie is still a thing nowadays, what the hell is wrong with humanity?

    • @thefoolishgmodcube2644
      @thefoolishgmodcube2644 Před 6 lety +1

      Yeah, I'm pretty sure the internet was meant for higher world wide communications and a better access to knowledge and information, now it's nothing but a toxic place with immature assholes ruining everything.

    • @thefoolishgmodcube2644
      @thefoolishgmodcube2644 Před 6 lety +1

      It's a shame, can you imagine the much bigger potential the internet could have if we put our brain into it? We could have improved the internet into something better as we go, like turning it into a more advanced library of knowledge, an important piece of technology for the future innovation of mankind, and not an overflow of unfunny memes and hateful people.

    • @ducksoop.x
      @ducksoop.x Před 5 lety +8

      I agree with your original post, but I found your comments quite embarrassing to read.

  • @ferdinandomirabella1861
    @ferdinandomirabella1861 Před 4 lety +1

    I like the way you demonstrate, explain and talk. It's quite easy to follow along and so it goes from my RAM to my internal CPU. Result; understood and memorized. Thank you and keep this channel alive with more of that useful content you provide. Best wishes.

  • @pablodavidgaytanrodriguez4829

    I've always been quite intimidated by the looks of assembly language, the way you explained it finally cleared numerous doubts I had on the topic. What a champ you are :)

  • @williamshakespeare2482
    @williamshakespeare2482 Před 6 lety +9

    Liked and Subscribed!
    Thank you javidx9. What a treasure to stumble upon your channel this evening. It takes me back to my first forays into the world of computing where I learned programming starting with Microsoft Basic on the Ohio Scientific C1P (6502 processor) and moved up to a Commodore 64 and Assembly code for the 6510 processor.
    My neighbor, another school mate, and I used to program copies of our favorite arcade games. It was fun figuring out how to bend the machine to our will and to see how close to the original games we could get our versions of Donkey Kong, Joust, Defender, Q-Bert, and the like. I wish I had stayed with it.
    Better late than never... 38 years later I'm returning to the game. After this jaunt down memory-lane, my path leads onward and upward. Self learning Front-End web development before diving into a Full-Stack Developer back-end program using a mix of resources (teamtreehouse, youtube videos, and books).
    Thanks again for your well produced and easy to follow style of sharing your knowledge and love of coding. You've planted a seed (C++) and with a little watering (and more than a little weed pulling, cobweb dusting, etc.) I can easily see myself being drawn back down the rabbit hole into the magical / mystical world of assembly code.

    • @javidx9
      @javidx9  Před 6 lety +1

      Hi William, this is excellent news! Thank you for your kind words. The whole point of this channel was to show you don't need much to code fun stuff, and modern PC environments don't make it easy compared to "t good ole days". I guess that's the nice thing about assembly, it's not changed much. There's more interrupts than ever before, and more bespoke instructions, but the rules are the same. The only downside is you can't poke memory as brutally anymore. Wanna turn that pixel red? Not so easy. Embedded systems are probably the most accessible form of assembly now.
      I also find the older games are better as a vehicle for teaching things. Most game dev now is man handling off-the-shelf engines, which whilst fun and productive(?) perhaps requires less "design effort", or focuses the programmer into a specialising in a particular framework. This lessens the need to develop and understand algorithms, a skill I feel is a bit lacking these days.
      Anyway, good luck with your journey into assembly world!

    • @williamshakespeare2482
      @williamshakespeare2482 Před 6 lety +2

      Instead of going to bed, I've been reading through your blog posts and perusing your videos making note of the one's I wish to spend more time on. Your style of coding, and your lean, no-nonsense approach is a breath of fresh air. Embedded systems are the future and somebody is going to need to know how to program them. Thanks again for your contribution to the future of coding. I see great things happening through your media presence!
      And now... back to your review of WINDLANDS. Virtual Reality sounds like a blast as well. [Edit] "My Poker buddies liked the demo where you headed a football."

    • @javidx9
      @javidx9  Před 6 lety +1

      Thanks William! Windlands was so good, and so underrated. Just goes to show how fun does not equal looks. I guess that's true of so many things.

  • @jcpartri
    @jcpartri Před 5 lety +8

    I find this very useful. I'm trying to familiarize myself with Assembly on the Raspberry Pi and seeing how Assembly works in general and in a more broad view is very enlightening. Thank you for taking the time to make this. - Many blessings...

    • @javidx9
      @javidx9  Před 5 lety

      Thank you very much John!

  • @MattLozier314
    @MattLozier314 Před 4 lety +1

    I already knew most of what you had to say in this video, but still found it _terribly_ useful! You're really good at describing complex topics. Keep up the great work!!

    • @javidx9
      @javidx9  Před 4 lety

      Glad you liked it, cheers Matt!

  • @doctortrouserpants1387

    I found this fascinating, I first heard about Assembly almost 40 years ago and never got round to finding out how it works, because it was always so mysterious and intimidating. It's really wonderful. Thanks Javidx9 for another illuminating experience!

  • @installtekzdotcom9777
    @installtekzdotcom9777 Před 4 lety +21

    It's videos like this what makes formal education obsolete :) thanks

    • @FROZENbender
      @FROZENbender Před 3 lety +3

      as much as I like javidx9 and similar channels, there are a good chunk of areas they couldn't explore simply because it is way too much. Stuff like high level algorithmic and computer theory, or a deep dive into distributed database systems. You could probably assemble an equivalent understanding of mathematics from all the great youtube channels but for a good chunk of other stuff you really do need lengthy professional education. Alternatively you could look at literature yourself, at which point it falls into the formal education camp again. I'm sure there are long series of videos on these subjects, but they would be paid courses which again would probably fall under the formal education description.

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

      @@FROZENbender Yep I agree. I think stuff like this could be considered an essential augment to formal education, using the term essential loosely. Of course that is recognizing that the original comment was likely intending hyperbole to complement javidx, which I agree completely.

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

      lmfao @ you if you actually believe that

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

    I didn't want this video to end. Super digestible and interesting.

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

    Thanks for the great explanation, mate! It has revived my fascination for this subject. Back in my teen years (in the eighties) I grew up with 1st gen consoles, Commodore 64 and then Amiga 500 and was so in love with the subject, I wanted to become an electronic engineer. But my grades in math were bad (thanks teachers!) so I took a very different path: foreign languages (English/German) and literature. Accidents and experiences came that took me - with a huge lot of zigzagging - to were I am, but that old love for bits and chips is still there, wanting to finally be taken more seriously. Your channel seems a very good (re)starting point!

  • @joeprinz4351
    @joeprinz4351 Před 4 lety +1

    I just watched this video because I went down the rabbit hole of understanding the Apollo GPC. I wanted to understand some of the code in assembly that has be released to the public domain. I have been in the infrastructure support field (networking, servers, applications etc) for 20 some odd years. I find your way of explaining things relaxing and easy to understand. I plan to watch more and expect it will take me down yet another rabbit hole. thank you

  • @sdsdfdu4437
    @sdsdfdu4437 Před 4 lety +11

    I'd probably separate languages with a runtime (like Java or c#) vs languages with little or no runtime, like c/c++ and rust.

    • @youneskasdi
      @youneskasdi Před 3 lety

      C# is a bit weird i used to think it was the same as Java until i started using it, it can give you about the same control(and headache) as c++ if you dig deep enough while being a high level language at the same time

  • @sdsdfdu4437
    @sdsdfdu4437 Před 5 lety +4

    There's a really fun puzzle game called TIS-100 that has you solve problems using these small simplified processor-like cores and writing assembly-like instructions on them. It's really fun and challenging. There's also Shenzhen IO from the same developer, which is a similar premise but the puzzles have you making circuits out of controller-like devices. Really fun games.

    • @Nob1ej0n
      @Nob1ej0n Před 4 lety +1

      I just discovered TIS-100 a month ago. What an absolute gem of a game. I love how it compares your code with other players' without actually showing their code to encourage rethinking and optimization. It sent me down the rabbit hole that led me to this channel. So glad I found both.

  • @ioannis69k
    @ioannis69k Před 3 lety

    In 1990 Assembly was the basis before learning any other language ! Just love it. Thanks for the video !!!

  • @somaar3186
    @somaar3186 Před 2 lety

    Thank you for the video! I liked the pacing and the thought out illustrations and examples. Combined with your voice and way of speech makes the content interesting throughout the video.
    Looking forward to watch more.

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

    Thank you for your vids! Cheers from Sweden :)

  • @scriptingtutorials4060
    @scriptingtutorials4060 Před 6 lety +19

    AWESOME!! i have seen about 10 asm serries with like 50-100 episodes in each. none of them is as informative as this one video.

    • @javidx9
      @javidx9  Před 6 lety +2

      Thanks buddy, its not a deep tutorial but certainly makes you aware of what ASM is all about!

  • @chocolate_squiggle
    @chocolate_squiggle Před 4 lety

    Thank you I appreciated this overview and demonstration very much. Having worked and been around lots of IT, but never been a programmer, I had an idea that assembly was moving memory addresses about but that was all. Seeing you solve the simple multiplication problem with add/subtract and a loop made me realise it's not as far removed from a compiled language as I had thought. But I see you do need to understand the architecture and the instruction sets available. Great intro, thanks again.

  • @techcorp
    @techcorp Před 5 lety +1

    Awesome stuff. This is exactly what I was searching for over a year. Hope you'll create more videos on topics like these.

    • @user-ri2ms2mm7w
      @user-ri2ms2mm7w Před 2 lety

      My friends, search for your life purpose, why are we here?? I advise you to watch this series 👇 as a beginning to know the purpose of your existence in this life./
      czcams.com/play/PLPqH38Ki1fy3EB-8xmShVqpbQw99Do2B-.html

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

    You know what ? Thank you for taking your time and making videos, world is a much better place now.

    • @user-ri2ms2mm7w
      @user-ri2ms2mm7w Před 2 lety

      My friends, search for your life purpose, why are we here?? I advise you to watch this series 👇 as a beginning to know the purpose of your existence in this life./
      czcams.com/play/PLPqH38Ki1fy3EB-8xmShVqpbQw99Do2B-.html

  • @trueverdicts685
    @trueverdicts685 Před 5 lety +7

    This video deserves so much more views!

    • @javidx9
      @javidx9  Před 5 lety +2

      Thanks TrueVerdicts, as longs as those who do watch it, get something from it, I'm happy.

  • @gigabek
    @gigabek Před 7 měsíci +1

    Thank you javidx9. I watched this video when I was studying at university CS and assembly was of one of subjects. I didn't understand a thing neither from professor nor your video but now I have a strange urge to learn assembly for x86 and ARM and this video is clear as day.

  • @takuramaringire
    @takuramaringire Před 11 měsíci +2

    Thank you so much for this absolutely amazing video! I'm watching this 6 years after publishing, but the information is valuable beyond time measurement.

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

    I know this is somewhat of an old video now but I'd just like to say thank you for showing your support for all of the people affected by the horrific events of the arena bombing. I'm from Liverpool myself and with our two cities being very closely linked, both geographically and culturally, the events that took place are still in our thoughts today. Its amazing and humbling to see the strength and solidarity displayed by everyone affected. Well said, "Well Done Manchester!" ✌

  • @BoardToBitsGames
    @BoardToBitsGames Před 5 lety +4

    This is the best primer on assembly language I have seen. Thanks very much!

    • @javidx9
      @javidx9  Před 5 lety +1

      Hey I appreciate that buddy, thanks a lot!

  • @Mr_Matrix
    @Mr_Matrix Před 5 lety +4

    I'm trying to get started with programming again. Assembly language is one of the things I have always wanted to understand better since my teens. 30 years later, this eye-opener comes! 😃👍 Many thanks for this!
    I would also like to thank you for sharing your thoughts on the terrorist attack in Manchester. The same year in Sweden we had the terrorist attack in Stockholm. Here too, the good forces showed their strength afterwards. Meeting hated with hate is never a solution. Unity in diversity works better ❤️

    • @javidx9
      @javidx9  Před 5 lety +1

      My pleasure Mr Matrix, thanks for your support!

  • @skf957
    @skf957 Před 3 lety

    Watching this 4 years after, but still, well said. And a great assembly language video. Simplified is what I need, thank you.

  • @WisomofHal
    @WisomofHal Před 4 lety +2

    You’re a saint brother. Love your work. I must say though, your camera work at 7:15 oddly reminded me of spending time with my grandparents and being forced to watch old 80s documentaries.

  • @matheusmelo6022
    @matheusmelo6022 Před 4 lety +8

    I learned Assembly when I was still at high school. Lol.
    It's not that hard, you need a to read a book to learn it. And practice a lot. A good book. Having an amazing teacher that dominates the subject also helps a lot.

    • @_DT_
      @_DT_ Před 4 lety +1

      Which book do you have?

    • @Arien17k
      @Arien17k Před 4 lety

      Do you have a book to recommend? I have the Stallings and for theory is ok, but for exercises and examples I have no clue (and my "professors" would have problems explaining how to cook breakfast... Imagine ARM assembly )

  • @veda-powered
    @veda-powered Před 5 lety +17

    2:09 I like Lua too, it was my first programming language.

  • @tylersmith8245
    @tylersmith8245 Před 4 lety +1

    This video was super helpful, as I'm also a web developer who hasn't explored assembly. Thank for you for making this!

  • @nikolaus2688
    @nikolaus2688 Před 3 lety

    I stopped understanding what was going on around 15 minutes in, but for me that's already a massive increase in knowledge. Thank you.

  • @AlexPerez-ek3xp
    @AlexPerez-ek3xp Před 6 lety +5

    Visual Studio zoom in = Alt+ mouse scrolling, very informative video thank you.

    • @javidx9
      @javidx9  Před 6 lety

      Hi Alex, thanks! I use CTRL+Scroll for zooming the source, but I can't zoom the additional windows in the same way. I'll give ALT a try!

  • @Artaxerxes.
    @Artaxerxes. Před 4 lety +12

    I think its great. You'll never understand computers unless you learn assembly language

  • @megapixeler
    @megapixeler Před 3 lety

    I've been a professional programmer for more than 10 years now and until a few minutes ago I had a very vague idea of what assembly language was. Maybe I'll never need to write or read assembly but this fills a knowledge void I always knew i had (in a very general and basic way of course). Thank you!

  • @TheClearsky88
    @TheClearsky88 Před 4 lety +2

    My high performance conputing prof used to say: using inlinen assembly for code optimization is an act of utmost despration.
    We used intel intrinsics to optimize scientific computation algorithms to the max on a single core. i think intrinsics are a fantastic tool should the need arise to do manual perf. Optimization on intel x86. Back then (around 6years ago) we outperformed the optimizations the compiler did by quite a margin. Maybe that has changed?
    Your videos are fantastic, i really enjoy them. Thanks a lot!

  • @aryesegal1988
    @aryesegal1988 Před 6 lety +5

    Awesome review of assembly language, Sir. Appreciate the time you take to share with us. (Can't believe only now I've found your channel. Subbed and liked!)
    In regards to what happened in Manchester, as an Israeli, I know first-hand what feels like when terror hits home.
    May GOD save you all. Keep strong! :)

    • @javidx9
      @javidx9  Před 6 lety +1

      Thanks Aryesegal! I really appreciate your comments on both matters, and I'm pleased you're enjoying the channel.

  • @stupossibleify
    @stupossibleify Před 5 lety +17

    Superb video. I've dabbled in 6502 assembler, but always uncomfortable dabbling in x86. The use of Visual Studio to get a view of how higher level languages translate into x86 is a great suggestion

    • @javidx9
      @javidx9  Před 5 lety +8

      You can also use a website called godbolt compiler explorer, which will break down code snippets into asm in accordance to that compilers specification. Really interesting. Thanks!

  • @yashesvii
    @yashesvii Před 4 lety +1

    I wish I was your intern/student ! You have crazy teaching skills. I was so frightened by assembly but this video wiped off the scary feeling in me !

  • @ongyuxuan6989
    @ongyuxuan6989 Před 2 lety +1

    This is such an incredible introduction, appreciate it so much!

  • @domobrah2671
    @domobrah2671 Před 5 lety +4

    Incredible! I've always wondered how assembly works. Thank you for this explanation! I feel like I'm learning ancient secrets of computing lol

    • @javidx9
      @javidx9  Před 5 lety +3

      lol Thanks Domo, these ancient secrets are still incredibly important today!

  • @brainplot
    @brainplot Před 6 lety +4

    Thank you for this awesome explanation. I program in much higher-level programming languages but I thought it could be helpful to know what's going on under the hood. Your video was very helpful.
    P.S. it's quite refreshing to hear a British accent every once in a while, Computer Science is full of american people :D

    • @javidx9
      @javidx9  Před 6 lety +3

      Hi Gianluca, You're welcome! I'd never really considered my accent before :D

  • @AliHassan-vd6zj
    @AliHassan-vd6zj Před 5 lety

    Keep it up mate. People like you is the only reason i like using youtube really knowledge that you dont get even in classes

  • @markharrisllb
    @markharrisllb Před 2 lety

    I watched the video because of the 'I ❤️ MCR' sticker on your equipment. I thought the content would be well above my understanding of language as I’m a boomer who is a newbie to the terminal in Ubuntu and learning Arduino. You explained things so clearly I followed the video all the way through.
    I'm a very proud Lancastrian where Manchester was situated for over the first decade of my life. Many Mancunians still see themselves as Lancastrians and those in Greater Manchester certainly do. I think you’ve got to live in Lancashire to understand our mentality and definitely to understand our humour. We are a tough breed from the mill towns of Blackburn, Burnley, Oldham etc, to the mining towns like Wigan, the fishermen of Fleetwood and the harsh sheep farming areas that are now part on Cumbria. Manchester was our Jewel and centre of commerce, which it still is. What happened in Manchester in 2017 was vile, like the bombing of the Arndale Centre was. We saw Manchester weep and we wept with the city, as we have done with Liverpool. We knew Manchester would brush itself off and carry on. Not in denial of those 23 souls, many of whom were children, but to commemorate them the only way we know how. To stand up and be proud because no matter how hard you knock us down we'll get back up. This small county I was born into, whose duke has shown her steel in her 90s, doesn’t stay down for anyone. R.I.P. all who lost their lives that day.
    🌹 🌹 🌹

  • @codythompson9973
    @codythompson9973 Před 6 lety +4

    Thank you for this video man. I think it is very helpful.

    • @javidx9
      @javidx9  Před 6 lety +1

      No problem, Thanks Quarter!

  • @50_Pence
    @50_Pence Před 6 lety +4

    great tutorial!

  • @18890426
    @18890426 Před 3 lety

    Thank you for this video. I'll keep watching it to learn more from it and also watch other videos. I'm glad that I found out this channel.

  • @Willifordwav
    @Willifordwav Před 3 lety

    You’re officially my new favorite programming channel

  • @AmitsLife
    @AmitsLife Před 3 lety +12

    Thank you so much

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

    The registers in a Scouse processor are:
    RA
    RA
    CALM DOWN

  • @mannhansen9337
    @mannhansen9337 Před 4 lety

    Excellent tutorial. This is how I learned Motorola 6802 programming in 1979 in college. Later I purchased a KIM-1 with a 6502 CPU. The KIM-1 had 1k of memory. There is a guy on CZcams with a 6502 project. I will recommend this 6502 project if you want to learn how a computer works and can be built by yourself.

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

    I'm a front end developer, this is exactly what I needed. Thanks!

  • @chriswinslow
    @chriswinslow Před 5 lety +12

    I would like to learn more about embedded systems. I want to create a system that can open a security door whenever a person swipes a card trough a card reader or type in a number code on a number pad and look the card details up on a remote MySQL database and then perform whatever mechanical operations to unlock the door. I'd use a "Raspberry pi Zero w" and create a bare metal boot system using ASM. I'll add inspired by javidx9 in the comments code somewhere lol. Many many thanks mate and a very nice message at the end.

    • @javidx9
      @javidx9  Před 5 lety +4

      Thanks Chris, the easiest way to learn about embedded systems is just to do it - Lots of people go with arduinos, but personally I prefer mBed LPC1768s.

  • @foreverseethe
    @foreverseethe Před 6 lety +8

    Aw man, I got lost, you have a good video presence and it-s well paced though. I-ll take a second look later.

    • @javidx9
      @javidx9  Před 6 lety +9

      Hey dont worry about it! Assembly language can be really confusing to those who have not used or even seen it before. It has a reputation for being tough for a reason!

  • @Gordin508
    @Gordin508 Před 6 lety +1

    This introduction to assembly was very enlightening and reasonably simplified. Thank you very much!

  • @iamtheteapot7405
    @iamtheteapot7405 Před rokem

    As a returning student learning c++, this was a very easy to understand explanation of assembly. Thank you so much.

  • @jakobfischer9985
    @jakobfischer9985 Před 5 lety +3

    Great video & explanation. I have a question though, sorry if it's a dumb one. At 18:48 you say that to multiply 10 and 3, the register XMM0 gets multiplied with itself and with b=3. Before, you showed how in XMM0 both 10 and three are stored at XMM00. So is it possible to store multiple values at XMM00 ? If so, how does the program know to multiply both values? Why does it know not multiply XMM0 * XMM0 as 10 * 10 , and then * 3? Sorry if that was confusing but I hope my point got accross. I appreciate any answers.

    • @javidx9
      @javidx9  Před 5 lety +2

      Hi and thanks Jakob, yup, a little verbal slip up there! effectively what is happening is XMM0 = a; then XMM0 = XMM0 * b; The first argument is the target register for the result of the calculation.

    • @jakobfischer9985
      @jakobfischer9985 Před 5 lety

      @@javidx9 Ooh I see, that clears it up. Thank you very much for the quick response!

    • @mr_ahron
      @mr_ahron Před 5 lety

      Is look like that the this Architecture have more command set (If I'm not wrong all the modern CPU's have more than 100 commands types).
      The CPU use in this register to copy the first number [a] in the first command. ({CMD} vmovss {detestation reg} xmm00, {from memory location} dword ptr [a])
      In the second command the CPU multipale the register xmm00 with [b] and put the result in register xmm00. ({CMD} vmulss {result to detestation reg} xmm00, {first multiple argument from reg} xmm00, {second multiple argument from memory location} dword ptr [b])
      in the third command the CPU copy the result from the register to the memory location [c]. ({CMD} vmovss {detestation memory} dword ptr [c], {from reg} xmm00)

  • @gliderspace
    @gliderspace Před 4 lety +15

    "I like Lua"
    No shit, Lua is beautiful. If Lua was a girl I would marry it

    • @mparagames
      @mparagames Před 4 lety +2

      LOL

    • @Keaza.
      @Keaza. Před 4 lety +1

      Correct, I learned LUA from an old game called Tibia, it was and is so beautiful

  • @conts8762
    @conts8762 Před 4 lety

    Great video, recently i started learning C++ in university (not CS) and wanted to know about what assembly is in a not-too-in dept way and this is just what the video did!

  • @spiderjuice9874
    @spiderjuice9874 Před 5 lety +1

    I co-learnt 6502 assembly language while learning BASIC way back when. I'm rusty as now but it was good to come across this video, and another of yours on C++. You present your topics very clearly, and I should definitely come in from the cold regarding programming.

    • @javidx9
      @javidx9  Před 5 lety

      Hey Spider Juice , you and I share something in common then. You must come in and sit by the fire! :D

    • @spiderjuice9874
      @spiderjuice9874 Před 5 lety

      Would be my pleasure!

  • @amnest1ac
    @amnest1ac Před 5 lety +5

    Hey, I am a little late to the party. You are awesome! Please make a video lectures on ASM. Also, it would be interesting to learn why do we need different types of compilers and linkers on varying OS! :P

  • @RingZero
    @RingZero Před 4 lety +4

    I have been creating utilities in Assembler since early 90’s.... still use it. That’s all I know 😉

    • @Lu-ql5tj
      @Lu-ql5tj Před 4 lety

      Then why do you call it assembler? Assembler is the compiler. You don't call C, GCC.

    • @RingZero
      @RingZero Před 4 lety

      Luís Carlos : what would you like to call it?

    • @Lu-ql5tj
      @Lu-ql5tj Před 4 lety

      @@RingZero Assembly!

    • @RingZero
      @RingZero Před 4 lety

      Luís Carlos : Appreciate you correcting me 🙏🏽

  • @gosnooky
    @gosnooky Před 5 lety +1

    Best computer science channel on the CZcamss by a mile.

  • @kurtlindal4801
    @kurtlindal4801 Před 2 lety

    I think it's important to point out that assembly is actually a psudo language for machine language which is just a bunch of zeros and ones. While I doubt that people are still using machine code, at least with consumer computers (desk top, laptop), there are probably some uses for machine language in processing systems used in microwaves, washing machines and other devices using PLA's and other primitive control systems.
    Enjoyed the refresher, haven't thought about assembly in many many years. Found your channel recently, great stuff!!

  • @rty1955
    @rty1955 Před 4 lety +25

    I have been writing in assembly for over 50 yrs. I have done things in that language that C programmers can't even dream of!
    I used core dumps as my "debugger" when I began there was only a handful of programming languages (COBOL, RPG, PL/1, FORTRAN, etc)
    I have taught many many COBOL programmers to actually read a core dump as well.
    Other languages are way to constrictive to me. I still write assembly on micro controllers now as C wasted too much memory.
    One of my best teachers was a mainframe. Even in assembly language you could never make it hang up, or crash, only your app crashes and the mainframe was a master at cleaning up your mess. PCs are just brain dead!
    This guys example of multiply 10x3 is way to slow and inefficient. He is using the ALU way too many times. Thus making it slow. He is in his loop 3 times. In his code he must be in that loop and use the ALU every time they the loop. What if the example was 10x128??? He would be in the loop 128 times!! If you think hard, it can be done a max of 8 times in the loop and use the ALU only once! This is how assembler programmers think. I taught assembly Lang course in major NY college as well.
    My advice is to get a reference manual for the CPU being coded for. Totally understand the memory layout as well. Once you understand that, learn how the assembler and linker works.
    Assembler can use macros too!
    An assembler produces object code, the linker combines all the object code from various other assembles, and also combines static library modules which are also object code, then outputs a fully executable binary file.
    This guy is giving a very high level
    overview of how to use assembly language.
    Remember the difference between assembler and a compiler is that the assembly language is one to one source statment to executable statement as opposed to a compiler generates many many executable statements per each line of source code.
    I have written an entire accounting system (A/P, A/R, G/L, PAYROLL) on a machine with 32k, yes Kilobytes of memory. C or any other language wouldn't get past initialization w/o crashing. I accomplished this because I knew the o/s and assembly VERY well.
    One mainframe I worked on had 8 MB of memory and it could sustain hundreds of users simultaneously while still doing batch work. One may ask: "how is that possible?" That was not magic, that was great assembly coding.

    • @areg7182
      @areg7182 Před 4 lety +9

      "C wasted too much memory" haha tell that to javascript programmers they'll think you're insane

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

      @@areg7182 well I dont consider java to be a real language as its interpretive like BASIC was. C compiles to real op codes but drags so much garbage with it

    • @areg7182
      @areg7182 Před 4 lety +1

      for all intents and purposes Java is a "real" language, and it's not (directly) interpreted. Javascript is also mos often compiled to a bytecode, and then JIT compiled to native machine code. It can be quite fast, but its hella inefficient. As for C computers have gotten so powerful nowadaus that its very uncommon to say "C drags garbage with it", but I guess a few months of coding in pure assembly would make me say that as well haha. Although modern compilers are pretty good at optimizing programs, have you tried them?

    • @bogdandumitrescu8987
      @bogdandumitrescu8987 Před 3 lety

      Could you make a similar video for the most efficient code ? Or recommend a different source for better ASM coding ? (Book, video, tutorial, article) ?

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

      @@areg7182 I use C for programs I dont care about efficiency. And C does drag bloat with it. Try and write the simple hello world program and see what the executable size is. Now we know the text size is only 12 characters ("Hello world!" x00) So all u need to do is load a register with the addr of the string, load a register with the o/s call to display txt on a screen (o/s specific) the call the o/s (usually by an interrupt of something, then exit. So maybe a handful if bytes for the code lets say 40-50 bytes in a 64 bit machine. So in total you have a simple program that is 64 bytes. Why does C need 4k to do it?? U need to ask questions. When I coded on mainframes thaT had 48k, yes, 48k of memory, you better know where every byte was doing. You as the programmer need to be in full control of your app.
      So in my example when C requires 4k and i can do it in 64 bytes. A person can fit MORE real code, that does more work than a C program does. When i write for micro processors where memory is limited, I try to write very compact, modular code. I never use C. As u have limited resources and C wastes way too much space.
      The downside of assembly is that you must know each processor intimately, that yoy are working with.
      I never let compilers choose which is best. Im the programmer and I better know what is best for each application. A compiler may optimize for a each processor, but when u code im assembly you should know that processor inside and out

  • @jerichoblt974
    @jerichoblt974 Před 4 lety +58

    12:03 "zero = 1"
    ALL OF REALITY IS A LIE!!!

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

      It's because "1" means "true", and "zero" means the condition where the value of the previous operation equals 0.
      If this condition is true, then "zero" = 1
      Also, you can r/whoooosh me now.

    • @mparagames
      @mparagames Před 4 lety +1

      @steve gale Many higher-level programming languages use "true" as a value, as far as I know.
      In Javascript at least, the condition "(true == 1)" returns true. The condition "(false == 0)" also returns true. However the conditions "(1 === true)" and "(0 === false)" both return false.

    • @mparagames
      @mparagames Před 4 lety

      @steve gale Yeah, but languages like javascript can (somehow) compare two different types of value and still be able to return "true" at times, hence the condition "(0 == false)" returning "true"
      (javascript returns a boolean value when evaluating conditions).
      Also, the example there was pseudocode so he could have written something else to explain the same thing, if he wanted.

    • @mparagames
      @mparagames Před 4 lety

      @steve gale I think that's why they introcuced the "===" operator, which compares not only the values themselves but also the type of the value of each one of them.

    • @mparagames
      @mparagames Před 4 lety

      @steve gale OK...

  • @arielspalter7425
    @arielspalter7425 Před 4 lety +1

    Very well made. Thank you for all your uploads. Subscribed!

  • @kamertonaudiophileplayer847

    Assembly Language was first language I learned. Nice to see that someone still learning it.

  • @AmitVerma-rc1ex
    @AmitVerma-rc1ex Před 4 lety +4

    hi there, I have created an operating system entirely based on assembly language and it also has a basic language interpreter built it , now I want to develop network components for that thing , please make a video on network sockets if you can , thank you for your precious contribution and I loved the idea of creating a virtual machine from scratch

    • @WisomofHal
      @WisomofHal Před 4 lety

      Amit Verma you built an operating system...................? What’s your contact

    • @AmitVerma-rc1ex
      @AmitVerma-rc1ex Před 4 lety

      @@WisomofHalajtg1234@gmail.com, I am after swarm algorithms for drones and developed the same to use as a base interface instead of any 3rd party vm. Moreover, it is currently available for arm cortex m7 and x86 architecture, and do have a lot to do, especially linking multiple imu units together to make a coordinated system workflow

    • @WisomofHal
      @WisomofHal Před 4 lety

      Amit Verma is it on github?

    • @AmitVerma-rc1ex
      @AmitVerma-rc1ex Před 4 lety +1

      @@WisomofHal nope, will deploy it on git after getting it properly completed with multiple imu control and algorithms for swarm formations , moreover thank you for showing interest and, I will make a demonstration video to show the practical usage and performance.

    • @WisomofHal
      @WisomofHal Před 4 lety

      Amit Verma Gladly will show interest in such a feat. Will love to tinker with this

  • @urinater
    @urinater Před 3 lety +5

    You can go lower:
    Machine Code
    Zeros and Ones
    Voltages

  • @waltergrosvenor1555
    @waltergrosvenor1555 Před 4 lety

    Thanks for the blast from the past. I haven't written any assembly since I was writing applications in it on an IBM System 3 with 32K of memory. Still it was easier than S/360 autocoder. Excellent presentation! Thanks again.

  • @gilleswalther5964
    @gilleswalther5964 Před 3 lety

    Thank you for shedding some light on this topic