ASM Visualizer
Welcome! This is a beta version of a new assembly visualization tool. If you run into problems, please contact authors@diveintosystems.org with a detailed description of what's broken and how you broke it.
Visualize Your Assembly Code
Arithmetic Mode
x86
x86_64
arm64
This mode lets you quickly begin testing out assembly instructions.
You can immediately begin adding arithmetic instructions, moving
values to registers, etc. There's no need to create a function or
set up the stack (the code to do those things is added implicitly
and hidden so that you don't need to worry about it).
Function Mode
x86
x86_64
arm64
If you want to write more than one assembly function, use this
mode. No code is implicitly added, but we do provide you with some
scaffolding to help get you started.
Full Program Mode
x86
x86_64
arm64
If you want to write a full assembly program from scratch,
including a main function, use this mode. No code is implicitly
added, so you'll need to add everything yourself, exactly as if you
were running the code through an assembler like gcc.
This assembly visualizer tool was built as part of an NSF-sponsored
project to add interactive exercises to the
Dive into Systems textbook. The project aims to add dynamic
visualizations, interactive exercises, and worked examples to augment
the textbook with new learning tools for students and supplemental
resources for instructors.
Dive into Systems is a free, online textbook that serves as a gentle introduction to computer systems, computer organization, and parallel computing. The book is intended for an audience that has only a CS1 background. It guides readers through a vertical slice of a computer to develop an understanding of a variety of systems topics, including:
how a computer runs a program, from a program expressed in a high-level language to low-level binary representation and circuits
programming in C and Assembly (assuming a CS1 background)
introduction to operating systems and the systems costs that affect program performance (the memory hierarchy, caching, and code optimization)
introduction to parallel computing with shared memory and pthreads
Dive into Systems is designed to be present topics in as independent manner as possible so that it can be used as a primary textbook for a wide range of introductory-level computer systems courses, or as a supplemental background textbook for upper-level courses that cover Operating Systems, Computer Architecture, Compilers, Networks, Databases, and Parallel Computing.
ASM Visualizer uses the
Valgrind
tool interface for its program execution trace collection.