TIMESTAMPS 1:16 - writing a "Hello, World" program 4:07 - input and output a character 7:17 - registers and how they work 10:06 - ascii table & output a character 14:51- how to define data and use variables 18:14 - MOV instruction 21:35 - moving smaller value into larger register (e.g. moving 8-bit value to 16-bit register) 25:38 - INC and DEC instructions 29:03 - ADD and SUB instructions 33:08 - NEG instruction 38:27 - status flags 46:31 - JMP instruction 51:28 - LOOP instruction 55:43 - nested loops 1:05:08 - PUSH and POP instructions 1:10:29 - PUSHF, POPF, PUSHFD, and POPFD instructions 1:13:15 - PUSHA, POPA, PUSHAD, and POPAD instructions 1:18:31 - defining and using procedures 1:26:28 - nested procedure calls 1:32:38 - AND instruction 1:38:31 - OR instruction 1:42:46 - XOR instruction 1:49:00 - NAND instruction 1:51:57 - TEST instruction 1:56:00 - CMP instruction 2:01:32 - conditional jumps based on status flags 2:11:14 - conditional jumps based on equality 2:21:51 - jumps based on unsigned comparisons 2:37:55 - LOOPZ instruction 2:42:53 - LOOPE instruction 2:47:07 - SHL instruction 2:53:29 - SHR instruction 2:47:41 - SAL instruction 3:01:17 - SAR instruction 3:05:06 - MUL instruction 3:12:14 - DIV instruction 3:19:53 - program that prints sum of two numbers inputted by user (single digit only) 3:33:24 - ADC instruction 3:41:39 - SBB instruction 3:46:30 - AAA instruction
@khurramshabir70005 жыл бұрын
did you just watch video to comment this????if yes then wow! great job......keep it up....the world needs you
@dmo28034 жыл бұрын
Greatly appreciated
@malikwajahat17864 жыл бұрын
quite helpful
@DionisiosML4 жыл бұрын
SAL instruction pointer was set wrong
@saboormalik7914 жыл бұрын
did you just watch video to comment this????if yes then wow! great job......keep it up....the world needs you
@elonmuskgaming97463 жыл бұрын
I admire the people who managed to learn assembly back in the 20th century when tutors were ridiculously expensive and the internet wasn’t at anyone’s disposal.
@zeektm17623 жыл бұрын
Assembly being made in the 1940s/1950s was not that long of a time before C and its precursors arrived. Assembly is very difficult to manage and write when you have to deal with the needs of modern programs. The C language was used in the late 1960s and most programmers in the 1980s at least from my experience were using higher level languages than assembly for most tasks
@punkgrl3253 жыл бұрын
@@zeektm1762 Yep. BASIC got pretty popular by the mid-70s to well throughout the 80s when C++ was born.
@stavros2222 жыл бұрын
knowing another programming languages make assembly harder because you are expecting this language to be like every programming language but its even harder assembly is more strict than other languages and its not simple
@VoidHalo Жыл бұрын
There was plenty of documentation for computers, processors and chips back then. Look up the datasheet for the 8086 and you'll see an example of what was, and still is used by people to learn this stuff. Nobody serious about this learns JUST from KZbin videos. They make fine supplements, but ideally you would watch (or attend) lectures on computer science, specifically cpu architecture, read textbooks on the same, and read all the documentation you can get your hands on inside and out. Anything you don't understand, look it up, at least in modern times. Back then, if you didn't understand something, you would ask a professor, a TA, or if you're not in academia, like myself, look up alternative resources and read about the same thing, but explained in a different way. THIS is where KZbin videos are most useful. You can only include so much information in a video, but there's no limit to the amount of information you can include in reference/academic material. And if you really want to learn about it, and understand it as intuitively and intimately as possible, an abundance of information should be a good thing. Although, having ADHD myself, I totally understand how it can be overwhelming. I still have issues with that, but if you just take your time and be persistant, you'll really start surprising yourself at what you can understand and do. In this video, he uses an 8086 emulator called Emu8086 (of all things!). It's a very useful tool for learning 8086 assembly, as well as learning about how 8086 based computers worked. I'm sure you saw a decent amount of what it can do in the video. Unfortunately it's not free, but I believe there is a 30 day trial available. And it doesn't cost much more than $20 or $30, I think. Or it's floating around Bit Torrent, if you're a bit less scrupulous. =P. Whether you're using the emulator, or just following along with the video, the 190 page help file is extremely useful, and packed with information. Though if you're completely new to assembly/programming, it may be difficult to follow. I remember having trouble with it some years ago when I first started. Best of luck to you! www.philadelphia.edu.jo/academics/qhamarsheh/uploads/emu8086.pdf
@TON-vz3pe4 жыл бұрын
After just watching this for 5 minutes. This is going to end up permanently in my saved list of favourites.
@YahyaLZ3 жыл бұрын
😂😂 1:41 min record
@Anime_Seeking2 жыл бұрын
Everything is saved fav list but when we learn 🤷
@platinoob__24954 жыл бұрын
in 1:18:31, a way to make the procedure run only once is : above "main" make a label, then at the start of the ".code" write : "jmb [name of the label]" and define all the procedures you want to define above "main"
@akram_exe10 ай бұрын
write it outside main as global procedure or creare a condition cmp a , 1 ; jne procedure ; smthg like that
@parthokr3 жыл бұрын
Finally a video that covers my course
@agiimaaunurtsolmon115 Жыл бұрын
Thank you so much, i thought i wouldn't pass my class, but now i understand everything
@SUMMedia3 жыл бұрын
Thanks for this video man. Really appreciate your effort. I have been learning(+practicing it on my own) many things from this video alone for the last two days. I can't really thank you enough for your effort. Jazakallah Khair (May God reward you goodness)
@jijirimijiri3 жыл бұрын
10/10 gg man u helped a lot i recomment this video if u are looking at the comments and be like i cant watch 3 hours its totally worth it
@Salfke5 жыл бұрын
Wow i searched for a long time and finally found your great tutorials for assambly thanks.. Very usefull to start understanding it
@SphereofTime2 ай бұрын
36:47 love this video so much! A lot of practical exercises ❤❤
@SphereofTime2 ай бұрын
48:36 top: jump instruction 555555555555?
@oguzhancevik43393 жыл бұрын
Bro, you are the only one who teaches that in English I guess. Every introduction I saw was Hindi or English(Hindi accent). Thank you for doing that.
@Filipkasic3 жыл бұрын
I do not know why but I keep coming back here. Assembly is fun!
@uelpalmer97473 жыл бұрын
yooo I have some much respect for you guys that do assembly
@lutaayageoffrey23572 жыл бұрын
Am really so grateful to have found this whole tutorial about assembly language, i have really learnt alot in a short time; you are really good at teaching this; thank you so much for sharing that information which is just simplified; may the good Lord bless you. Otherwise i have a question and have failed to go about it: Write an assembly program that prompts a user to enter and initialize 10 numbers and determine their, average, range and variance; i will be really greatful.
@pankajansatkunam76785 жыл бұрын
thank you very much sir. I can now understand easily.
@jkpawar00825 жыл бұрын
Thanks man!! I am looking for this . You are the only one who made a video on this ..!! Thank God bless you 😇
@shivam44284 жыл бұрын
hey rasim i saw your x_86 earlier videos .is there any difference between this full course and that 55 videos playlist
@vishvapatel36415 жыл бұрын
Great demonstration for novice learner of AL
@nitingovil3914 жыл бұрын
1. Two numbers C1 and C2 are stored in memory. The operation between these numbers is dictated by the bits 5 and 6 of another number C3. The possible two cases are (a) If bit 5 of C3 =1 and bit 6 =0, then C1 = (C1 AND C2) OR F0 H C2 = (C1 XOR C2) AND F0 H (b) If bit 5 =0 and bit 6 =0, then C1= (C1 AND 07 H) OR C2 C2 = (C2 OR 90 H) XOR 50 H Otherwise-No operation. Develop a program. Helo please sir!
@gabrielanica46963 жыл бұрын
best tutorial for assembly
@williamstewart14902 жыл бұрын
The link to the EMU8086 is broken.
@ahmedbashein74442 жыл бұрын
You are amazing masha'allah Thank you for saving me for my finals ❤❤❤
@silentmonk73385 жыл бұрын
Please what's the difference between this tutorial video and the video playlist tutorial of Assembly Language for x86 Provessors" (Sixth Edition) by Kip R. Irvine? Thanks in advance
@grazingrockproductinformat26874 жыл бұрын
In your explanation of je/jne you are saying the difference to jz/jnz is that the equality jumps don't look at status codes, just equality? That's definitely incorrect - there is NO difference between jz and je, as there is no difference between jne and jnz; both pairs translate to the same binary opcode - je and jz are literally the same. Consequently, there is no difference between them. The different mnemonics only serve the purpose to make your human-readable program easier to emphasize the purpose in the respective context. The CPU doesn't care, since it cannot even see a difference between jz and je.
@bungarenda59192 жыл бұрын
My head's scalp temperature got a local warming.. by 50 degrees Celsius.. 😭
@cobbrobotics8 ай бұрын
Excellent clear instruction. Thank you!
@stavros2222 жыл бұрын
i was very confused thats a very helpful video thx
@ahmedmego834 жыл бұрын
thank u , respect from egypt
@gcxs3 жыл бұрын
you guys ever think "fuck this im learning assembly"
@philipmwangi52705 жыл бұрын
hey can you create a program tutorial on how to create a converter of a decimal to any other base like hexadecimal, binary or octa
@grazingrockproductinformat26874 жыл бұрын
Hexadecimal to binary? you're joking, aren't you? A hex digit is a complete representatio of 4 binary digits - so converting between those 2 should be no effort, should it? For the more generic case of radix x (x=10 or whatever else), I suggest reading up on Horner's method - essentially, continuously dividing by the desired radix, which gives you a remainder (the "digit") and the quotient (which you use to continue to divide)
@dingdong30213 жыл бұрын
@@grazingrockproductinformat2687 oh shut up.
@bitley4 жыл бұрын
This is great. And you can say your name faster than anyone on the planet. Greetings from Sweden. :-)
@breveganlyfe3 жыл бұрын
Awesome! But Where is the sample code for this video?
@jakecastle28085 жыл бұрын
Awesome, need this for microprocessor class.
@danieloniha75815 жыл бұрын
Pls can someone help out, programs that deal with 32bit regisers aren't working. Is there a special way to do so
@shakurmahmood34145 жыл бұрын
good teacher. your teaching process seems like you have completed your post doctoral degree.
@sejaldahake27453 жыл бұрын
EMU link doesn't work anymore. Any alternative?
@anuragparcha44833 жыл бұрын
Did you find any alternative?
@jumbo9996143 жыл бұрын
17:22 I get weird character when I start using variable no matter what Hex or Dec is added to the variable.
@bellibear72404 жыл бұрын
Keep up the GREAT work!
@skilz80985 жыл бұрын
very nice set of tutorials
@shoppingplace5 жыл бұрын
brilliant tutorial I learnt a lot from your video
@nitishkumaryadav22845 жыл бұрын
Upload more videos on different papers bro,,, your video was fantastic...
@manit11844 жыл бұрын
could you tell me how to delete character from a string in assembly please?
@yrkhan76453 жыл бұрын
how can we implement the math library for finding some trigonometric functions like sin, cos, tan in assembly language???????
@thewanderer99813 жыл бұрын
Hello there, great course! Are you by some chance from Balkan? If yes than hvala puno na ovome, nastavite sa dobrim radom!
@user-mu9tq3ml1f3 жыл бұрын
Verovatno nije
@thewanderer99813 жыл бұрын
@@user-mu9tq3ml1f Po prezimenu mi djeluje kao da je sa nasih prostora... Uzgred cudi me da ima nasih ljudi koji zapravo prate ovo :)
@forensictiger63624 жыл бұрын
emu8086 is no longer for purchase, is there any others similar out there?
@sergiutacu66025 жыл бұрын
Golden tutorial! Thx
@reactdev1014 жыл бұрын
if you make a tutorial in assembly, first you have to write in the description FOR WHAT PROCESSOR this assembly is going to be.!!!
@thebarnold72344 жыл бұрын
If you learn one assembly language its easy to pick up another.
@wilbertraymundrayos41754 жыл бұрын
How do you perform input and operation in more than 1 digit number? For example, 50-20. Or ask the user to enter 2 digit number??
@Xyklonikus4 жыл бұрын
Nice one mate. In the hello world would you do lea dx, message instead of mov dx, offset message?
@meysor62043 жыл бұрын
I would, [lea dx, message] is pretty much the same as [mov dx, offset message]. LEA means load effective address which means you are loading or moving or technically "copying" the base+offset (address) of the variable named message going to DX. Invoking service 9+int 21h will instruct the computer to keep printing out the characters in your variable message one at a time until it encounters the "$" which is the marker to stop.
@UNIPIXEL5 жыл бұрын
is that what you call explain? I literally don't understand anything
@bitley4 жыл бұрын
UNIPIXEL Hey You pick some info here and some info there. There are no shortcuts in life.
@yassineaitphone532110 ай бұрын
I bet you hire teachers, what a failure when u dont study but they teach you instead.
@rogerh26943 ай бұрын
I should use this strat for not understanding.
@amarabd18884 жыл бұрын
Hi friend do u have book that explain the essenyial of these lecture then move step by step
@deathdefier452 жыл бұрын
You're a hero for me bro
@strounder15 жыл бұрын
omfgggggggg broooooo realllyyyyy thankssss this are the best tutorials !!!!!!!!
@Habesha_Today2 жыл бұрын
bro your are life saviour....respect & much love 😊😊
@gamalmothersil96834 жыл бұрын
How can you register by entering a key if it is free. where would that key come from.
@NoNaM3Zz5 жыл бұрын
Did you explain anything about arrays and I skiped it or i'm blind? Please need help for that ... 0.o
@tigerf55434 жыл бұрын
Best explanation ever appreciate the effort 👍🏻👍🏻1000% recommended
@CodeAndCourse2 жыл бұрын
thank you for this video
@felicitymae96772 жыл бұрын
Sir can I ask? How to program to display a greetings (like good morning, good afternoon or good evening) depending on the current system time?
@felicitymae96772 жыл бұрын
@DARK BGM no need, I made it by myself without searching. 😊 mov ah, 2ch and I get the address of ch then mov al, ch then I used cmp instruction like this ----> cmp al, 12 jl morning jge afternoon cmp al, 17 jle afternoon jg evening 😊😊😊
@elikplimprecious94265 жыл бұрын
Thank you so much and God bless you
@marlonragusta33634 жыл бұрын
Hello love ur vids ,,umm have u done serial communication with assembly and arduino uno?
@marlonragusta33634 жыл бұрын
I have done it but the only thing i got right now is to send char from pc to arduino uno using assembly,,i was wondering how is the process of let say in reverse the pc will be the one to recieved the char not the arduino
@joaquimjesus61344 жыл бұрын
i have 1 question key: why there are several versions of Assembly? i'm not speaking about CPU or OS... but some use ';' for comments and others use '#'... and some use '$' for use the register names and more differences that i have seen.
@mihirkohli48044 жыл бұрын
because every cpu use to code differently
@joaquimjesus61344 жыл бұрын
@@mihirkohli4804 thanks for correct me
@grazingrockproductinformat26874 жыл бұрын
because there are different manufacturers of assemblers (=translation programs of assembly language to binary). Some differences are small (which character is used for comments, for example), other difference can be sizable - Intel notation for the x86 assembler has exactly the opposite data flow direction of AT&T assembler for the exact same CPU, so both translate to the same binary code. Essentially, the answer is the same as in all cases of "why do they use a different language?" - because they can.
@joaquimjesus61344 жыл бұрын
@@grazingrockproductinformat2687 so for we program Assembler we must see if we use: - Windows or Linux; - if CPU is X86 or 32 or 64 bits(on 64 or 32 can we use the X86 code?); - and if is Intel or AMD.. right?
@grazingrockproductinformat26874 жыл бұрын
@@joaquimjesus6134 All of that is important - but none of that makes the choice of assembler language representation. You can use Intel notation on Linux or on Windows, for x86 or x64. You can also use AT&T notation on Windows or Linux, for x86 or x64. Whether for AMD chips or Intel chips, that is fairly irrelevant - but the capabilities of the specific chip you are running on, THAT makes a huge difference. For example, 64-bit-mode requires a x64 CPU (either Intel or AMD), 32 bit mode requires that your operating system allows you to run in 32-bit mode (especially when it's a x64 CPU). There is a whole bunch of instruction set "extensions" such as SSE, AVX, AVX2, AVX512, BMI and so on - before you use any instruction contained in such instruction set, you must ask the CPU if it supports those extensions (the manuals of AMD as well as Intel have quite a lengthy section about how to do that). But again - none of the is related to the original question of why there are different versions of assembly language representation - for ALL of that stuff, any assembler manufacturer can make up their own way of writing it...
@paulosgher92463 жыл бұрын
Write a program to compute sum of two numbers taken from keyboard [use procedure] ????
@MURTYPHYSICSVIDEOS3 жыл бұрын
Nice explanation. Topics are explained are very clear. Thank you.
@Alex-rv8gw4 жыл бұрын
what is dosbox ???
@evgenyland44484 жыл бұрын
thank you very much, it's very useful, world needs you)
@vratk05295 жыл бұрын
I have got a big problem here is my code: .model small .data count1 db 2 .code main proc mov dl, count1 add dl, 48 mov ah, 2h int 21h endp end main and the output of this is: "ř"
@isableye71645 жыл бұрын
I run your program in my emulator it's printing 2 as usual. I think you've been mistaken from the small fonts in terminal screen.
@deedewald17073 жыл бұрын
Try main endp end main as the last two lines hope to help
@TheREALDocRabbit2 ай бұрын
This will fix your problem, it offsets starting position of program to allow room for your variable. ORG 100h .model small .data count1 DB 2 .code main proc mov dl,count1 add dl,48 mov ah, 2h int 21h endp end main
@mansour13142 жыл бұрын
Thank you man you are the best
@patrickslomian74234 жыл бұрын
I m glad your left the source code to the hello world program!! Any Copyrights ^^ !!??
@manormasharma25174 жыл бұрын
Very useful and great tutorial... Thanks
@amitsinghrawat_asr5 жыл бұрын
Thanks....it's very helpful 🙂✌🏻
@rasmurtech5 жыл бұрын
No problem. I’m glad you enjoyed the video.
@__hannibaalbarca__2 жыл бұрын
I like Asm for doing imaginary and Ghort program; like :: Resident Prog;
@HIPpsychodrama07HOP3 жыл бұрын
How can I make this into logical function in assembly ?? Can anyone help me? F = (S1 and S2) or S3 .
@kofifreddie61103 жыл бұрын
I honestly need help in writing a code for a toaster device using assembly language.
@RobzOcampoChannel3 жыл бұрын
I cannot find the software.
@williamweidner54253 жыл бұрын
Question: I seem to have compiler errors at 1:18:31, when trying to move values into each of the 32 bit registers. I keep getting an error that the syntax is wrong. is there something I need to change before this so that I can move values into 32 bit registers?
@johnathan41852 жыл бұрын
same man, managed to figure of the correct syntax? eax does not work.
@Theo005-k5e2 жыл бұрын
i think you need to use protected mode
@johnathan41852 жыл бұрын
@@Theo005-k5e na, it was cos emu doesnt run on 32 bit registers.
@haroldcruz85502 жыл бұрын
emu8086 is an emulator for 8086 microprocessor, 8086 microprocessor is 16bit.
@footprint_5942 жыл бұрын
Yes, I love it, THANK YOU!!!!!
@zelevans49373 жыл бұрын
thank you sir! regards from PH!
@py10playz823 жыл бұрын
Pinoy ka din
@hayjaydee8735 жыл бұрын
Please more this is so awesome
@persistent-programmer3 жыл бұрын
some of the links dont work
@anuragparcha44833 жыл бұрын
Did you find any alternative?
@persistent-programmer3 жыл бұрын
@@anuragparcha4483 tutorials-point
@nikolaboskovic87995 жыл бұрын
Hvala ti puno kralju
@easygoingguy7720 Жыл бұрын
I am using Ubuntu, how do I get it working on it
@silenthill83122 жыл бұрын
Thank you
@niektuytel95194 жыл бұрын
is asm still a reall job if so is there a lot of work in it?
@pathansharukhkhan27714 жыл бұрын
sir I need that application to install in my Android.. Please update the application link.. It says the link doesn't work anymore...
@LUKAS-bb4jc4 жыл бұрын
I just put the link he entered in the wayback machine to get the software
@vennuvamshikar67665 жыл бұрын
heyy!! I'm unable to download emu 8086 .will u please provide another link
@khurramshabir70005 жыл бұрын
go to softonic.com search for emu8086.
@agentstona Жыл бұрын
the emu8086 emulator link expired and the site is no more ........ can you share the version you have on your pc please ..........every where else the files are tainted
@aayankasana27125 жыл бұрын
Thank you so much sir for this tutorial :)
@saeemi2 жыл бұрын
Why i learn assembly??
@1skyfallc4 жыл бұрын
На моем канале есть подробное видео про ввод и вывод в ассемблере, в том видео я рассмотрел задачу ввода двух шестнадцатеричных чисел и вывода их в двоичном виде. Рекомендую ознакомиться!!!
@666intuition2 жыл бұрын
Really cool vid!
@JosskoL3 жыл бұрын
my heart dropped when the first video ended I did not expect that HAHA (also 200th comment)
@niektuytel95194 жыл бұрын
nice tutorial still even if it was from 2013 ;)
@umarkhayyam38453 жыл бұрын
how to print the value of cx
@ryarod4 жыл бұрын
I went to the suggested web address, and it took me to some French game emulator site. As for the link you provide in your description, it's a Dropbox page saying "This link doesn't work anymore." I concede nobody likes a whiner, but I'd really like to have gotten into this. Any chance you could update this for us newbie peasants?
@UAE1VTC3 жыл бұрын
have you worked out a way around this ?
@pale_gray74753 жыл бұрын
How do I get a registration code?
@awangprajaanugerah82312 жыл бұрын
What's the book title in 16:38 minutes
@Tech-Savvy00703 жыл бұрын
Great work ur legend 🙌 thanks 🙏
@Chris-nq3ri3 жыл бұрын
For loop 48:30? Like other languages
@justins77964 жыл бұрын
i ended up playing pokemon fire red on that link to emu