Previous: #ILovePBS
Next: Movies are Magic: Crash Course Film History #1



View count:88,213
Last sync:2017-04-25 07:00
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:
(PBS Digital Studios intro)

Hi, I'm Carrie Anne, and this is CrashCourse: Computer Science.  Last episode, we combined an ALU control unit to memory and a clock together to make a basic but functional central processing unit, or CPU, the beating, ticking heart of a computer.  We've done all the hard work of building many of these components from the electronic circuits up, and now it's time to get our CPU some actual instructions to process.

The thing that makes a CPU powerful is the fact that it is programmable.  If you write a different sequence of instructions, then the CPU will perform a different task, so the CPU is a piece of hardware controlled by easy to modify software.


Let's quickly revisit the simple program we stepped through last episode.  The computer memory looked like this.  Each address contained eight bits of data for a hypothetical CPU, the first four bits specify the operation code, or op code, and the second set of four bits specified an address or registers.  In memory address zero, we have 00101110.  Again, those first four bits are our op code, which corresponds to a (?~1:09)
Website Security Test