I have been programming in assembly language in the 1980s, first 6502 and 6800/63xx, then X86. It has been much more interesting than modern web dev today. Please keep on going.
You completely had me when, just as my hand was reaching for the keyboard to pause the video so that I could inspect the page, you said: "You can pause and inspect this page a bit if you want..." I learned assembly language programming at the very beginning of my career in 1974, on an IBM System 360, which had a 32 bit word size. After that I worked in the nascent video game industry for a while, coding video games in 6502 and Z80 assembly. RUclips recommended this video in my feed today, and I'm so glad that my curiosity was piqued ! This is the most impressive introduction to assembly language I've ever encountered. 👍👍 🐬🚫, ✅
I don't know if RUclips's Algorithm is getting better, or if its just luck. But coming across this channel at its current sub count was great luck! The most popular videos around programming seem to be tutorials, LLMs, and tech news. This is the kind of stuff that got me into programming, as opposed to just making games many years ago.
@kellymoses8566 . They've been Micronizing it. That is ours far far worse on the macro level. Purposefully. I mean it's been obvious the past 3 years. The fact were not allowed a 'wild card' mode.. like when you'd airways end up in 'weird' parts of RUclips. But now you're stuck with being suggested the same 12 videos over and over. Meanwhile the moment you select 1 or 2 things your screwed into Only being suggested that channel/type THE WHOLE DAY. AND YOU CAN'T TREAT IT. It's so famed treasuries and claustrophobic . You is designed to keep you in a small a circle as possible possible That way yes is getting better while keeping you ducted in the suction they want. Like try Having 6 Hobbies and expecting RUclips to actually suggest varied things. In not explain this well but isdriving me nuts. you have to have seperate damn accounts just for each hobby hobby others you'll never get it to suggest DIY vids of you harken to click mn something political. Then ur fed allday
@@kellymoses8566holy shit RUclips is getting worse at letting me pay comments. I swear they are deliberately depreciating the functionality of the text boxes. 3 different phones and they all suffer a strange slow down and interrupt when I try to type too much into these damn boxes. It seems to be triggered more often when I complain about RUclips or politics. Yet I can write a 200 word essay on random start trek crap with no slow down until I started comparing ideas in an episode with recent events and global nwo crap.. Pretty sure they're usage of AI isn't limited to checking comments only AFTER they've been posted. It wouldn't be terribly hard to trigger some type of memory duplication based on keywords etc.. ni mean that was like 15yrs ago
I really like your videos. They are easy to get sucked into and provide a passion for learning that is quite enticing. I've been programming in C++ for a while now and you have definitely given me the impetus to try my hand at assembly!
Thanks for this awesome video on assembler Kay. For whatever reason, I felt like learning assembler was god level stuff that was beyond me. You have blown away the veil of complexity for me and provided me with a great stepping-stone to learn more. Thanks again👍
I was entranced, watching and listening more intently than what is normal for me. The Zero Register part caught me off guard in such a way that I just had to leave this comment. It honestly made my day. Thank you.
I agree. This is great. Most things about assembly language are based on far more complicated CPUs that were designed to facilitate large scale multi-user, multi-tasking, context-switching stuff. I have a hard time having the attention span to follow any of it when it's being described in that gigantically complex context. CPU instructions were my focus back when I first started working with microprocessors (1975.). My 8080 instruction set "cheat sheet" card was all I had to go by to enter programs into my Altair kit via the front panel switches. That experience molded my approach to programming. I was a US Navy crypto electronics technician at the time and had a decent grasp of digital circuitry. The CPU/machine code piece of the puzzle was what opened my mind to the wonders of computers.
Yeah although I was also wondering if it has a function nonetheless. Like is it just fixed at 0, or can you actually try saving some value in it - and the program only continues if the said value was 0 and errors otherwise or something
@@whataboutthis10 hehe I mean you could get a number other than 0 in there by error sometimes, because of things like manufacturing errors (which should be picked up through assembly line testing) or a solar flare, quantum physics type stuff which is way beyond my mind. Look up Row Hammer if you're interested in real world stuff related to that. But yeah it's for storing zero. I do think though technically possible in terms of how chips are manufactured it'd be an error that would stop proper operation and probably cause things to crash.
Great video! Old hat for me, but I do feel that every software engineer should have a basic understanding of this stuff. It'll give you a much better understanding of why things work they way they do.
Hello, Kay! I too purchased Ketman, probably sometime in the late 1990s or early 2000s. Of course one could also just use the less capable free version. In the years since then I have wondered about the man who created this tool. I never was able to communicate with him, although I did discover that in addition to assembly language he was also passionately against corporal punishment. Anyway, yes, what a supreme learning tool. Thank you for bringing Ketman back to life after so many years.
Just in case there's anyone who doesn't get the right idea about Ketman, you should understand that it's not an assembler. It's an interpreter which allows you to enter a sequence of basic assembly language instructions and simulate running them one at a time, visualizing how they would store values in registers, push values onto the stack and pop them back off, etc.
So cool. I actually did once have contact with Pat around 2012 when I attempted to buy a full copy. He wasn't selling it anymore and email clients were a bit iffy around sending EXE files back and forth, so instead he sent me a little sequence of instructions that would essentially crack his own software by editing a piece of the executable using Ketman itself. So cool :)
Thanks this helped, I was confused by the three part explanation in the begining and didn't understand how it's all not assembly if we're working in assembly.@@gregoryshields4258
@@neoeno4242so it's okay to download a full version online? I feel tipsy and bad when I pirate things I'm genuinely going to learn from. I'm just starting with the assembly, got super interested and it's my first language, so it's kinda complicated but I'm trying, have so many questions in my head hahaha. Great video!
I have no idea what is this person talking about or why was this recommended to me, but, I really appreciate how kind this person seems and their uniqueness, all of this together is just amazing, whatever "all of this" is in the end.
I mean I imagine the humble assembly programmer as a farmer, his work is concrete and down to earth. In contrast to the city folk programming in high level languages, very up in the air, abstract work. IDK
That's so brilliant, insightful and delightful. I had come to timidly try to learn something about Assembly, like a lost explorer begging with hat in hand, I received 100 times more. For free. Thank you Kay.
Love this video - I've recently been getting back into assembly due to my interest in the Playstation 3 and it's PowerPC based CPU (the CELL Broadband Engine). The architecture is heterogeneous using one master "PPU" core (a PPC970) along with 8 "SPE" accelerator cores, which are designed for SIMD (single instruction, multiple data) vector/matrix mathematics. The PPU and SPUs use different instruction sets & compilers, which does complicate development just a bit. Also, the architecture only has very basic branch prediction (and no out-of-order execution), which necessitates some micro-management of the cache by the programmer in the form of "hinting" instructions. Most CELL programming is done in C but all of the SIMD functions one uses for optimal performance are actually these things called "intrinsics" which are C functions which correspond 1:1 with individual assembly instructions and can (generally) be easily identified in disassembled code using a debugger. Anyway, learning about how the CELL works at the lowest levels has brought me much joy these past few years and your video about assembly inspired me to share my own passion for the subject with your community. I'm following your channel now so do keep up the great work! 🙂 By the way, if you have the time I would very much value your feedback on my own "creative" efforts in this space. I do have a RUclips channel (dedicated to the PS3/CELL platform) as well as a website - www.ps3linux.net - the main purpose of which is to share and preserve what resources I've been able to accumulate related to Linux on the Playstation 3 and Cell Broadband Engine development. Thanx!
Oh super interesting! I've always wondered why PS3 games never get ported forward and I guess maybe that interesting architecture is part of why. Those intrinsics sound fun to play with. You're now on my watchlist :)
I had a chance to learn asambly on UNi. It was a course using x86 asm. The course was critizie because who need asm in the 2000's when there is C / C++ / pascale and othe programming langage. But i am happy that they stuck to it. Asmambly help you understand how computer works and give you full power and freedom. I didn't use it much since these years but your video made me so happy. More of that please.
This tool is really fascinating! I've decided to follow along with 0DE5 and I think I may run this on my old 386 laptop, for the fun of it. It'll add to the charm, I think, to run it on a machine that runs DOS out of the box.
It's been a very long time since I dabbled with ASM (6502), but I still use the phrase 'pop the stack', often in highly digressed meetings or conversations. Good job.
if you enjoy the stylistic choices and imbuement of personality that Ketman brings-I recommend an introduction to programming that still resonates within my soul, which would be: "why's poignant guide to ruby" by why the lucky stiff
Fantastic. Last time I got into coding this deep was on an Acorn Electron. I have no intention of returning (I'm software engineering for a living and have no desire to do anything deeply techie with my spare time) but loved the refresher. Have a sub and more power to you.
I've always loved the idea of writing assembler. I play games that have toy versions of assembler. But reading some more realistic assembler and thinking about the different architectures, I'm now more grateful of C than ever!
@@nathanngqwebo2108 I have bought and played TIS-100, Shenzhen I/O, Exapunks, Last Call BBS, Human Resource Machine, 7 Billion Humans. The developers of Turing Complete and ABI-DOS have contacted me to test their games. It's very different from assembler but a ton of fun. I've not actually played Turing Complete a lot so I've got to reinstall it and play it more for sure.
@@nathanngqwebo2108 Checkout Shenzhen I/O and TIS-100. Both are made by Zachtronics and are basically like OP said, toy versions of assembler. It was my introduction to assembly back in 2016.
Having first learned to program an HP-41CX, it was an easy transition to assembly language coding when I finally started university studies in computer science. And both helped me tremendously during language-unspecific coding tests (usually veiled as non-programming tasks) during job interviews.
This video was witty, funny, touching, and educational. I don't think I understood assembly (mea culpa), but I thoroughly enjoyed this video. I know more now than I did before.
I learned this in 1978 when they were still giving courses like this. But I threw away my old books 40 years ago. Now I have something to show my kids.
I learned 8080 and 6502 machine and assembly language in a general electronics class in the mid Eighties, as part of my first degree, in physics. It was a really good lesson in how computers work, with very little abstraction.
When I was 12 or so I was trying to write games on my 6502 Atari, I couldn't afford an assembler (It took years of saving to get the used atari) so I would write out a list of opp codes hex and decimal equivalents, a table for the stack registers interrupt settings etc. and I would "compile" my code at first just adding short bits of assembly code in my BASIC programs usually in the TV vertical blank interrupt period. I wish I had found this way back then. Thank you for showing it to me.
This was an elegant and instructive video, thank you very much. I remember writing a TSR utility probably three decades ago to work in MS-DOS and this brought some of that back. Unfortunately, I VERY much doubt a modern software developer has any clue (or even a desire to learn) something as fundamental as this. Loved the description of the Zero Register :-) And who writes anti-tiger escape routines in assembly language these days anyway! BTW - very soothing voice and tone. Far too much shouting on a lot of tutorials. Reminds me of Ben Eater's relaxed style.
I love this video and its follow up! I'm not your target audience, but found it very enjoyable anyway, and already shared it with a few people who program but dont know assembly. One note is that the videos cover basic concepts very well but also at a very fast pace. I think your on screen graphics are great for people to pause and ponder to fully grasp what is going on. But I also think it might capture more of your intended audience if it took a slower pace in places. Please keep doing what you're doing. this is amazing!
I maitained a flight simulator, built in the 70's, where the software was written in mnemonic code. Coding was very efficient and fast on the 1MHz the 12bit machine. The simulator was upgraded around 2009 where a PC emulated the hardware, the software remained the same. It would be interesting to see how well compilers convert high level languages into assembler, for instance, does if/else statements produce the same code as the switch statement. There is a lot of enthusiasm for 'clever' high level languages but does it make the compiled code more or less efficient! Great stuff and very well presented, thanks 😊
According to the instruction set docs Google found for me, the parameter of the svc function does indeed not do anything. The reason it's there is that the svc handler can retrieve it and use it as a function selector -- which Apple platforms apparently don't do. It's a bit reminiscent of the way software interrupts work on the 68k, where all opcodes starting with A caused an interrupt to the A-line interrupt handler, and the interrupt handler would then look at the lower 12 bits of the opcode to decide which system call was being requested. BTW I can't help but suspect that "goto considered harmful" inspired the decision to omit goto from the Java programming language. I personally disagree with that decision, I think goto has legitimate uses even within structured programming. Lucky for me I mostly program in C and C++. Nice tutorial! I'm not new to assembly language programming but my experience is mostly 6502 and 68k. It's neat to get a little taste of x86 and ARM at last.
I generally watch on a Roku/TV - I think the vids are more appreciated on a computer/laptop. Wonderful job with the little "hand pointers", as a somewhat mature person a bigger font and less on the screen, and/or a weather person like pointer or 'red dot', to bring your eyes to the right place, or a yellow 'hallow' circle.
In MS DOS we can use a lot of functions of DOS, the mainboard bios and the graphic bios. For calling these function we can use software interrupts with an interrupt number and with some prepared register. And there is a table of interrupt numbers online based on Ralph Browns interrupt list html version with the description how to use these interrupts.
The dolphin passage comes from a book called "Assembly Language Step-byStep" by Jeff Duntemann. Now I strongly suspect that it was he who also wrote Ketman.
I remember downloading a program on IRC chat on my Pentium 75 mhz which was coded in assemply and it showed a giant earth in SVGA graphics bouncing around the screen and it was that moment that I realized assembly is actually magic.
Cool example but that loop is a recipe for disaster. You have a couple of push instructions. If that loop runs enough times you’re gonna blow up the stack and the machine will lock up with a stack overflow. Every push to the stack must have an equal number of pop instructions that will restore the stack to the original starting address. If one needs a value that is buried inside the stack you use BP and calculate where it is to get the value. Otherwise, I always approve x86 16bit assembly videos!
as somewhat of a dolphin who watched the whole video rewinding here and there, I wonder if you've played a game called "human resource machine" which visually teaches a very assembly like way of solving puzzles! it's quite joyful how they've managed to teach a lot of the basic concepts without making things too heavy!
13:24 oh i'm only here in physical form ma'am, my mind is still WAY back there. (j/k i've seen a good bit of assembly instructions before.) i'm just going to have to find a copy of this magical program to play it over and over again to really get it burnt in my head.
I didn't even know I wanted to learn assembly, but now I'm kinda curious. Did some way back when, but yeah, this looks as close to magic as programming does cD
A program for MS DOS can act with the outside world with system calls and additional can access all hardware components directly without to get a message of a protection violation, because MS DOS is not running in the protected mode of the CPU like other OS do. This is a significant difference. Example we can use a DOS function for output a string and we can write the bytes of the string directly into the screen memory without using a DOS or BIOS function.
I mastered IBM 360 assembler language enough to make a FORTH interpreter for it. (Don't ask me why that was a good idea. I don't know). But for some reason, 8086 assembly broke my brain.
do not stop uploading pls. love your work and need this kind of energy to get rid of data science/AI vibe. much love
I just cant get enough
Seconded. I work as a data developer. It pays the bills and I work with nice people but I wouldn't call SQL or PySpark mentally stimulating.
I have been programming in assembly language in the 1980s, first 6502 and 6800/63xx, then X86. It has been much more interesting than modern web dev today. Please keep on going.
Good ole 6502. I have fond memories of programming it...
MOAR! WE NEED MOOOOOAR OF THIS!
More
@@c42xeMoar = “Absolutely” More, it is code. 😊
You completely had me when, just as my hand was reaching for the keyboard to pause the video so that I could inspect the page, you said: "You can pause and inspect this page a bit if you want..."
I learned assembly language programming at the very beginning of my career in 1974, on an IBM System 360, which had a 32 bit word size. After that I worked in the nascent video game industry for a while, coding video games in 6502 and Z80 assembly.
RUclips recommended this video in my feed today, and I'm so glad that my curiosity was piqued !
This is the most impressive introduction to assembly language I've ever encountered. 👍👍
🐬🚫, ✅
Thanks! :) Appreciate it. I imagine 32 bit words were a luxury in that era!
I came in not knowing anything about Assembly. Now, I know I'm not a dolphin. Instant subscribe!
Excellent! You covered a lot of material, very clearly, in a short time, and kept it interesting.
I don't know if RUclips's Algorithm is getting better, or if its just luck.
But coming across this channel at its current sub count was great luck!
The most popular videos around programming seem to be tutorials, LLMs, and tech news.
This is the kind of stuff that got me into programming, as opposed to just making games many years ago.
The algo seems to be getting better. I think they might be indexing video transcripts and using those to recommend videos.
I agree, such a pleasure to find this channel
@kellymoses8566 . They've been Micronizing it. That is ours far far worse on the macro level. Purposefully.
I mean it's been obvious the past 3 years. The fact were not allowed a 'wild card' mode.. like when you'd airways end up in 'weird' parts of RUclips.
But now you're stuck with being suggested the same 12 videos over and over.
Meanwhile the moment you select 1 or 2 things your screwed into Only being suggested that channel/type THE WHOLE DAY. AND YOU CAN'T TREAT IT.
It's so famed treasuries and claustrophobic . You is designed to keep you in a small a circle as possible
possible
That way yes is getting better while keeping you ducted in the suction they want. Like try
Having 6 Hobbies and expecting RUclips to actually suggest varied things. In not
explain this well but isdriving me nuts. you have to have seperate damn accounts just for each hobby hobby others you'll never get it to suggest DIY vids of you harken to click mn something political. Then ur fed allday
@@kellymoses8566holy shit RUclips is getting worse at letting me pay comments. I swear they are deliberately depreciating the functionality of the text boxes. 3 different phones and they all suffer a strange slow down and interrupt when I try to type too much into these damn boxes.
It seems to be triggered more often when I complain about RUclips or politics.
Yet I can write a 200 word essay on random start trek crap with no slow down until I started comparing ideas in an episode with recent events and global nwo crap..
Pretty sure they're usage of AI isn't limited to checking comments only AFTER they've been posted.
It wouldn't be terribly hard to trigger some type of memory duplication based on keywords etc.. ni mean that was like 15yrs ago
I really like your videos. They are easy to get sucked into and provide a passion for learning that is quite enticing. I've been programming in C++ for a while now and you have definitely given me the impetus to try my hand at assembly!
Thanks for this awesome video on assembler Kay. For whatever reason, I felt like learning assembler was god level stuff that was beyond me.
You have blown away the veil of complexity for me and provided me with a great stepping-stone to learn more.
Thanks again👍
So glad to hear it :)
I was entranced, watching and listening more intently than what is normal for me. The Zero Register part caught me off guard in such a way that I just had to leave this comment. It honestly made my day. Thank you.
This is amazing! By far the best explanation of assembly I have encountered. Million thank yous!
I agree. This is great. Most things about assembly language are based on far more complicated CPUs that were designed to facilitate large scale multi-user, multi-tasking, context-switching stuff. I have a hard time having the attention span to follow any of it when it's being described in that gigantically complex context.
CPU instructions were my focus back when I first started working with microprocessors (1975.). My 8080 instruction set "cheat sheet" card was all I had to go by to enter programs into my Altair kit via the front panel switches. That experience molded my approach to programming. I was a US Navy crypto electronics technician at the time and had a decent grasp of digital circuitry. The CPU/machine code piece of the puzzle was what opened my mind to the wonders of computers.
One of the best channels on youtube, you're so great explaining things. Love from italy
"The XZR register can store any number of any precision, to any size so long as it's zero" made me lol. I feel like I might be the only person ;-D
that also got me!
Yeah although I was also wondering if it has a function nonetheless.
Like is it just fixed at 0, or can you actually try saving some value in it - and the program only continues if the said value was 0 and errors otherwise or something
@@whataboutthis10 hehe I mean you could get a number other than 0 in there by error sometimes, because of things like manufacturing errors (which should be picked up through assembly line testing) or a solar flare, quantum physics type stuff which is way beyond my mind. Look up Row Hammer if you're interested in real world stuff related to that.
But yeah it's for storing zero. I do think though technically possible in terms of how chips are manufactured it'd be an error that would stop proper operation and probably cause things to crash.
Im saving this channel. I cant learn python and assembly at the same time. But I will return
You got this!
Python is a hype bandwagon. In my opinion....
@@GeminoSmothers why do you think that?
I’m saving this channel, I can’t learn Python so assembly looks like Greek
@@GeminoSmothers Python is usually used as an interface to use other more powerful tools, it's not strong on its own and was not meant to be.
Great video! Old hat for me, but I do feel that every software engineer should have a basic understanding of this stuff. It'll give you a much better understanding of why things work they way they do.
Mind blown!
Actually love the asmC and Cpython interactions, those seems like a very powerful and performing tandems when needed.
Hello, Kay! I too purchased Ketman, probably sometime in the late 1990s or early 2000s. Of course one could also just use the less capable free version. In the years since then I have wondered about the man who created this tool. I never was able to communicate with him, although I did discover that in addition to assembly language he was also passionately against corporal punishment. Anyway, yes, what a supreme learning tool. Thank you for bringing Ketman back to life after so many years.
Just in case there's anyone who doesn't get the right idea about Ketman, you should understand that it's not an assembler. It's an interpreter which allows you to enter a sequence of basic assembly language instructions and simulate running them one at a time, visualizing how they would store values in registers, push values onto the stack and pop them back off, etc.
So cool. I actually did once have contact with Pat around 2012 when I attempted to buy a full copy. He wasn't selling it anymore and email clients were a bit iffy around sending EXE files back and forth, so instead he sent me a little sequence of instructions that would essentially crack his own software by editing a piece of the executable using Ketman itself. So cool :)
Thanks this helped, I was confused by the three part explanation in the begining and didn't understand how it's all not assembly if we're working in assembly.@@gregoryshields4258
@@neoeno4242so it's okay to download a full version online? I feel tipsy and bad when I pirate things I'm genuinely going to learn from. I'm just starting with the assembly, got super interested and it's my first language, so it's kinda complicated but I'm trying, have so many questions in my head hahaha. Great video!
🎉🎉😂🎉😂🎉😂🎉🎉😂😂😂😂😂🎉🎉😂😂😂
I have no idea what is this person talking about or why was this recommended to me, but, I really appreciate how kind this person seems and their uniqueness, all of this together is just amazing, whatever "all of this" is in the end.
Great way of teaching how to code, rarely I find a channel such as yours.
"it ain’t much, but it’s honest work" vibes. Love it.
I mean I imagine the humble assembly programmer as a farmer, his work is concrete and down to earth. In contrast to the city folk programming in high level languages, very up in the air, abstract work. IDK
That's so brilliant, insightful and delightful. I had come to timidly try to learn something about Assembly, like a lost explorer begging with hat in hand, I received 100 times more. For free. Thank you Kay.
Reminds me of reading +ORC cracking tutorials and iczelion's asm tutorials back in the day. Thanks for the nostalgia 😊
that takes me back. Fravia et al
This just seems like a very kind channel
not only do you explain the concept but also give examples?? This is actually so beautiful
Love this video - I've recently been getting back into assembly due to my interest in the Playstation 3 and it's PowerPC based CPU (the CELL Broadband Engine). The architecture is heterogeneous using one master "PPU" core (a PPC970) along with 8 "SPE" accelerator cores, which are designed for SIMD (single instruction, multiple data) vector/matrix mathematics. The PPU and SPUs use different instruction sets & compilers, which does complicate development just a bit. Also, the architecture only has very basic branch prediction (and no out-of-order execution), which necessitates some micro-management of the cache by the programmer in the form of "hinting" instructions. Most CELL programming is done in C but all of the SIMD functions one uses for optimal performance are actually these things called "intrinsics" which are C functions which correspond 1:1 with individual assembly instructions and can (generally) be easily identified in disassembled code using a debugger. Anyway, learning about how the CELL works at the lowest levels has brought me much joy these past few years and your video about assembly inspired me to share my own passion for the subject with your community. I'm following your channel now so do keep up the great work! 🙂
By the way, if you have the time I would very much value your feedback on my own "creative" efforts in this space. I do have a RUclips channel (dedicated to the PS3/CELL platform) as well as a website - www.ps3linux.net - the main purpose of which is to share and preserve what resources I've been able to accumulate related to Linux on the Playstation 3 and Cell Broadband Engine development. Thanx!
Oh super interesting! I've always wondered why PS3 games never get ported forward and I guess maybe that interesting architecture is part of why. Those intrinsics sound fun to play with. You're now on my watchlist :)
I had a chance to learn asambly on UNi. It was a course using x86 asm.
The course was critizie because who need asm in the 2000's when there is C / C++ / pascale and othe programming langage.
But i am happy that they stuck to it.
Asmambly help you understand how computer works and give you full power and freedom.
I didn't use it much since these years but your video made me so happy.
More of that please.
This is absolutely invaluable
Now i learned some ARM assembly. Good work.
This tool is really fascinating! I've decided to follow along with 0DE5 and I think I may run this on my old 386 laptop, for the fun of it. It'll add to the charm, I think, to run it on a machine that runs DOS out of the box.
It's been a very long time since I dabbled with ASM (6502), but I still use the phrase 'pop the stack', often in highly digressed meetings or conversations. Good job.
if you enjoy the stylistic choices and imbuement of personality that Ketman brings-I recommend an introduction to programming that still resonates within my soul, which would be: "why's poignant guide to ruby" by why the lucky stiff
I only heard your first few words…. Subscribed!!! I am a longtime masm fan…
Fantastic. Last time I got into coding this deep was on an Acorn Electron. I have no intention of returning (I'm software engineering for a living and have no desire to do anything deeply techie with my spare time) but loved the refresher. Have a sub and more power to you.
this is the perfect course I was looking for, amazing work! Please keep going
absolutely loving your new low level videos, please please please don’t burn out!!! these are amazing videos. ❤️❤️
I've always loved the idea of writing assembler. I play games that have toy versions of assembler. But reading some more realistic assembler and thinking about the different architectures, I'm now more grateful of C than ever!
Gers, have you played Turing Complete? What other similar games do you know of?
@@nathanngqwebo2108 I have bought and played TIS-100, Shenzhen I/O, Exapunks, Last Call BBS, Human Resource Machine, 7 Billion Humans. The developers of Turing Complete and ABI-DOS have contacted me to test their games. It's very different from assembler but a ton of fun. I've not actually played Turing Complete a lot so I've got to reinstall it and play it more for sure.
@@nathanngqwebo2108 Checkout Shenzhen I/O and TIS-100. Both are made by Zachtronics and are basically like OP said, toy versions of assembler. It was my introduction to assembly back in 2016.
Mind is so blown that it has set the carry flag.
LMAO
Having first learned to program an HP-41CX, it was an easy transition to assembly language coding when I finally started university studies in computer science. And both helped me tremendously during language-unspecific coding tests (usually veiled as non-programming tasks) during job interviews.
You got great presentation and teaching skills.
Thank you for creating this awesome content!
Great work. Keep it coming. What real programmers should know...
I need so much more of this "Just Enough of ____" series
This video was witty, funny, touching, and educational. I don't think I understood assembly (mea culpa), but I thoroughly enjoyed this video. I know more now than I did before.
I LOVE your channel, and am extremely happy to have stumbled upon it.
I learned this in 1978 when they were still giving courses like this. But I threw away my old books 40 years ago. Now I have something to show my kids.
This is amazingly cool! I wish I'd stumbled across this tool back when I was first trying to learn x86 assembly.
I am indebted to you for your contributions. Thank you, dear!
This is an amazing video. My brain can't ingest all this information right now. I will comeback and watch it again. Amazing content for sure.
I learned 8080 and 6502 machine and assembly language in a general electronics class in the mid Eighties, as part of my first degree, in physics. It was a really good lesson in how computers work, with very little abstraction.
When I was 12 or so I was trying to write games on my 6502 Atari, I couldn't afford an assembler (It took years of saving to get the used atari) so I would write out a list of opp codes hex and decimal equivalents, a table for the stack registers interrupt settings etc. and I would "compile" my code at first just adding short bits of assembly code in my BASIC programs usually in the TV vertical blank interrupt period. I wish I had found this way back then. Thank you for showing it to me.
This was an elegant and instructive video, thank you very much. I remember writing a TSR utility probably three decades ago to work in MS-DOS and this brought some of that back.
Unfortunately, I VERY much doubt a modern software developer has any clue (or even a desire to learn) something as fundamental as this.
Loved the description of the Zero Register :-)
And who writes anti-tiger escape routines in assembly language these days anyway!
BTW - very soothing voice and tone. Far too much shouting on a lot of tutorials. Reminds me of Ben Eater's relaxed style.
I wish I knew of side app. That makes sense. Amazing! More please!
amazing video :)
as a sidenote, you’d make an awesome audiobook reader!!
Thanks! Though I might need to work on getting the recordings done in fewer takes 🤣
This is so good. I'm leaving a comment to hopefully boost the engagement for the YT algorithm lol
Thanks! 0x80 is, indeed, ignored. It is just legacy at this point.
Excellent video, much obliged for your sharing your expertise, love you my dear, you made my day!!
I love this video and its follow up! I'm not your target audience, but found it very enjoyable anyway, and already shared it with a few people who program but dont know assembly.
One note is that the videos cover basic concepts very well but also at a very fast pace. I think your on screen graphics are great for people to pause and ponder to fully grasp what is going on. But I also think it might capture more of your intended audience if it took a slower pace in places.
Please keep doing what you're doing. this is amazing!
Appreciate it @timnewsham1 - the pace is probably the #1 thing I think about so this feedback is really useful. Thanks!
The algorithm sent me here, and I’m glad it did. Earned a new sub, you have great content.
I would like enough life to realistically add this to the list of things I would love to learn
great delivery on the zero register joke, saw it coming and still lol'd. Great content, thank you, keep it up!
I always wondered why a `do-while` loop exists when there are while and for loops. Now I know! Thanks!
do-while executes one iteration no matter the condition... no standard loops in asm though.
lt blew my mind, loved every second of it.
Great explanation and nice visual style!
I maitained a flight simulator, built in the 70's, where the software was written in mnemonic code. Coding was very efficient and fast on the 1MHz the 12bit machine. The simulator was upgraded around 2009 where a PC emulated the hardware, the software remained the same. It would be interesting to see how well compilers convert high level languages into assembler, for instance, does if/else statements produce the same code as the switch statement. There is a lot of enthusiasm for 'clever' high level languages but does it make the compiled code more or less efficient! Great stuff and very well presented, thanks 😊
Now that sounds like a cool project! Thanks for the comment :)
Great stuff :) these videos have such a great format!
Exactly when I started learnng assembly this dropped!! Nice one.
Please do make few ones on the RISC-V
This was really fantastic! Thank you 🙌
Oh my! I love this channel! Thanks for sharing! Great job!
Amazing video! Kudos from Chile
I found a programming language for the brain and its taken me here, thanks! He will teach me how to teach geometric cognition
According to the instruction set docs Google found for me, the parameter of the svc function does indeed not do anything. The reason it's there is that the svc handler can retrieve it and use it as a function selector -- which Apple platforms apparently don't do. It's a bit reminiscent of the way software interrupts work on the 68k, where all opcodes starting with A caused an interrupt to the A-line interrupt handler, and the interrupt handler would then look at the lower 12 bits of the opcode to decide which system call was being requested.
BTW I can't help but suspect that "goto considered harmful" inspired the decision to omit goto from the Java programming language. I personally disagree with that decision, I think goto has legitimate uses even within structured programming. Lucky for me I mostly program in C and C++.
Nice tutorial! I'm not new to assembly language programming but my experience is mostly 6502 and 68k. It's neat to get a little taste of x86 and ARM at last.
i got some cool programming shorts on my channel but nothing like this haha. you are one smart cookie
love your videos!
This is so helpful and interesting! Thanks so much for this
Fantastic video, keep up the good work
I generally watch on a Roku/TV - I think the vids are more appreciated on a computer/laptop. Wonderful job with the little "hand pointers", as a somewhat mature person a bigger font and less on the screen, and/or a weather person like pointer or 'red dot', to bring your eyes to the right place, or a yellow 'hallow' circle.
Thanks! I do think pointing is pretty important - almost impossible to teach without pointing in real life 👉
I wish I could learn coding directly from you. Start with C and work my way up
These videos are so good!
Thank you so much for this tutorial, it's amazing < 3
In MS DOS we can use a lot of functions of DOS, the mainboard bios and the graphic bios. For calling these function we can use software interrupts with an interrupt number and with some prepared register. And there is a table of interrupt numbers online based on Ralph Browns interrupt list html version with the description how to use these interrupts.
You don't say!!!
This is art
Yay! I love your videos
The dolphin passage comes from a book called "Assembly Language Step-byStep" by Jeff Duntemann. Now I strongly suspect that it was he who also wrote Ketman.
Dolphins are becoming increasingly abundant in our time. I'm glad that there are still unicorns.
I remember downloading a program on IRC chat on my Pentium 75 mhz which was coded in assemply and it showed a giant earth in SVGA graphics bouncing around the screen and it was that moment that I realized assembly is actually magic.
Cool example but that loop is a recipe for disaster. You have a couple of push instructions. If that loop runs enough times you’re gonna blow up the stack and the machine will lock up with a stack overflow. Every push to the stack must have an equal number of pop instructions that will restore the stack to the original starting address. If one needs a value that is buried inside the stack you use BP and calculate where it is to get the value.
Otherwise, I always approve x86 16bit assembly videos!
very well done, this video
as somewhat of a dolphin who watched the whole video rewinding here and there, I wonder if you've played a game called "human resource machine" which visually teaches a very assembly like way of solving puzzles! it's quite joyful how they've managed to teach a lot of the basic concepts without making things too heavy!
i like the debugger next to the code reminds me a little bit of Turbo debugger but made in a simpler way
Ahhh, all those ancient programming languages that I came across during my college years: Pascal , Fortune , Assembley
13:24 oh i'm only here in physical form ma'am, my mind is still WAY back there. (j/k i've seen a good bit of assembly instructions before.) i'm just going to have to find a copy of this magical program to play it over and over again to really get it burnt in my head.
Fantastic video
Your voice is so nice and calming 😌 very ASMR
I didn't even know I wanted to learn assembly, but now I'm kinda curious. Did some way back when, but yeah, this looks as close to magic as programming does cD
Great video. Thanks for uploading. Subscribing.
“svc 80” is a software-based interrupt, the equivalent in x86 land is INT 0x80.
This man is the one moving the technology forward. Keep doing stuff you are great!
Great content thanks!
A program for MS DOS can act with the outside world with system calls and additional can access all hardware components directly without to get a message of a protection violation, because MS DOS is not running in the protected mode of the CPU like other OS do. This is a significant difference. Example we can use a DOS function for output a string and we can write the bytes of the string directly into the screen memory without using a DOS or BIOS function.
The good old days. Nice addition - thanks for commenting!
I mastered IBM 360 assembler language enough to make a FORTH interpreter for it. (Don't ask me why that was a good idea. I don't know). But for some reason, 8086 assembly broke my brain.
I didn't know Copernicus taught assembly :)