I first learned 6502 Assembly Language in 1983 when I was 16, and at that time you pretty much had to know it to program ay serious software for platforms like the Commodore 64, Atari Computer, Apple ][, or IBM PC. I wrote a couple of Amiga games entirely in 68000 Assembly around 1990, which was a huge challenge. And that was the last time I did any major Assembly programming because the CPUs and OSs were getting more complex. It was just becoming unwieldy to write in Assembly. So after that time all my low level coding was done in C, C++, C#, and Objective-C. Now that I’m programming embedded MCUs like Arduino I’ve actually been using some AVR Assembly to optimize things. Assembly is getting a bit of a revival lately as people are now writing a lot of retro games for old platforms like the Atari 2600, DOS, and Commodore 64 again.
@leoandru
5 жыл бұрын
I never truly understood programming until I learned assembly. It was like Neo seeing the matrix.
@huiwang5883
5 жыл бұрын
This metaphor is very appropriate.
@thecout3170
2 жыл бұрын
You become a mage at programming after learning assembly and how computer works with the logic gates
@CJ-tv9hd
Жыл бұрын
Lol, Neo for some reason means a squad of 5 soldiers in chinese. idk why that guy mad though
@teddydabear8772
5 жыл бұрын
Great video👍. It made me feel like I was 19-years-old again (31-years ago). Back then for me, it was Turbo Assembler TASM and Microsoft Assembler MASM. For next video, Gary does a QuickSort algorithm in assembler hehe 😉
@e-maxwell
5 жыл бұрын
This assembly is kind of different from the one I struggled with in college, which was assembly for PICs. I guess a full assembly course would be too much to ask? I'm really excited about the next video, knowing how things work and how they are made is really interesting for me.
@GaryExplains
5 жыл бұрын
I would like to do a full assembly course, but unfortunately such videos wouldn't be as popular. So, like this one, and the planned one on writing a software based virtual CPU, I can slip them in occasionally!
@shubhankarshubham
3 жыл бұрын
@@GaryExplains if you can make udemy course for assembly then it will be awesome 😊
@elviraeloramilosic9813
5 жыл бұрын
This was great! Thanks Gary!
@leledumbo
5 жыл бұрын
I haven't learned the ABI of ARM, my mind always thinks in x86 (without register calling convention) that I think parameters need to be pushed to stack. I forgot that ARM implements RISC, so most things are around registers as there are plenty of them.
@mac_uk5464
5 жыл бұрын
At college in the 80's we use to program Z80 in Assembly language, our teachers used to say this was high-end programming & use of Pascal (As we used back then) was lower end. If you base it on the amount of work you have to put into it, it was correct, C++, python, etc do's all the assembly or machine coding for you.
@achmadnurhidayat173
5 жыл бұрын
My head hurts.
@GaryExplains
5 жыл бұрын
🤕
@shafu_xyz
4 жыл бұрын
playlist order is inverted i think..
@nimrodlevy
5 жыл бұрын
I really enjoy computer science videos, you explain sooo well, thank you sir!
@taidee
5 жыл бұрын
The class is in session, thanks Gary that was fascinating
@kamilziemian995
16 күн бұрын
Fantastic video.
@1MarkKeller
5 жыл бұрын
*GARY!!!* *Good Evening Professor!!!* Get better, my two grand kids and my daughter are sick at the moment as well.
@GaryExplains
5 жыл бұрын
MARK!!! I hope they get well soon!
@MatrixJockey
5 жыл бұрын
GREAT VIDEO!
@the_yugandharr
Жыл бұрын
Very interesting!
@buddhimachamaranga1203
5 жыл бұрын
Great video ♥️♥️♥️♥️
@amallkrishna
5 жыл бұрын
Gary, I've been loving your videos and binge-watching them! Would you do a video on System Calls and Procedure Calls?
@GaryExplains
5 жыл бұрын
That sounds interesting. Do you mean in assembler or in a high level language? What do you mean exactly by procedure calls?
@amallkrishna
5 жыл бұрын
@@GaryExplains The term procedure calls actually has got me confused. Tannenbaum's Modern Operating Systems has an explanation of system calls where it directly mentions system calls are "special" procedure calls. So I guess, it refers to the assembly level instructions. Then there are also RPCs which are something totally different.
@ZamanSiddiqui
5 жыл бұрын
*GARY!* *Good afternoon, professor!* I have a cold too. Computer virus? 😂
@GaryExplains
5 жыл бұрын
Zaman!!! LOL
@1MarkKeller
5 жыл бұрын
*Zaman!*
@helge000
5 жыл бұрын
Back in ‘89, when I started out in our local C64 club, I was looked down on because I used assembly to write programs. Off course, real programmers there used machine language :)
@buddhimachamaranga1203
5 жыл бұрын
Do more computer science videos plz ♥️♥️♥️
@AshishKumar-qe4hq
3 жыл бұрын
Hey Gary, still waiting for part 3 CPU emulation
@jagritpopli8736
5 жыл бұрын
What is raspberry Pi?
@GaryExplains
5 жыл бұрын
LOL
@kouseieshi7099
5 жыл бұрын
infinity it is just a type of computer. Using raspberry pi you can create your own computer or robot or something like that. I too don't know much about it
@GaryExplains
5 жыл бұрын
I have been assuming until that you were joking... But if you weren't then please watch this video of mine: kzitem.info/news/bejne/pmmPzJVoh2d-Zo4
@blackmanops3749
5 жыл бұрын
Are you all knowing Gary? You did offer the disclaimer that you were cheating by using the call to 'printf', but you didn't tell us the most important bit: how do you know to use r0 to pass the pointer? Why not r13? And where is that level of detail about library functions found?
@anugrahandi
5 жыл бұрын
If assembly is really the "low level", then how they made the "as" and "gcc"? Let's say.. a long time ago? By using mechanical switch to put electrons in a bunch of capacitor location inside memory?
@leledumbo
5 жыл бұрын
Bootstrapping, just as today. Unfortunately, the days when as and gcc were born things were already quite modern. Both are written in C, certainly bootstrapped with whatever available C compiler at that time and self hosting subsequently.
@theloniouspunkton8466
4 жыл бұрын
Thanks this is really helpful!
@gogogogogogogogogogog9
5 жыл бұрын
why do u code asm in raspberry pi why not in normal x86 in NASM?
@GaryExplains
5 жыл бұрын
Why is x86 "normal" and Arm not?
@gogogogogogogogogogog9
5 жыл бұрын
@@GaryExplains isn't it more popular to code x86?
@GaryExplains
5 жыл бұрын
Depends. Arm's partners have shipped 12 billion Cortex-A processors, so that seems like a lot to me.
@gogogogogogogogogogog9
5 жыл бұрын
i wish u make a series of video about x86 , because u r so good at coding and assembly is a hard lang.
@GaryExplains
5 жыл бұрын
I will keep that in mind. Thx.
@alenkruth
5 жыл бұрын
Great Video Sir 🔥
@SonGoli
5 жыл бұрын
How bout an explanation video on LGs HiFi DAC?
@rayon.019
3 жыл бұрын
part 3?
@buddhimachamaranga1203
5 жыл бұрын
U must have at least 1 million subs
@svendzeble9583
2 жыл бұрын
Please where is part 3?
@GaryExplains
2 жыл бұрын
Unfortunately it is still on my TO-DO list.
@ulli-s
5 жыл бұрын
I know that this might be a question on a different topic, but I was hoping that you could give me an answer to something I have been wondering: I have seen the benchmarks (geekbech 4.1 among others) for the new macbook air 2018, and also for the new A12X chip in the new iPad pro 2018. Would it be possible for Apple to just put their A12X chipset in their next macbook air? And if/if not, why? Because the benchmarks for that chip are WAY higher!! I hope that you will find the time to answer me, because I really wanna know :) Thanks in advance!
@GaryExplains
5 жыл бұрын
Did you see this video of mine? kzitem.info/news/bejne/s4qDrWiYhqWEjaQ
@ulli-s
5 жыл бұрын
Gary Explains Ah yes I did watch that video, just forgot about your arguments. So would you still say that apple probably used intel chips for the Mac air (even though it is a weaker chip) because it would create a continuity problem for the MacOS software?
@camiloescobar1865
5 жыл бұрын
Gary do you think Google is making its own SoC for the Pixel?
@GaryExplains
5 жыл бұрын
So you mean in the Pixel 3 or for some future device? In either case, no I don't.
@camiloescobar1865
5 жыл бұрын
@@GaryExplains future Pixel, I think if Google really wants to compete with Apple they should make its own SoC. Also they hired the guy who made the early Apple chips
@GaryExplains
5 жыл бұрын
Google doesn't want to compete with Apple and even if it did, it isn't the processor that is stopping it from succeeding. This is a good read: www.androidauthority.com/google-still-doesnt-want-sell-smartphones-heres-810729/
@SevenDeMagnus
5 жыл бұрын
Thanks. I thought the CPU (or GPU) can only read 1's & 0's? How would it be able to understand what an e59f002c if it has the letter f, e and the numbers 5, 9 & 2? Is there further compiling by the computer for these hexadecimal after the program itself was compiled (two compilations)? Thank you.
@GaryExplains
5 жыл бұрын
0xe59f002c is a hexadecimal representation of the binary 1's and 0's for us mere mortals. Just like the number 25 is just a decimal representation of a number. 0xe59f002c =11100101100111110000000000101100
@SevenDeMagnus
5 жыл бұрын
By the way, why do CPUs still need an instruction set that seems to be similar to Assembly language, if in our programs (assembly or high level) already has commands like Mov and Load, etc.and everything is compiled already to 1s and 0's ready for the switching of CPU's many transistors?
@GaryExplains
5 жыл бұрын
Sorry, I don't understand the question you are trying to ask. High level languages don't have instructions like move or load, only assembly does. Assembly exists because it is tedious and error-prone to write out the 1's and 0's by hand.
@SevenDeMagnus
5 жыл бұрын
Hi. I mean, say, one still wants to use assembly today, why is there a need for instruction set for the CPU, if, for example, an assembly language already has a Mov command, for example here at: 5:34 kzitem.info/news/bejne/23ur3IKPnmmIemU and then the Mov from the CPU's instruction set here at 2:38 kzitem.info/news/bejne/kauByqCEjWJ2gIo If Mov command in the assembler after being converted to 0's and 1's means it's ready to be understood by the CPU coz' it's in machine language already, why does the CPU have to use it's own Mov from it's instruction set? It seems redundant.
@GaryExplains
5 жыл бұрын
I am still not 100% sure what you are asking... But the assembly language is created FROM the CPU's instruction set. Also assembly language is DIFFERENT for every CPU because it is the instruction set which defines the assembly language. It isn't like Java, C or Python, there is no general language called "assembly language" it is a term that refers to a low level language that is specific for a CPU type and is defined by the instruction set. You can't use x86 assembly language on an Arm processor and vice-versa.
@saurabhsurana4068
5 жыл бұрын
great
@SevenDeMagnus
5 жыл бұрын
Thanks. Cool. Why not use microcode which is even closer to the hardware. By the way, what do they mean when they say "it's close to the hardware" (like the Metal graphics API by Apple). Thank you. God bless, Proverbs 31
@GaryExplains
5 жыл бұрын
I think you have misunderstood the concept of microcode.
@SevenDeMagnus
5 жыл бұрын
Hi. Thanks sir. I got microding from this video (Avie Tevanian). I think it's available for the Alto. I wonder if you could do that with modern iMacs to make the Mac or Window apps faster: kzitem.info/news/bejne/r6qmr3qoiHmFe6A
@GaryExplains
5 жыл бұрын
I don't have time to watch a 2 hour video. But, assuming it is about the microcode engine of the Xerox Alto, that was a unique computer and that isn't how computers are built today. The lowest level interface available to the programmer is machine code and the lowest level programming language for machine code is assembly.
@YourUNKus
5 жыл бұрын
I think what you want answered judging by the questions you have can be explained here -> @9:55 kzitem.info/news/bejne/tm9-nYiji6ZnZ3Y . He describes the load and the store instruction for the pi right down to the binary ( " close to the metal " aspect of it all) and what each bit means.
@gillo9070
5 жыл бұрын
Did not know you spoke chinese professor 🤔
@1MarkKeller
5 жыл бұрын
The Professor knows all.
@tkdevlop
5 жыл бұрын
I think I stick to JavaScript.
@GaryExplains
5 жыл бұрын
But is it as much fun!!! :-)
@obinator9065
5 жыл бұрын
Scrub, you only spend 1/100th of the time coding something than the Assembler programmer does. Shame on you ;D
@dantom5232
5 жыл бұрын
7th comment
@elimalinsky7069
5 жыл бұрын
Is there really a reason to code in Assembly these days? I can't find a practical reason other than if you're employed specifically as a low-level software engineer or otherwise using it as a tool to learn how a CPU executes instructions and how memory management works.
Пікірлер: 88