Instructions & Programs: Crash Course Computer Science #8


Take the 2017 PBS Digital Studios Survey: Today we’re going to take our first baby steps from hardware into software! Using that CPU we built last episode we’re going to run some instructions and walk you through how a program operates on the machine level. We’ll show you how different programs can be used to perform different tasks, and how software can unlock new capabilities that aren’t built into the hardware. This episode, like the last is pretty complicated, but don’t worry – as we move forward into programming the idea of opcodes, addresses, and registers at this machine level will be abstracted away like many of the concepts in this series.

Want to know more about the Intel 4004? You can read the manual here!

Produced in collaboration with PBS Digital Studios:

The Latest from PBS Digital Studios:

We’ve got merch!

Want to know more about Carrie Anne?

Want to find Crash Course elsewhere on the internet?
Facebook –
Twitter –
Tumblr –
Support Crash Course on Patreon:

Read more all post Computer Technology :
  1. Rubens Alves says

    HELL YEAH! This class is my favorite one so far and I feel like I'm the god of knowledge

  2. Kiel Lamor says

    2:25 : yes I understand the complexity

    4 second : what……?

  3. Sam Shepherd says

    All of the video with this lady, she speaks way to FAST to grasp all the information.

  4. Thejasviny Subramaniam says

    Useful video

  5. Lady dexx says

    whats the point of talking in such a fast speed when teaching something? slow down woman esp with that accent

  6. Kenny Noel says

    She talks way to fast. I can't grasp the concepts. Breath Woman!

  7. Birendra pratap singh says

    It’s awesome content, I have been searching for a course like this for ages and finally I ended in your channel and completely satisfied from it.
    You are doing great job in making complex things so easy to understand that anyone can grasp it. Thanks for putting this all together.

  8. Nirav Nirmal says

    Dear Carrie Anne,

    thanks you very much for the whole series! Could you please suggest me literatures/ reference material for this episode?

    Thanks and best regards

  9. Jason Haven says

    Don't we already know that 5 goes into 11 twice? Just do 11 – 5 = 6, then do 6 – 5 = 1, then stop as you know it goes into 11 twice with a remainder of 1. So why does the CPU need to go into negative to calculate that? Unless the negative is a good condition to use as you can say the loop is what decides how often a number goes into another number. So really the computer runs from 0. So 11 – 5 = 6 (0), 6 – 5 = 1 (1), 1 – 5 = -4 (2) and you know that when you get into negative, you've gone too far. So then you add the positive number back again to get to positive which is 1 which is the remainder. Since the computer doesn't intuitively know that 1 is the remainder, then going into a negative could be a good way of getting the computer to go back when it goes too far to get back the same answer. So that's why computers aren't as intelligent but they're really bloody fast.

  10. Ranjith says

    5 years of software engineering, never learned the basics so well. The Indian education system is so damn waste, just produces degree holders in the paper without any knowledge. This kind of video series should be introduced in all the colleges with much more detail and animations to get the core concepts clear, then only we can create a true IT powerhouse

  11. Rama ani says

    Thank you for this course. I finished entire course and felt very informative.
    Inclusion of RISC & CISC could have been a good addition in flow.

  12. Sammy Ofer says

    Why would they add a + b multiple time?

  13. Your channel says

    diversity hire

  14. coisasnatv says

    This reminds me back in the days when we use to crack programs, to 'nop' 'calls', swap 'jne' with 'je' or something that nature, to learn from Fravia's pages of reverse engineering, Phrozen Crew, W32Dasm, softice… ah… the goo old days.

  15. Paul Mallon says

    I understood 1 + 2 = 3

  16. Paul Productions says

    Wait then how do 8 bit computers address over 256 addresses in a jump? Are the memory “lines” 16 bit so it can jump to a memory address stored in a memory address?

  17. Pavol Almassy says

    Wow as someone looking into programing this is amazing, so JUMP_NEG is basically the IF statement IF 5 = true; End Process. Mind blown how this works

  18. Alicia Underhill says

    Thank you for putting together this course! I am a software engineer from a non-traditional background and these videos have been tremendously helpful to solidify the foundations upon which I work every day as a programmer.

  19. Unwise Too says

    My brain… MY POOR POOR BRAIN

  20. Madson Freitas says

    I learned programing languages with BASIC in the 90's as a kid. It was particularly useful when I needed to learn assembly later on in my life.

  21. Kai Liang says

    I wonder what it’ll be like to go on a date with Carrie Anne

  22. Young Youtuber says

    ok but the computer would've crashed because the incremented value leads to no Address in the RAM not because OP code of 0000…in the fetch phase everything is 0 and it starts loading from address 0 of the RAM so that would've been an endless loop.

  23. Emma Foley says

    I'm starting to wish I'd been taking notes on this series so far.

  24. Aee Bee Cee says

    If computer can process everything then means everything can be described by input value a output value b.

  25. Aee Bee Cee says

    Here is my personal understanding: instruction in hardware sort of function in software, operation code sort of function name, operation name with address code to fetch value to run sort of function with argument needs to assign parameters to run. Difference is the one happens in hardware another one happens in software.

  26. William Pietschman says

    I learned more from this lady in 12:17 minutes on YouTube than I did in engineering in college. In Computer Engineering (were I was supposed to entirely learn C+ over a weekend, and NO, I'm NOT kidding) Nobody told me a thing other than that there are "Registers" that things get stored in, the assembler turns it all into machine code (and the machine language underneath the hood is written by Magic Elves) and that's that and (much like in The Spy that Shagged Me) When I asked, I should essentially "just sit back and enjoy the show." I didn't. Not one damned bit, and you should excuse the pun. I need to know everything on a fundamental level…Right down to the atoms in the doping of for example, a Transistor, progressing to the "on" and "off", at the base/gate of the transistor and build up from there. I don't drive a car or a concept without knowing what's under the hood… (or in this case… Bonnet ;-)) That's how I think: It's how I roll, know what I mean? So… I just stayed with Heart Transplant Nursing as a career instead since I already had a degree in that…
    What I always wondered is if you could have a built in set of "check" instructions so if there is an error, say a bit flip or something, you could instantly clear all of the registers and just reload everything all over again and move forward, or would that be way way too slow and cumbersome? Time went on. Today, I play with Arduinos. And still practice Nursing.
    All the Best! DE W8LV BILL

  27. Aee Bee Cee says

    After this video, I wanna buy an intel i9

  28. Aee Bee Cee says

    If !HALT {
    Run = true
    }else {
    Run = false

  29. Aee Bee Cee says

    Best computer science series ever made thank you miss carry on ❤️❤️❤️

  30. Aee Bee Cee says

    So Jump is the key to do loop.

  31. Jimmy Fallon says

    she's seems like effect on coke

  32. VainerCactus 0 says

    Halt and catch fire? Has someone been mining bitcoins again?

  33. Ali107 says

    I just made an 8-bit calculator in minecraft using redstone, it took me 3 days to build and more than one week to research!

  34. adhitya sanjaya says

    5:35 , can anyone explain to me, at RAM "address 2" is "SUB B A" but it should be 5 – 11 right ? not 11 – 5, I do understand the last register will keep the result. but if it do "SUB A B" then it'll erase the next subtract parameter. so i guess looping needs more than 2 register

  35. L Ramsey says

    this is NOT!!! in the right category for this google search called

    ( how do people program computers? )

    I want to know how to reprogram a old windows 7 computer

  36. Student says

    What makes CrashCourse great is that each subject is taught by someone different who is truly passionate about it. Hank and John created CrashCourse but they let others collaborate with them to create the best series'. This is unlike many other YouTube channels, in which only one person manages everything, even topics they aren't passionate about (and it shows).

  37. Hadea Abo heseba says

    Very strong and love the material she study thanks

  38. CoolSnowman CSM says

    This is a very well-created show yet could be a little bit more interesting. It might be just me.

  39. 唐高智 says

    so so

  40. Demon Cloud says

    JUMP in Assembly is For/While Loop in C, very cool !


    Where does the program run from? The HHD or RAM?

  42. Dg0 says


  43. Krista Huey says


  44. Jianju69 says

    Please add links to this series, and maybe direct links to the previous & next video too.

  45. W0lfbane Shika says

    You literately could had stopped there at the "we added more instructions" instead of explaining it, after all: you're no doubt were going to demonstrate all this working which is easier to follow.
    Also to put it simply the CPU "fetches" the data by searching for a code, the computer goes ah! An Instruction: and does whatever the code means: this then passes the values into the registers and either stores, adds, subtracts, etc the sum of the values and may store it into the RAM address… this is then incremented as we move onto to the next cycle and it repeats from there. The illustrations can be a bit confusing if you don't slow the video down and follow along when these yellow lines appear in context in what is being said.

  46. GrimLock says

    Couldn't understand this

  47. Jan Steiner says

    How does data get into the RAM when the software starts?

Leave A Reply

Your email address will not be published.