Assembly language and machine code - Gary explains!

Поділитися
Вставка
  • Опубліковано 31 тра 2024
  • Read more: goo.gl/tgJqpw | Ask Gary your questions on the AA forums: goo.gl/V3L5ZA
    You might have heard the terms "assembly language" and "machine code" but what do they mean? Let's find out.
    Talk about Android in our forums: www.androidauthority.com/commu...
    Subscribe to our UA-cam channel: ua-cam.com/users/subscription_c...
    ----------------------------------------------------
    Stay connected to Android Authority:
    - www.androidauthority.com
    - google.com/+androidauthority
    - / androidauthority
    - / androidauth
    - / androidauthority
    Follow the Team:
    Josh Vergara: plus.google.com/+JoshuaVergara
    Joe Hindy: plus.google.com/+JosephHindy
    Lanh Nguyen: plus.google.com/+LanhNguyenFilms
    Jayce Broda: plus.google.com/+JayceBroda
    Gary Sims: plus.google.com/+GarySims
    Ash Tailor: plus.google.com/+AshTailor
  • Наука та технологія

КОМЕНТАРІ • 454

  • @nezelg
    @nezelg 5 років тому +425

    My husband, who was a student at MIT at the time, taught me to program in assembly language on our first date! It was a big help in understanding languages in future jobs that I had as a technical writer.

    • @racsovbibli765
      @racsovbibli765 4 роки тому +147

      So romantic :)

    • @ibobaiofficial
      @ibobaiofficial 4 роки тому +97

      Programmers are so bad at dating that they explain assembly language for a woman :( !
      But what's good that he won your heart :), wish you a long life!

    • @biggSHNDO
      @biggSHNDO 4 роки тому +46

      “Hey baby! akdj - jdbf= inr0 (1)
      😜💦”

    • @kurororushirufuru2850
      @kurororushirufuru2850 4 роки тому +34

      Girls nowadays will be freaked out if you show them these freaking codes on first date.

    • @ThatGuyDownInThe
      @ThatGuyDownInThe 4 роки тому

      @@biggSHNDO LMFAO

  • @amihartz
    @amihartz 8 років тому +231

    I've written a lot of assembly code for the TI-83 and TI-84 calculators. They're quite nifty little pocket computers that, unlike cellphones, teachers don't question you messing around with in class. They're really slow, so the only practical way of making apps is using assembly language (Z80 Assembly specifically). I learned that and wrote a ton of apps for it. Some were practically useful for class, some were just for fun, and others were just to challenge myself. It's really fun, actually, to interact so closely with the hardware. I wrote one app where you could write out a string of music notes and duration and it could actually play them through a pair of speakers plugged into the I/O port using an adapter. This is not something you can easily do with something like Java because most high-level languages don't let you directly interact with hardware so easily. I attempted to write machine code once just for the heck of it, and I wrote a simple program that could convert numbers to their hex values. But that's about all, writing machine code is pretty pointless unless your machine is so primitive it doesn't even have an assembler yet.

    • @anteconfig5391
      @anteconfig5391 4 роки тому +20

      writing machine code is pointless... Unless you're a hacker that hates compilers

    • @joeri9603
      @joeri9603 4 роки тому +4

      @@coderdude9417 I'd recommend RISC-V for that. It makes it a lot easier.

    • @kevinrickey3925
      @kevinrickey3925 4 роки тому +3

      WORD, I learned to program the Z80 for the TRS-80 back in 1980, since then I've learned the 6502 (zero-page addressing), then finally the Intel 8088-8086 in 1990. Programming in Assembly/machine is Absolutely a rush, I still Love IT! Rodnay Zaks makes good books

    • @IntoxicatedDriver
      @IntoxicatedDriver 4 роки тому +1

      @@anteconfig5391, agreed - considering that there exist assemblers to translate assembly source to machine code.

    • @IntoxicatedDriver
      @IntoxicatedDriver 4 роки тому +1

      @@coderdude9417 for dabbling with tiny OS functionality and more (compiler, interpreter, "shell"), you may want to consider to have a look at a standalone Forth, which combines all these in a (potentially) tiny program. "Tiny" means, less than 4k (down to around 2k of code)

  • @baigadil
    @baigadil 3 роки тому +16

    last used machine code in my bachelors in computer science, we actually put little 3 pin transistors on our own toy of a PCB, created our AND, NOT, OR, NAND gates in different configuration and wrote simple arithematic operations and got happy about it! fast forward 16 years, I am doing data engineer and data science in python against big data and sometimes i get deja vu of the simplest binary operations that are happening underneath with an orchestra of more than a billion finFET transistors! its simply amazing how humans build layer upon layer over original understanding of anything all in name of efficiency and progress!

    • @ozzyplayz7082
      @ozzyplayz7082 Місяць тому

      u dont need to lie about being a data engineer lol

  • @RnBandCrunk
    @RnBandCrunk 6 років тому +9

    The C compiler first optimizes your code (in C), then creates an assembly file from it and then the object file, which is machine code for the computer and finally an exe-file, which is basically the result of the linker going over the object file afaik.

  • @Enedrapvp
    @Enedrapvp 7 років тому +90

    Roller Coaster Tycoon was also written in assembly.
    2 Assembler courses is a minimum at my university for any CS major (in 2016, IBM hires like 25% of graduates).

    • @thenineinchnailer5674
      @thenineinchnailer5674 7 років тому +5

      I did not know that! Thanks for the fun fact!

    • @heatxtm
      @heatxtm 7 років тому +7

      tons of games were written in assembly

    • @victornaut
      @victornaut 7 років тому +1

      Retro Rampage City had some functionalities written in Assembly I guess...

    • @retiredshitposter1062
      @retiredshitposter1062 6 років тому +9

      I wrote a fun game called World of Warcraft in assembly, it was a lot of work, but after 2 1/2 months I got it done. People seem to like it! It's very popular.

    • @eyesnteeth1611
      @eyesnteeth1611 5 років тому

      Love your username what school do you go to

  • @mrsconsolelog
    @mrsconsolelog 3 роки тому +12

    I just started my second semester with subjects related to software engineering, and about to start assembly languages in few weeks. It sounds exiting to get a glipmse, about where and how data gets storage to translate in to binary code... Thanks !

  • @statikverse
    @statikverse 6 років тому +5

    My current project is writing a simple VM to perform arithmetic. This helped me grasp a lot. Thanks

  • @jeraldgarner1636
    @jeraldgarner1636 3 місяці тому

    Great explanation Gary! I'm taking my 1st Assembly Language class this week and I learn by understanding concepts visually and you are excellent at it! I remember being in electronics in Highschool, having a Vic 20 and Commodore 64, wanting a Sinclair and working to build a robot vis wire wrapping. I joined the USAF and was n communications for 8 years, then on to web design and networking in the civilian world. Programing this Assembly looks like learning Greek to me but you have helped! I hope I can learn more from you as the class progresses!

  • @orionwilson8796
    @orionwilson8796 7 років тому +1

    I'm quite new, and being that I am in the process of learning this apart from a scholastic environment, this video was indeed very helpful. thank you.

  • @NOTMuzzaFuzza
    @NOTMuzzaFuzza 8 років тому +3

    If anyone wants to dig deeper into what Gary explained beautifully in this video, I would recommend to learn about the hardware and software of the Intel 8080 or 8085 microprocessor.
    It is basic enough for you to grasp the concept of mnemonics to machine code and its hardware is very simple and streamlined.

  • @farhaadali4245
    @farhaadali4245 2 роки тому

    Yup.....and I have recently done a course on "Computer Organization" and I loved machine and assembly level programming.

  • @Dr.physioAli
    @Dr.physioAli 7 років тому +3

    I am literally fascinated by the programmings and its complexity complexity

  • @FranciscoLopez-es8fi
    @FranciscoLopez-es8fi 8 років тому +1

    It is really cool that this kind of content is also shown in Android Authority

  • @Bob-zg2zf
    @Bob-zg2zf 5 років тому

    oh my god, this video is pretty helpful. I watched it a while back and quit watching it cuz I was lost by the time he talks half way through. However, today I talked to my coworker and we discussed about machine code and I started to re-watch this vid and I started to understand most of this video. Fabulous! Thank you so much!

  • @AbdulWahab-gn5hn
    @AbdulWahab-gn5hn 8 років тому +1

    I am a student of electrical and electronics engineering and I had experience with Java but I really like assembly language.
    We use Atmel 8052 series as testing platform.

  • @danielcu96
    @danielcu96 8 років тому +6

    Great explanation! I have only a little bit of insight into programming languages, but this video made the concepts of assembly language and machine code crystal clear. Love your videos Gary, keep being so informative!

  • @lisamariefan
    @lisamariefan 6 років тому +1

    I'm learning how to write assembly/machine code on the TI-84. I guess the actual writing isn't so bad perse but finding out about key memory locations like VRAM and figuring out the routines that you can call from ROM are what make the actual coding challenging...

  • @subhashisghose
    @subhashisghose 2 роки тому +2

    Still somehow the best explanation of these concepts even after 6 years.

  • @davidpolberaff8875
    @davidpolberaff8875 2 роки тому +1

    Assembly language is extremely underrated I’ve written a lot of it and I can say it was a lot more fun to learn assembly than any other language I’ve used

  • @billh1337
    @billh1337 3 роки тому

    I’m a CE and EE major and currently we are designing/creating a MIPS ISA CPU. It’s so fun and interesting but definitely the hardest and time consuming class I’ve ever taken. We have to learn both how to program in assembly and then take that knowledge and create a pipelined data path CPu.

  • @pnamajck
    @pnamajck 4 роки тому

    gary … just wanted to thank you for sharing your knowledge … with the discussion on machine language … i watched only for human interest and not for application.

  • @mangocode3250
    @mangocode3250 Рік тому +1

    I learn 8086 Assembly now only for 2 days. And now i can see all these possibilities in programming.
    Before assembly i programmed in C/C++ but after I discovered OS-Development I turned crazy...
    I sat 48 hours in my desktop chair and made my first little bootloader with a minimalistic GUI.
    in the beginning I thought I'll never understand assembly. But when you do its not so hard anymore.
    Except the annoying researches to remember the 8086 BIOS interrupts... and the time you spend to convert ASCII or DECIMAL to hexadecimal...
    Anyway. Assembly is the fastest and best language to use the complete computer power!

  • @gourou_t
    @gourou_t 8 років тому

    I learnt how to perform ALP operations on Intel's 8085 and performed some operations too. It's amazing once you get the hang of it

  • @biggSHNDO
    @biggSHNDO 4 роки тому

    Wasn’t expecting the “not understanding what youre saying” guy to pop up at the end- that was a slick visual reference, made me feel some humour. Almost laughed. Pretty good.
    Thanks for the video- learning JavaScript, exploring the BASE basics.

  • @Phildouf
    @Phildouf 8 років тому +9

    Great stuff, Gary! Love the fact you're allowing AA to get "behind the scenes" of tech, to help us understand how it all works!

  • @DavidDeLuge
    @DavidDeLuge 8 років тому +5

    Great video! Very well explained and it takes me back to my microelectronics studies back in the 80s. Needless to say, I'm a developer today but writing SAP ABAP code these days. However, I've been inspired to get a Raspberry Pi 3 and start writing Python, PHP, and Java Script to make it do things.

  • @xceeder
    @xceeder 8 років тому +9

    another very informative video from Gary , I'll look forward to your next video....

  • @sishanmaharjan7759
    @sishanmaharjan7759 5 років тому

    great video :)
    Explains quiet well about the general concept over the types of the machine level language.

  • @oneminutefixed5003
    @oneminutefixed5003 8 років тому

    another awesome video, loving these series

  • @ihsanbob7573
    @ihsanbob7573 8 років тому +3

    I am studying this at my first year at CS
    nice stuff, keep these kinds of videos rolling

  • @elucidator1277
    @elucidator1277 8 років тому +16

    Even though I don't code, I did feel like I got a lot from this video...even as a layperson. Thanks Gary. :D

  • @MrInk113
    @MrInk113 8 років тому +3

    Very nice video! Looking forward to more like these!

  • @SangeetaGupta-ov3rq
    @SangeetaGupta-ov3rq 6 років тому

    thankyou so much,i searched everywhere meaning of bytecode in java but your video has completely cleared my doubt

  • @mikedugumquick3535
    @mikedugumquick3535 3 роки тому

    Thank you. I found this video to be enlightening. Moreso, I would love to learn more about building a computer random access memory. It would be amazing to find some helpful resources.

  • @brassj67
    @brassj67 4 роки тому +1

    I wrote machine code and assembly language on a Commodore PET back in 1980

  • @sandspatel
    @sandspatel 7 років тому

    Very clear, and fun way to put it across.

  • @manuelpena4547
    @manuelpena4547 8 років тому +46

    As a computer science student I can say it's a really good explanation. Btw, I have to say I hate assembly code lol

    • @GarySims
      @GarySims 8 років тому +4

      +Manuel Peña As someone who actually has a computer science degree I can say its a good explanation as well! :-)

    • @davidprock904
      @davidprock904 3 роки тому

      What im working on is more complex to make something happen, but at the same time easier to use

    • @JossinJax
      @JossinJax 3 роки тому

      Yeah in some instances i see the register on the right and the literal or variable on the left. Here, it's the opposite. What gives? Just diff. types of assembly?>

    • @manuelpena4547
      @manuelpena4547 3 роки тому

      @@JossinJax all assembly langs are quite similar but yeah, none of them are the same. Must be something about the assembly you use

    • @HarshYadav-yi7tv
      @HarshYadav-yi7tv 3 роки тому

      Same here bro

  • @growgrowing
    @growgrowing 7 років тому +1

    My brain has now restored to tabula rasa, but loved the explanation. Thank You. On to machine code

  • @tilakpatel1235
    @tilakpatel1235 3 роки тому

    Thank you! you made the whole concept very clear for me

  • @unlokia
    @unlokia 5 років тому +3

    Hello Gary. :)
    A minor correction, if I may: OPcodes, not "OPTcodes", since they're OPeration codes.
    Thank you for another stellar video, God bless you Sir.
    Matthew.

  • @pcuser80
    @pcuser80 7 років тому

    I have several own c programs running on my phone.
    All compiled with the NDK, first i was using a generic arm compiler but all programs have to statically linked. (huge file size)

  • @murugeshsurya-pb8ip
    @murugeshsurya-pb8ip 3 роки тому

    man your explanations are too good

  • @MrKeri1997
    @MrKeri1997 6 років тому

    I'm currently studying electrical engineering and in this semester I have a subject called Digital Technology 2 (yes there was one in the previous semester also) and we will be writing some assembly code. I'm kinda interested but at the same time I'm not looking forward to it too much.

  • @BastianHodapp
    @BastianHodapp 8 років тому +3

    Funny that you upload this right now - I just tried out 6502 coding for a university assignment last week :D

    • @aggbak1
      @aggbak1 8 років тому

      nes coding I presume?

    • @aggbak1
      @aggbak1 8 років тому

      can you help me out with that?

  • @parthaj33
    @parthaj33 8 років тому +3

    thanks about this intro its really clears my doubts as i am intermediate in programming

  • @leongyigan3429
    @leongyigan3429 5 років тому +2

    This is absolutely amazing !

  • @mohamadalikhani2665
    @mohamadalikhani2665 2 роки тому

    Complete and thorough. Keep it up👍🏻👍🏻

  • @ruhamabizuayehu710
    @ruhamabizuayehu710 3 роки тому

    its such amazing lecture please tell us more about assembly language

  • @danieldauber8335
    @danieldauber8335 8 років тому +2

    Love your explain videos, Gary. Great job!!

  • @erictko85
    @erictko85 5 років тому +1

    Thanks for the great explanation!

  • @broswirski4513
    @broswirski4513 8 років тому

    Gary is the best teacher!

  • @fernandogallardo3477
    @fernandogallardo3477 2 роки тому

    It’s cool to know that modern hardware works with twos complement since it is hardware friendly.

  • @adrianoldchannel2494
    @adrianoldchannel2494 6 років тому

    The best explanation so far.

  • @aryanrastogi45
    @aryanrastogi45 8 років тому +2

    nice stuff Gary and Android authority

  • @tommyhuffman7499
    @tommyhuffman7499 Рік тому

    I found your video, because I'm trying to make a decompiler to go from machine to Arm Assembly - not a full-scale project of course, just something to work with a very limited instruction set to play with.

  • @sexyshortdude95
    @sexyshortdude95 6 років тому +1

    Great video, very informative!

  • @lokeshsathiyamoorthi2070
    @lokeshsathiyamoorthi2070 6 років тому +1

    do very compiler convert our coding to assembly language and to binary codes??? please reply me

  • @ChrisToffer1
    @ChrisToffer1 8 років тому +2

    I've been using assembly for PIC microcontrollers, this gets realllyyyy lengthy, and hard to debug

  • @JoshuaDHarvey
    @JoshuaDHarvey 4 роки тому

    Thanks Gary, great video!

  • @PihkalTheTihkal
    @PihkalTheTihkal 8 років тому +39

    Back in the days (20 years ago) assembly was one of my favorite languages.
    Sure it was a lot of work to code in it but it was light and blazingly fast.
    I loved It!
    These days I'm more of a C kind of guy.
    Btw, great video Garry, you're the best content creator AA has!

    • @nyanator8110
      @nyanator8110 8 років тому +3

      ok

    • @JohnyPhate
      @JohnyPhate 8 років тому

      +Pihkal82 try TIS-100

    • @amihartz
      @amihartz 8 років тому

      +Pihkal82 Last time I used assembly was with those TI-83/84 graphing calculators only a couple years ago. Those things are really slow, so the only practical way of writing fast programs is in assembly (Z80 assembly), so I learned that and wrote a lot of nifty apps for it. Working so close to the hardware is quite fun, actually.

    • @Lidi-Rumbling
      @Lidi-Rumbling 8 років тому

      +Pihkal82
      I am learning C now but I hate the strings in C because its literally an array of chars...

    • @perimiter
      @perimiter 8 років тому

      +HeroPlane you can cheat a little and use # include

  • @Pleiadiaes
    @Pleiadiaes 6 років тому +1

    I don't have any programming skills, but I understood what you were explaining.

  • @minhngo9422
    @minhngo9422 8 років тому

    awesome explanation.... this does help me a lot.

  • @omsingharjit
    @omsingharjit 2 роки тому

    5:14 now it's makes sense to me Assembler is just newly Called complier both have same work but with different languages . Right ?

  • @devenmhatre8224
    @devenmhatre8224 3 роки тому

    Thanks, Nice explanation.
    Is Rust also like C, C++ which does not have something like JVM?

  • @fortunealaoma3799
    @fortunealaoma3799 2 роки тому

    Thank you very much! Very helpful

  • @Evgenij007
    @Evgenij007 5 років тому

    Does the Android Runtime compile Java code to machine code? Or does it compile it to .oat files and something else compiles the .oat file to machine code?

  • @muhaymin
    @muhaymin 8 років тому +4

    You are the true source of knowledge!

  • @murwaz
    @murwaz 8 років тому

    MenuetOS is written in Assembly language :) Pretty cool little OS, I tried it years ago, but as I'm not a developer I dont have use for such an OS, but I love testing new operating systems. :)

  • @danishvasta7742
    @danishvasta7742 8 років тому +2

    I enjoyed playing with assembly language throughout my engineering!

  • @ChiragNayyar91
    @ChiragNayyar91 8 років тому

    Awesome explanation

  • @Cyberdemon1985
    @Cyberdemon1985 3 роки тому

    I programmed with assembly language in college on on Vax back in 1986. 4 years later I took Data Structures which was heavy Borland Pascal programming. I hated assembly language too. lol

  • @montezeminor2854
    @montezeminor2854 3 роки тому

    I written some assembly language a longtime ago in college. Also C, C++.

  • @GeorgeKarayannis
    @GeorgeKarayannis 8 років тому +1

    Great video guys, so sharing

  • @jairodanielsantoscolindres9993

    Thank youu!! This video was so useful.

  • @andrewzuo86
    @andrewzuo86 8 років тому

    I like assembly. It may take a long time but you know what everything is doing. Not like some other languages that put random things like asterisks and ampersands everywhere. And then give you cryptic errors like 'segmentation fault' which leaves you to scour your entire file for a problem. It's like looking for a needle in a haystack.

  • @Doomerboss
    @Doomerboss 8 років тому +7

    I wish my professor would introduce us Assembly Language with a video like this back in college :D Nice video!

  • @akhilthakur2072
    @akhilthakur2072 6 років тому

    Hi Gary I do have basic knowledge of assembly and oops i want to take it to intermediate level..but not sure as I am working on servers..i want to pursue but assembly takes time... don't know what to do??

  • @AGRIMJAIN27
    @AGRIMJAIN27 8 років тому +4

    do more of these type👍

  • @kaustubh3d
    @kaustubh3d 8 років тому +2

    Aptly explained.... No simpler way to explain the difference between them..Good going

  • @jakec5618
    @jakec5618 Рік тому

    Is the assembler the same as a compiler ?
    Also, how exactly does it "translate" the assembly language into binary ?
    Thanks

  • @BoIoko
    @BoIoko 8 років тому +3

    Thanks mate, very informative

  • @IntoxicatedDriver
    @IntoxicatedDriver 4 роки тому

    Only few compilers generate machine code directly nowadays, as it is suggested at 5:00. The majority of compilers are just a kind of text-to-text translators, outputting assembly - which is then converted to machine code by an assembler, as part of the process to obtain an executable program. Commonly does a compiler have a switch for instructing it to keep that generated intermediate assembly source, rather than deleting it once the assembler is finished with it.

  • @aniketdubey8362
    @aniketdubey8362 7 років тому

    is there still any programs(famous) that use assembly language

  • @3rdwiki
    @3rdwiki 8 років тому

    I heard Rollercoaster Tycoon was written in assembly. Any thoughts on that ?
    Also, How high is high ? Is there a way to gage proficiency ?
    I'd like to do something in Lisp. But just because RMS says it's the god language , no other reason.
    Perhaps you could tell me how high Lisp is in the code ladder ?
    Also if it's possible, I'd like to hear a video on Lisp, too.

  • @georgeross7145
    @georgeross7145 8 років тому

    Looong ago I had to learn to program an IBM 360 machine with Fortran. This was just as Fortran 4 was coming out. I haven't bothered with it since so your update was refreshing. You mentioned lo-levels, right?
    How do "hackers" send virus'? Which language do they use?

  • @EHCBunny4real
    @EHCBunny4real 8 років тому +3

    In the 70's machine language and assembler was the first computer languages I programmed with. I had to use keypunch. If you did not number each card and accidentally dropped your stack you would have major problems.

    • @davidmcbenge9370
      @davidmcbenge9370 8 років тому +1

      +EH CBunny Or if you had one stuck, you had to clean the machine and hope you had everything put back correctly. I used to work on Fortran and Cobalt before DOS 2.0-6.0, I think, then I went to 3.2 word or easy, the Windows 95 and so on. Most of what I knew very well then doe's not apply now, but I have a better base understanding than most programmers today.

    • @EHCBunny4real
      @EHCBunny4real 8 років тому +1

      I worked in network design and in the 90's I had to convince many corporations it's time to let go of the past and move on to IP networking. When one group removed their mainframe they replaced it with a corporate swimming pool

  • @ThereWillBeCake
    @ThereWillBeCake 7 років тому

    Cheers for a great video.

  • @janmichaelbesinga3867
    @janmichaelbesinga3867 3 роки тому +1

    he nailed the intro xD laughed so hard at it.

  • @devgr89
    @devgr89 7 років тому

    While producing the machine code does compiler itself make sure that it's creating proper instruction set (32 or 64 bit) consisting of op-code and operand?

    • @freecrac
      @freecrac 6 років тому +1

      Yes and the BITS directive (BITS 16 , BITS 32 , or BITS 64) specifies whether the assembler should generate code designed to run on a processor operating in 16-bit mode, 32-bit mode, or 64-bit mode.
      Intel 80386+
      A closer look to the possible sorts of bytes of one instruction:
      Instruction Prefix 0 or 1 Byte
      Address-Size Prefix 0 or 1 Byte
      Operand-Size Prefix 0 or 1 Byte
      Segment Prefix 0 or 1 Byte
      Opcode 1 or 2 Byte
      Mod R/M 0 or 1 Byte
      SIB, Scale Index Base (386+) 0 or 1 Byte
      Displacement 0, 1, 2 or 4 Byte (4 only 386+)
      Immediate 0, 1, 2 or 4 Byte (4 only 386+)
      Format of Postbyte(Mod R/M from Intel-manual)
      ------------------------------------------
      MM RRR MMM
      MM - Memory addressing mode
      RRR - Register operand address
      MMM - Memory operand address
      RRR Register Names
      Filds 8bit 16bit 32bit
      000 AL AX EAX
      001 CL CX ECX
      010 DL DX EDX
      011 Bl BX EBX
      100 AH SP ESP
      101 CH BP EBP
      110 DH SI ESI
      111 BH DI EDI
      ---
      (Note: We observe the next two tables from the 16 bit address mode. The D flag in the code-segment descriptor is not set. The default size of memory access and the operand size (without size prefixes) is 16 bit.)
      16bit memory (No 32 bit memory address prefix)
      MMM Default MM Field
      Field Sreg 00 01 10 11=MMM is reg
      000 DS [BX+SI] [BX+SI+o8] [BX+SI+o16]
      001 DS [BX+DI] [BX+DI+o8] [BX+DI+o16]
      010 SS [BP+SI] [BP+SI+o8] [BP+SI+o16]
      011 SS [BP+DI] [BP+DI+o8] [BP+DI+o16]
      100 DS [SI] [SI+o8] [SI+o16]
      101 DS [DI] [DI+o8] [SI+o16]
      110 SS [o16] [BP+o8] [BP+o16]
      111 DS [BX] [BX+o8] [BX+o16]
      Note: MMM=110,MM=0 Default Sreg is DS !!!!
      32bit memory (Has 67h 32 bit memory address prefix)
      MMM Default MM Field
      Field Sreg 00 01 10 11=MMM is reg
      000 DS [EAX] [EAX+o8] [EAX+o32]
      001 DS [ECX] [ECX+o8] [ECX+o32]
      010 DS [EDX] [EDX+o8] [EDX+o32]
      011 DS [EBX] [EBX+o8] [EBX+o32]
      100 SIB [SIB] [SIB+o8] [SIB+o32]
      101 SS [o32] [EBP+o8] [EBP+o32]
      110 DS [ESI] [ESI+o8] [ESI+o32]
      111 DS [EDI] [EDI+o8] [EDI+o32]
      Note: MMM=110,MM=0 Default Sreg is DS !!!!
      ---
      SIB is (Scale/Base/Index)
      SS BBB III
      Note: SIB address calculated as:
      =+*(2^(Scale))
      Fild Default Base
      BBB Sreg Register Note
      000 DS EAX
      001 DS ECX
      010 DS EDX
      011 DS EBX
      100 SS ESP
      101 DS o32 if MM=00 (Postbyte)
      SS EBP if MM00 (Postbyte)
      110 SS ESI
      111 DS EDI
      Fild Index
      III register Note
      000 EAX
      001 ECX
      010 EDX
      011 EBX
      100 never Index SS can be 00
      101 EBP
      110 ESI
      111 EDI
      Fild Scale coefficient
      SS =2^(SS)
      00 1
      01 2
      10 4
      11 8

  • @mehdizeynalov1062
    @mehdizeynalov1062 2 місяці тому

    super video - thank you.

  • @tholok97
    @tholok97 7 років тому

    Well explained thank you :)

  • @neotank874
    @neotank874 5 років тому

    Thank You very much sir...

  • @b33tr00ts
    @b33tr00ts 7 років тому

    Great video mate

  • @chriscat868
    @chriscat868 8 років тому +1

    Thank you!

  • @davidprock904
    @davidprock904 3 роки тому +1

    I have been off and on developing an assembly language and the boolean logic gate setup to match, mine is not like the Harvard or Von Newman, one person described it as a Wetware and another person said it's like a Virtualized Wetware.
    I say it is extremely wasteful on the level of logic gates being used, and in a regard to security is absolutely horrible (but that can be worked on later)
    And those are its only flaws,, but the power and capabilities it gives you is insane,
    It would (someday maybe) be the last architecture design ever needed to be made.
    Here is a comparison to a regular computer giving you maybe an idea of the unimaginable capability.
    Just say your running an extremely intensive number crunching application. With a regular computer your stuck with the core and thread count that you have.
    My design it is theoretically unlimited but let's shape it up to a regular computer, while running this intensive number crunching. During that time let's say your not making use of the internet (your network) or your mouse or speakers, you could write new code or change current code to disable those external devices to give yourself an extra level of simultaneous parallel internal communication AKA more threads/cores.

  • @perimiter
    @perimiter 8 років тому

    I am doing a course on 80x86 processor assembly right now.

  • @pheachan2622
    @pheachan2622 4 роки тому

    Good Explanation

  • @michielappeldoorn3657
    @michielappeldoorn3657 8 років тому

    where can I start if I want to learn basic coding?

  • @Tonypec1974
    @Tonypec1974 7 років тому +1

    Assembly language. Not assembly instruction set. Cause assembly instruction set are exactly the set of instruction used to create a program written in assembly language

  • @parkerjohn2459
    @parkerjohn2459 8 років тому +1

    Very nice video.