x86 Assembly Crash Course

  Рет қаралды 847,904

HackUCF

HackUCF

Күн бұрын

Пікірлер: 788
@jamiestwrt
@jamiestwrt 4 жыл бұрын
So much jargon holy crap man do any of u nerds speak english?
@ntsystem
@ntsystem 3 жыл бұрын
This is 1000 of google searches simplified and compressed to 11 minutes. Thank you!
@sp3ct3r71
@sp3ct3r71 3 жыл бұрын
damn yes🔥🔥
@Brahvim
@Brahvim 2 жыл бұрын
Exactly! This is exactly what it felt like for me! ...moreover, he explained VERY well!
@thediesel3336
@thediesel3336 2 жыл бұрын
said a whole lot of nothing
@BryanChance
@BryanChance Жыл бұрын
Hell ya! Holy smokes, this 11 minute video help me make sense of things I've learned from other assembly videos.
@kentheengineer592
@kentheengineer592 Жыл бұрын
For Me It's About 50 Google Searches
@piiumlkj6497
@piiumlkj6497 6 жыл бұрын
If you can read assembly everything is Open Source !
@obinator9065
@obinator9065 6 жыл бұрын
Yeah well, if you like to read through 10 times the loc's of the original project in a particular language ;D
@Engineer9736
@Engineer9736 5 жыл бұрын
And if you can bruteforce a 512 bit encryption key by looking at it then all doors are open. Pretty much the same statement.
@hereb4theend
@hereb4theend 5 жыл бұрын
When I look at instruction sets all I see is redheads, brunettes and blondes 😜
@TheDailyMemesShow
@TheDailyMemesShow 5 жыл бұрын
@@hereb4theend Nice try, Cypher! 😂
@XadaTen
@XadaTen 5 жыл бұрын
@@Engineer9736 Eventually those encrypted instructions will need to be loaded into memory in an unencrypted state to be ran by the CPU, from which you could then dump the memory, retrieve the machine instructions, convert to assembly, then convert to a higher level language (to varying degrees of success). It just wont end up in much of a readable state, but you'll have it! haha
@chris0234
@chris0234 5 жыл бұрын
the only video I ever watched at 0.75x. Absolutely fantastic. (80% of explainer videos have to be watched at 1.5x)
@DL_GLCH
@DL_GLCH 3 жыл бұрын
For those who might find it useful, this is the transcription of the video (I wrote it to memorize better and to check it whenever I want): Compilers read the .c file and convert the code into a sequence of operations: each operation is comprised of a sequence of bytes: operation code or opcode. The instructions executed by reading opcodes is impossible, so Assembly translate these instructions into a human-readable language. ELEMENTS OF AN EXECUTABLE: Every C program has 4 main components: heap, stack, registers and instructions. The two main architectures that dictate how a program is compiled and executed are 32-bit and 64-bit architectures. The heap: The heap is an area in memory designed for the purpose of manual memory allocation. The inner workings of the heap are incredibly complicated. Memory is allocated on the heap whenever functions as malloc and calloc are called or global or static variables are declared. Registers: Registers are small storage areas in the processor, used to store memory addresses, values or anything that can be represented with eight bytes or less. In the x86 architecture there are six general-purpose registers: EAX, EBX, ECX, EDX, ESI and EDI, generally used on an as-needed basis. There are also three registers reserved for specific purposes: EBP, ESP and EIP. The stack: The stack is a data structure comprised with elements added and removed with two operations, push and pop: push adds an element at the top of the stack and pop removes the top element from the stack. Each element on the stack is assigned to stack address: elements higher on the stack have a lower address than those on the bottom, so the stack grows towards lower memory addresses. When a function is called, that function is set up with what is called a stack frame: all local variables for that function will be stored in that function stack frame. The EBP register, also known as the base pointer, contains the address of the base of the current stack frame, and the ESP register (stack pointer) contains the address of the top element of the current stack frame. The space between these two registers make up the stack frame of the function currently called. All the stack addresses outside are considered to be junked by the compiler. Let's take for example a function that takes one variable as a parameter and declares two local integers like that: void func(int x){ int a = 0; int b = x; } First the value of the argument is pushed onto the stack, then the return address of the function is pushed onto the stack. The return address is the four byte address of the instruction executed when the function has gone out of scope, then the base pointer is pushed onto the stack, then the stack pointer is given the value of the base pointer and finally the stack pointer is decremented to make room for the local variables. The number of bytes that the stack pointer is decremented by may vary depending on the compiler. All the space in memory between the stack and the base pointer is the function stack frame: this sequence of instructions is the function prologue, performed when a function is called. Since "a" is initialized to 0, the value will be moved into the memory address 4 bytes below the base pointer because an integer is 4 bytes, so the local variable is now a location EBP -4. The value of a function argument is stored 8 bytes above the base pointer, which is not in the function stack frame. Values of the stack cannot be moved directly to another location on the stack, so general-purpose registers come in: the value of the argument to the function must first be copied into one of these, then the value is moved into the memory address 4 bytes below the first variable and eight bytes below the base pointer. Both of the local variables have been now initialized and can be used later. There are two syntaxes that Assembly is normally written in: AT&T and Intel. The instructions are the same. We use the Intel syntax. Every instruction has two parts: operation and arguments: operation can take either one or two arguments: if an operation take two arguments they're separated by a comma. The mov instruction takes two arguments and copies the value of the second one in the location referred by the first one. But, if for example we want to move a local variable (stored at EBP -8) on the stack into the EAX register, if the command were to read "move EAX, EBP -0x8" this would not copy the value of the variable into the register, because EBP -8 is the address on the stack where the variable is located, so instead the instruction would copy the address if the variable into the register. To copy the actual value or what EBP -8 is pointing to we use "[]" (like the dereference operator in C): when they're used the value being pointed to is referenced. The add instruction takes two arguments: it adds their values and stores the result in the first one. For example, if eax has the value of 10, "add eax, 0x5" updates the value of eax to 15. The sub instruction works the same way, but the value of the second argument is subtracted from the first. The push instruction places its operand on the top of the stack: it first decrements the stack pointer and then places its operand in the location that it points to. The pop instruction takes a register as an argument, moves the top element of the stack into that register and then increments the stack pointer. The lea instruction (load effective adrress) places the address specified by its second operand into the register specified by the first one. It's usually used for obtaining a pointer into a memory region. The control flow of an executable is where all of the if statements and loops in the code come together to determine the order in which instructions are executed. Every instruction has an address: this is the area in memory where the instruction is stored. The EIP register always contains the address of the instruction that is currently being executed, so the computer executed whatever the instruction pointer is pointing to and then the instruction pointer will be moved to the next one. The compare instruction is an equivalent of the sub one, but instead of storing the result into the first argument it will set a flag in the processor that contains the value 0, greater than 0 or less than 0. For example, "cmp 1, 3" subtracts 3 from 1 and since -2 is less than 0 the flag will be set accordingly. Compare instructions are followed by a jump instruction: it takes an instruction address as its argument, checks the current state of the flag and, depending on the state, sets the instruction pointer to its argument. There are many types of jump instructions: some include jump if equal to, jump if not equal to and jump if greater than. The call instruction calls a function, whether it be a user-defined function or a PLT function (like printf or scanf). It takes one argument and it will push the return address of the function being called onto the stack and then move eip to the first instruction of the function. The leave instruction is called at the end of every function and it destroys the current stack frame by setting the stack pointer to the base pointer and popping the base pointer off the top of the stack. The return instruction always follows a leave instruction and, since the base pointer has already been popped off the stack, the return address of the function is now on the top of the stack. The return instruction will pop the return address off the top of the stack and then set the instruction pointer to that address.
@pedromatias5927
@pedromatias5927 2 жыл бұрын
KZbin needs a way to store comments!
@bailey125
@bailey125 2 жыл бұрын
@@pedromatias5927 copy paste into notepad++
@maxmuster7003
@maxmuster7003 2 жыл бұрын
Oh, this is a perspective on how C programmer can understand assembly language. ...Good work.... I am not familar with C. In assembly we do not have to use the calling convention if we want to call one of our subroutines. We can place values for the subroutine inside of CPU register and into the data segment. We can use values of the data segment any time within nested subroutines no matter where the stack pointer is and nothing get lost. Push/Pop instructions are slow on older x86 before Pentium 4.
@maxmuster7003
@maxmuster7003 2 жыл бұрын
We can use the LEA instruction on 80386+ for calculating values. No memory access, no flags touched, the result have fit into the target. Example with intel syntax: LEA eax, [eax+ebx*4+224] It perform two addition and a multiplication in one instruction.
@maxmuster7003
@maxmuster7003 2 жыл бұрын
Element of a 16 bit executable An executable com file starts with CS=DS=SS and a segment size of 64kb at the address cs:0100. It contains no header, only mashine code and data. Ready to switch into the 64 bit mode and start all cores of the multicore CPU.
@cepi24
@cepi24 8 жыл бұрын
Holly crap! this was more useful than whole semester on my university. Please keep doing those videos. Thank you very much.
@heatxtm
@heatxtm 7 жыл бұрын
to understand all of this just watching it one time (in 10 mins) you should have gone to that semester is like a summarising video awesome video
@keithotinya3210
@keithotinya3210 7 жыл бұрын
that was way more informative than my whole semester......true story...
@QuasiELVIS
@QuasiELVIS 7 жыл бұрын
If you guys are doing computer science and you haven't covered all this yet then you must be in your first year.
@jae5577
@jae5577 6 жыл бұрын
Absolutely Bud.
@strawberryrain8847
@strawberryrain8847 6 жыл бұрын
eh you probably did not go through a good class i should say? check out something i did pre-university (10th grade) nand2tetris.org.....
@dedballoons
@dedballoons 6 жыл бұрын
Did that dude just check back at his notes in the first 3 seconds to remember his name? I fucking love this dude already.
@TEXASF1ERCE
@TEXASF1ERCE 5 жыл бұрын
Lmao I wish he would've continued this serious though. Very easy to understand and straight to the point.
@varunpawar
@varunpawar 8 ай бұрын
😂 gave me a laugh , thanks for pointing.
@4.0.4
@4.0.4 7 жыл бұрын
I started the video thinking I was going to let down by the length, but since it was so short, it wouldn't hurt to watch. Then I saw how good the video was. Damn.
@Blowyourspot747
@Blowyourspot747 8 жыл бұрын
I love you so much for this I wanna cry
@_nit
@_nit 8 жыл бұрын
Fantastic and coherent explanation. You earned yourself a sub. This might be the quickest/clearest explanation of the basics of how x86 works.
@kentatakao6863
@kentatakao6863 7 жыл бұрын
Essentially the same explanation I've read on multiple websites and heard in multiple KZbin videos, yet just as vague and unsatisfactory.
@dannygjk
@dannygjk 7 жыл бұрын
Morris Laurent You can't become competent in Assembly in a short period of time. You have to want to become good at it *and* you have to devote yourself to it. Dump all your socializing and focus on Assembly because it's more important than all humans. Note that I capitalized the 'A' in the word 'Assembly' because Assembly rules. It eliminates the middle man, (any high level language). In addition you must have high discipline and a high tolerance for tedium. If you love playing games like CandyLand forget Assembly.
@0xbitbybit
@0xbitbybit Жыл бұрын
Damn, that CMP/JMP stuff was so well explained, realizing it's just a SUB instruction essentially makes it and the following JMPs make so much more sense! Thank you!
@occamraiser
@occamraiser Жыл бұрын
It is so funny watching this description of x86 Assembler as if it is one of the universe's major mysteries :) 35 years ago I was writing 8086 / 80186 / 80286 code in PLM and manually checking the intermediate (Assembler) output to make sure that the compiler was being efficient and that no multiplies had sneaked into the code. Now apparently the ability to write ASM286 would make me an international hacker...... how things have changed between my generation (Computer Science Degree) and new graduates (Software Development Degree) with their 'religious' views on OOP and encapsulation, method and properties - as if they were some form of alternative to knowing HOW a CPU fetches and executes a command and what the different fields in the binary representation of those commands actually do. Wish I hadn't moved into management 20 years ago - all those C++ programmers who could have been taught assembler, finite state machines, cyclic buffers, Interrupt handlers, real time control, cost of structures in clock cycles - in stead of all this bloatware relying on Moore's law to keep it viable. As we used to say in the olden days....'Flame off'
@stephen7715
@stephen7715 4 жыл бұрын
This is literally one of the best instructional videos I have ever watched in my life period. Fantastic job
@jochedev
@jochedev 7 жыл бұрын
I'm so glad I found this video... you just explained most of my college Assembly Language course in 10m... now I can do that project I procrastinated till the last possible moment ( it's due today ).
@QuasiELVIS
@QuasiELVIS 7 жыл бұрын
So this video taught you how to program in assembly? lol, I don't think so.
@miksuko
@miksuko 6 жыл бұрын
QuasiELVIS how did you laugh out loud?
@QuasiELVIS
@QuasiELVIS 6 жыл бұрын
You know perfectly well I didn't literally laugh out loud - it's a convenient way to expressive derisive sarcasm on the internet as appropriate for this stupid comment.
@nickt6201
@nickt6201 6 жыл бұрын
Hater alert
@samwansitdabet6630
@samwansitdabet6630 6 жыл бұрын
He thinks he's being smart But he's just an asshole
@tielessin
@tielessin 3 жыл бұрын
That was quite a lot of information in a very short time for someone who didn't know anything about x86 architecture before, but I really appreciate you for not bullshitting around. I'll come back to this video once I have read a bit up on those 20 new terms 😄 Thank you for your Video 🙏
@tehf00n
@tehf00n 6 жыл бұрын
I've been coding for 20 years. Recently I was considering adding conditional breakpoints to an app I use. I knew it was going to get messy so I figure a bit of information about how Assembly works might motivate me. I tell you what, this video damn sure made me motivated. Excellent work.
@TheLionheartCenter
@TheLionheartCenter 4 жыл бұрын
There's such a lack of instructional videos on assembly language and this was so helpful
@klausvonshnytke
@klausvonshnytke 7 жыл бұрын
Hi, is that it? no more videos? I liked what you showed and how you presented it. great potential and interesting topic.
@hehhehdummy
@hehhehdummy 7 жыл бұрын
Annnnnnd just about everything I was confused about was clarified in 10 min. Thank you! I was disappointed to not see anymore uploads. The video made it seem like there was a series. :[
@robinsamuelthomas9456
@robinsamuelthomas9456 6 жыл бұрын
My Brain started hurting at 4:40.... I will take pauses and Notes to understand better... !! Really nice exemplary Video !!
@SiyuJiang
@SiyuJiang 6 жыл бұрын
Subtle point: the EIP does *not* point to the instruction currently being executed, as mentioned at around 8:30. It points to the *next* instruction which is to be fetched from memory.
@SiyuJiang
@SiyuJiang 6 жыл бұрын
Also, there is not a single flag in the processor that is set by CMP as mentioned at around 8:50. Two flags (namely, the Z [zero] and CY [carry]) are set by this operation, and the jump instructions check these flags.
@WarrenGarabrandt
@WarrenGarabrandt 7 жыл бұрын
Oh man! You can't leave someone hanging like that! You barely scratched the surface, and I want more! Go ahead and make that second part of this; and I'm sure we'll all watch it.
@alvaropuerta5283
@alvaropuerta5283 8 ай бұрын
This video is so good. Thank you.
@human-being
@human-being Ай бұрын
Thanks a lot man, this video is came to be my foundational video on assembly even after digging through a lots of stuff. Your contribution shall be remembered by me. May Allah bless you.
@decompiler7726
@decompiler7726 6 жыл бұрын
This video enhanced my understanding of x86 assembly far beyond anything that I have encountered before and since. Excellent material.
@zokm8165
@zokm8165 Жыл бұрын
Normally i watch at 2x speed cause videos go to slow. Here i needed to rewatch parts to try and keep up. nicely done.
@patrickboyd8368
@patrickboyd8368 5 жыл бұрын
The connection between jump instructions and how we define "Turing Completeness" (operability locating memory/instructions) just clicked a little better in my brain....awesome
@MrKushinator420
@MrKushinator420 7 жыл бұрын
This was about equivalent to 4 lectures, in 10 minutes. Thanks for the review
@meilinliu6774
@meilinliu6774 2 жыл бұрын
The best video explaining registers on KZbin. Thank you so much!
@universalponcho
@universalponcho 3 жыл бұрын
This was really well done. This is probably one of the best I have come across and it's now 2021.
@RachayitaGiri
@RachayitaGiri 6 жыл бұрын
Finally! One video at the perfect pace with the perfect amount of information!
@lukmanalghdamsi3189
@lukmanalghdamsi3189 2 жыл бұрын
in 10 you explained what my professor couldn't in 2 hour! absolute legend!
@niklyons4007
@niklyons4007 6 жыл бұрын
Thank you so much for this tutorial. In my opinion you do *not* speak too fast. It is after all, a crash course- not a slow float to the ebp. Extremely helpful and thorough with plenty of room for fresh rabbit holes to fall down (like heap!) Many thanks, and I look forward to checking out more!
@justinsimard3267
@justinsimard3267 3 жыл бұрын
The quality of this video is just outstanding
@petepoot6442
@petepoot6442 2 жыл бұрын
holy crab, how good of a teacher can one person be!! this 10 minutes crash course packed more info than i got in a full semester in college, all while being clear and understandable!! i love it.
@johnjacobs3102
@johnjacobs3102 5 жыл бұрын
Thanks so much. I'm taking the OSCP course and I'm on buffer overflows trying to comprehend how shell code is injected and executed and this is the only video I could find that actually helped me understand how the stack works.
@theblogger800
@theblogger800 3 жыл бұрын
Wow! What a gem you are! I am sure this guys is an ET in the form of a human who came down to earth to us Assembly. God or whatever deity you may have in your planet keep you blessed.
@zeroxx131
@zeroxx131 7 жыл бұрын
Wow! Beautifully done. If you don't teach for a living you should. You were straight forward and to the point. Every sentence had a purpose with no junk we didn't need to know. Subscribed!
@Life4YourGames
@Life4YourGames 7 жыл бұрын
Holy shit, you were right about the amount of information but your explanation pace and clarity makes it very easy to follow. Good work!
@coledelong427
@coledelong427 6 жыл бұрын
Sorry, pls go slower, my brain runs at only 1.618 GHZ
@samyuj
@samyuj 5 жыл бұрын
speed 0.5x
@clock4883
@clock4883 5 жыл бұрын
I like what you did there.
@motherofallemails
@motherofallemails 5 жыл бұрын
Exactly! I just can't understand why people race through technical material as fast as they can as if people should be able to keep up. it's just ridiculous. I'm out of here.
@ohwow2074
@ohwow2074 5 жыл бұрын
Mine is 1.2 GHz😶
@jz5937
@jz5937 5 жыл бұрын
He might’ve just been trying to cram a lot of info into a small space of time. Either that, or to make everyone new to this feel stupid (he succeeded with me). I’m gonna assume the former. I’m new to this, I’ve taken programming classes I. the past and done well (though I hated them). However this is tough to follow at the speed he presents it at. Well, a challenge to the mind is always a cool thing, and I’m horribly weak in this area. I hate this crap. That’s why I should learn it.
@thepianomatro
@thepianomatro 6 ай бұрын
This crash course is literal gold. I tip my hat to you sir
@idounnowatuwant
@idounnowatuwant 4 жыл бұрын
I can say without a doubt this is one of the best videos I've ever seen on youtube.
@sidkbsri3997
@sidkbsri3997 2 жыл бұрын
Phenomenal video concisely explaining x86, much needed for an exam I have next week.
@imfromheII88
@imfromheII88 7 жыл бұрын
For coming off of MIPS and trying to learn x86, this video is REALLY GOOD.
@DanipBlog
@DanipBlog 5 жыл бұрын
Dude, you are unbelievable good and explaining!! Do not stop what you are doing, you're contributing to society more than you realize!
@GamingBlake2002
@GamingBlake2002 4 жыл бұрын
"Hi! My name is Jericho and I'll be leading you on your journey through binary exploitation!" *Doesn't upload for 4 more years*
@abdarafi
@abdarafi 4 жыл бұрын
Lol
@makewayforsucess
@makewayforsucess 4 жыл бұрын
@@abdarafi I think this was enough for 4 years tbh xD
@suryanshdaspatnaik3474
@suryanshdaspatnaik3474 4 жыл бұрын
@@makewayforsucess yea Xd assembly is difficult...(but you can understand MS DOS's source code if you know it..)
@ismahenelarbi7386
@ismahenelarbi7386 4 жыл бұрын
he must be an intp
@sergioropo3019
@sergioropo3019 4 жыл бұрын
I think he gave everything he's got in one go. I thank him anyway.
@lostangelesam8831
@lostangelesam8831 3 жыл бұрын
I get genuinely excited watching this guy get stoked on these principles EPIC explanation!!
@samisiddiqi7814
@samisiddiqi7814 6 жыл бұрын
I love this video. You understood what you were teaching and you didn't waste your words and neither did you leave abstract concepts undefined. Well done !!! 👍👍👍
@rwpage89
@rwpage89 6 жыл бұрын
I just learned more in 10 minutes here than an entire semester of assembly in college... great work thanks for the help
@gowgearhead
@gowgearhead 4 жыл бұрын
You are a life saver. Thank you for uploading this video!
@ThefamousMrcroissant
@ThefamousMrcroissant 5 жыл бұрын
So much info cramped in such a short video - and despite that you managed to explain everything clearly. That's talent right there
@MooseC00kie
@MooseC00kie 4 жыл бұрын
This is the best explenation I have heard so far! A little bit fast sometimes but soooo comprehensive! So glad you didnt just name push, pop and prologue/epilogue but also went for lea, cmp, jmp & flag!
@aceflamez00
@aceflamez00 8 жыл бұрын
WHERE HAVE YOU BEEN ALL MY LIFE
@jzpatelut
@jzpatelut 7 жыл бұрын
Well No one wait for none in this COmputer world...!!!!!..jzppatelut...
@gauravarya8952
@gauravarya8952 5 жыл бұрын
He was hiding in Greenland.
@ariesduke2047
@ariesduke2047 7 жыл бұрын
This channel is gold already
@kaanturkmen4966
@kaanturkmen4966 5 жыл бұрын
This was the best video on assembly I've seen so far
@duylekhac6044
@duylekhac6044 6 жыл бұрын
One of the best tutorial video I have ever seen! Concise, informative, easy to understand! Very good work
@aTewfik
@aTewfik 6 жыл бұрын
Oh my god, I have been searching like hell for a video like this. Now I can do my lab. THANK YOU!
@pianistaalex1990
@pianistaalex1990 7 жыл бұрын
Man I can't thank you enough for this video, it's so sad that you never got to make another one explaining how to overflow a buffer, stack protection and so on. Great work on this one, hope you can make another one eventually.
@elgs1980
@elgs1980 6 жыл бұрын
What I was wondering when watching this video was how many of these things had happened in order for my computer to play this video.
@xanderkay315
@xanderkay315 6 жыл бұрын
Thanks for making this! I have an Assembly class this quarter and this is really helping me get ahead of the curve.
@jimmy000
@jimmy000 5 жыл бұрын
Really good and concise video with no waffling, great job and keep up the good work.
@TheSakanax
@TheSakanax 7 жыл бұрын
Awesome video! I've read chapters in books that didn't explain as much as you did in 10 minutes! Answered a lot of questions I used to have. Thanks!
@yatharthsoni5428
@yatharthsoni5428 6 жыл бұрын
THANKS ALOT BUDDY!! CERTAINLY MORE USEFUL THAN WHAT I LITERALLY DID IN THE 2ND YEAR COMPUTER SCIENCE CLASSES
@markopesevski
@markopesevski 7 жыл бұрын
Maaaaan this video is great! Keep them coming if you have time.
@ricardo.mazeto
@ricardo.mazeto 8 жыл бұрын
MOAR!
@helperfunction4981
@helperfunction4981 6 жыл бұрын
This was a good video to refresh my rusty asm knowledge. One advice I would give to people who are completely new to this is to make sure they have at least a rough idea how cpu and memory work. A really good and simple book for that purpose is called "But how do it know", and if you don't have the money to buy it you can torrent it (I don't promote piracy but if you live in a 3rd world and/or are poor you should have free access to education)
@roygalaasen
@roygalaasen 5 жыл бұрын
Wow! Such a great summary of assembly language, a great refresher! Sadly it is three years old and you never made any more videos. This was a great promising start for a new interesting channel, although a niche topic for most. I thoroughly enjoyed the way you explained. Great video!
@HarishKumar-pi2nb
@HarishKumar-pi2nb 3 жыл бұрын
My 11 minutes was very usefully spent. Thank You!!
@Mi10s89
@Mi10s89 7 жыл бұрын
Best tutorial I have ever seen on this subject. Keep it that way.
@stefankoren3303
@stefankoren3303 7 жыл бұрын
You saved my ass. Have an exam tomorrow and was already to give up on that chapter. No I have the understanding it takes. Thank You!
@bibekkoirala8802
@bibekkoirala8802 6 жыл бұрын
Best thing watched on KZbin today. Fuck 3 months of uni's class.
@alexrosellverges8345
@alexrosellverges8345 6 жыл бұрын
Fuking awesome, computes are absolutely awesome, thanks!
@imafirinmalaser
@imafirinmalaser 7 жыл бұрын
where are the rest of your videos bro?? this was great!
@ImGuti
@ImGuti 5 жыл бұрын
Seriously, where are they?
@astrix8812
@astrix8812 4 жыл бұрын
@@ImGuti where are they?
@odorlessflavorless
@odorlessflavorless 4 жыл бұрын
@@astrix8812 Where are they?
@hscowef4662
@hscowef4662 4 жыл бұрын
Ananta Kr. Roy where are they?
@nonasuomynona1734
@nonasuomynona1734 4 жыл бұрын
@@ImGuti yesterday are they.
@RajarshiBandopadhyay
@RajarshiBandopadhyay 6 жыл бұрын
This was an amazing video... please continue to make more of these.
@TomokoAbe_
@TomokoAbe_ 6 жыл бұрын
I love assembly. It's the only computer language I enjoy doing. The precise control is amazing. You can even manipulate the size of the sound waves.
@joeyhensley9199
@joeyhensley9199 5 жыл бұрын
Pseudo Code: (When counter =3, do something) Counter =0+1 ... Hex edit, counter=0+0. something simple like clearing the screen after 2 failed prompts. Small scale, baby steps to get your bearings.
@CP-hd5cj
@CP-hd5cj 7 жыл бұрын
Great video. You managed to condense everything I needed to know into 10 minutes, and still made it easily absorbable.
@andrewkaster4033
@andrewkaster4033 7 жыл бұрын
You said that global and static variables are stored on the heap. This is strictly not true for C programs. global and static variables are in the .data segment of the executable. The heap is only for dynamically allocated variables.
@DJ_POOP_IT_OUT_FEAT_LIL_WiiWii
@DJ_POOP_IT_OUT_FEAT_LIL_WiiWii 7 жыл бұрын
This is also the case for hand written ASM. I think an introduction about data / code segments and entry point would have been preferable to the C preamble. Anyway the presentation was high quality.
@jardel_lucca
@jardel_lucca 6 жыл бұрын
Came here to comment the same. And the data segment does not change in size. So it's not part of a "heap" even in a general/loose definition of heap.
@rockapedra1130
@rockapedra1130 6 жыл бұрын
Oops ... didn’t see this so said same thing in another comment. “Heap” is a block of memory that is the play area of malloc and friends. Globals and statics go in a separate block of memory.
@ferna2294
@ferna2294 7 жыл бұрын
You are underrated mate. Suscribed. This is GOLD.
@jingz.9684
@jingz.9684 7 жыл бұрын
One of the best tutorial for starting, love the bg music, life saver!
@David-mv4dy
@David-mv4dy 7 жыл бұрын
I know it's supposed to be a video about assembly, but this was a great explanation on how memory works!
@blanchet2852
@blanchet2852 6 жыл бұрын
wow thank you, i love you, will probably (definitely) rewatch!
@TheCrazyposter
@TheCrazyposter 6 жыл бұрын
great video man! although your going fast, you explained everything in a clear manner. I wish our University had tutors like you available for assembly programming.
@KamranMohsin008
@KamranMohsin008 7 жыл бұрын
This is an awesome lecture I ever witnessed. Thanks man
@veronicamontilla2288
@veronicamontilla2288 2 жыл бұрын
went through when I first started video editing, now it's taking a whole new switch and learning soft will only boost my courage for the
7 жыл бұрын
Awesome work! Looking forward to seeing more of your videos on this topic.
@jamesrosemary2932
@jamesrosemary2932 5 жыл бұрын
Awesome!. I needed to remember ASM and this video was a kind of flashback to me.
@Omnifarious0
@Omnifarious0 7 жыл бұрын
While I think this is useful information, a couple of small tweaks would help this be a lot more generally useful. For example, mentioning that there are more platforms for assembly and that the 0-2 argument thing is x86 only would be useful. You don't have to say anything else, but, with just a small added phrase, you've just told people one of the flex points of assembly in general, and better prepared them to deal with something other than x86 assembly should they so choose. Also, sub and cmp both set the flag. You make it sound as if sub does subtraction while cmp sets the flags. They both set flags, but cmp doesn't actually do the subtraction.
@nandfednu3502
@nandfednu3502 6 жыл бұрын
well it's a crash course so I think it was conceptual with the understanding you don't think you know everything just because you watched it? As I am in the middle of teaching myself some python and debating hacking my html/css/javascript editor to flag that syntax as well a brief 10 minutes about assembly so I can decide if I am going to start using OllyDbg is far more useful than giving me AnoTheR framework I end up researching... /you didnt say this but someone was griping that he started out explaining compilers because I believe (and this comes in here because maybe it is what you are missing too?) the video is written from the perspective of someone with plenty of computer sci and maybe even engineering to the point that it is easiest to understand from the perspective of machine language or perhaps that is a consequence of Assembly's purpose? /it'd just be confusing to know processor architecture/machine language, human readable programming as it is today (many lack compilers because they depend on compiled environments) and then understand that assembly is breaking apart stack instructions- "like, wtf- which of the humans talks TO the machine?!" but that is just my hunch on this glorious video I don't think needs the hate....
@yugen042
@yugen042 2 жыл бұрын
This is incredibly well made. Thank you so much!
@enochmtz
@enochmtz 5 жыл бұрын
Hey, I hope you keep making this videos, you're an awesome teacher, please I'm waiting for more
@JustLookA7
@JustLookA7 7 жыл бұрын
The only video in this channel? Come on!. This is good content!
@RacecarsAndRicefish
@RacecarsAndRicefish 6 жыл бұрын
awesome, now I just need to see a couple more of these and I'll be caught up on what we learned in lecture this week
@nishadsaraf9107
@nishadsaraf9107 7 жыл бұрын
Very informative! Waiting to learn more from your upcoming videos. Thank you.
@florinturcanu7109
@florinturcanu7109 5 жыл бұрын
man thanks, you seriously helped me a lot, this finally explains everything very clear, respect for this
@bzhell4544
@bzhell4544 6 жыл бұрын
highly recommend this video to new starters fxxked up with assembly analysis
@WarrenMarshallBiz
@WarrenMarshallBiz 6 жыл бұрын
Absolutely brilliant, thanks so much!
@davidshamay2898
@davidshamay2898 6 жыл бұрын
please keep going to upload more videos this is very helpful i wish all the internet was with tutorials like this
@club6525
@club6525 Жыл бұрын
In essence, C files (text files with a special extension) are translated by the compiler into sequences of operations to run by the computer. Each operation is comprised of a sequence of bytes referred to as an operation code or opcode for short. Thousands of thousands of opcodes are used by each application which makes it essentially impossible to be understood simply by direct reading. For this purpose, assembly is used as a human-readable in-between language.
@laurenzv5682
@laurenzv5682 4 жыл бұрын
Dude this is so well made... You really earn more subs!
@mathssoso4261
@mathssoso4261 6 жыл бұрын
I like videos like this when the speaker speaks quickly so that you won't fall asleep
x86 Assembly: Hello World!
14:33
John Hammond
Рет қаралды 1,4 МЛН
When Cucumbers Meet PVC Pipe The Results Are Wild! 🤭
00:44
Crafty Buddy
Рет қаралды 60 МЛН
Farmer narrowly escapes tiger attack
00:20
CTV News
Рет қаралды 12 МЛН
Every Programming Language Ever Explained in 15 Minutes
15:29
Flash Bytes
Рет қаралды 356 М.
Dear Game Developers, Stop Messing This Up!
22:19
Jonas Tyroller
Рет қаралды 732 М.
You Can Learn Assembly in 10 Minutes (it’s easy)
10:21
Low Level
Рет қаралды 137 М.
Why Roller Coaster Tycoon is a Game Development Masterpiece
11:59
Tech Stories
Рет қаралды 1,1 МЛН
Game Physics (in Assembler) - Computerphile
19:24
Computerphile
Рет қаралды 713 М.
Why is Python 150X slower than C?
10:45
Mehul - Codedamn
Рет қаралды 26 М.
Just enough assembly to blow your mind
29:31
Kay Lack
Рет қаралды 143 М.
X86 Needs To Die
1:09:15
ThePrimeTime
Рет қаралды 527 М.
When Cucumbers Meet PVC Pipe The Results Are Wild! 🤭
00:44
Crafty Buddy
Рет қаралды 60 МЛН