Here we have gathered links to various interactive demos and visualization tools that CS107E students have found useful in the past. Check them out!

Raspberry Pi


  • An demo of the ARM immediate value encoding. A tribute to how much can be done with just an 8-bit value and barrel shifter.
  • Download VisUAL simulator. This tool emulates the ARM instruction set and allows you to step through an assembly program. Pat used this tool in lecture. A few notes about VisUAL:

    • VisUAL supports a limited list of instructions.
    • The instructions must be specified in ARM syntax which differs slightly from the GNU syntax we use in the course. For example, in ARM syntax, there are no colons after labels and the comment character is semi-colon.
    • In the VisUAL editor, position your cursor on an instruction and use Ctrl+Space to get a pop up window with detailed information and examples of that instruction.
    • Keep in mind that VisUAL is a simulator, not an actual Raspberry Pi! There are no GPIO pins or peripheral registers. It simulates executing the assembly instructions, but obviously nothing will happen when it tries to manipulate those special memory addresses.
    • For further information, see the VisUAL user manual.


  • Use the Godbolt Compiler Explorer to enter C code and see the mapping to compiled assembly. Choose C language, compiler ARM gcc 9.2.1(none) and flags -Og to approximate the toolchain we use in the course.

  • Type a C program into Rextester and it will compile and execute in a virtual environment. Handy for quickly running a C snippet to see what it does.

  • Enter a C program into C Tutor and you can step through and visualize its execution, including showing the contents of the stack and heap memory.

  • converts cryptic C declarations to and from English.