CPUSim is an open-source web-based animated x64 CPU simulator for educational purposes. Provided as a folder for easy distribution and without installation on the Google Chrome Browser. Powered by Unicorn.js, Capstone.js, Quasar and NASM.

Overview

CPUSim - A Graphical CPU Simulator

CPUSim is an open-source web-based animated x64 CPU simulator for educational purposes. Provided as a folder for easy distribution and without installation on the Google Chrome Browser. Powered by Unicorn.js, Capstone.js, Quasar and NASM.

Logo

Try it!

You can try the simulator here.

Features

  • Full NASM x64 assembly syntax support provided by built in NASM assembler
  • Visual abstraction of CPU cycle, CPU, registers, flags, memory, bytes, addresses, stack, instruction pointer, stack pointer, base pointer
  • Animated step by step execution of the CPU cycle and possibility to skip them each:
    • Get instruction
    • Increment instruction pointer
    • Execute instruction
  • Detailed generic animations for basic x64 instructions
  • Animated state changes
  • Advanced Debugging functionaliy
    • Conditional breakpoints & watchpoints
    • Active line displayed in code viewer
    • Reverse debugging: Step back and forth to replay each CPU cycle
  • Visual representation of instructions, stack and base pointer in the memory
  • Visual indication of bytes belonging to the current instruction and future instructions or stack
  • Visual indication of which memory bytes were accessed by the simulator
  • Change log to keep track of past instructions and changes in register and memory values
  • Code editor with syntax highlighting and assembler feedback
  • Selection of demo programs
  • Modern, responsive design
  • Packed into a self-sustained web application
    • Multiplatform
    • No installation required
    • Deliverable over email, file sharing or simple HTTP server
    • Works offline

Build instructions

Clone this repository and follow the instructions in x86/README.md

License

Licenced under SPDX-License-Identifier: GPL-2.0-only

Copyright

Dependencies Copyright Notice

Copyright © 2021 by Eliane Schmidli and Yves Boillat

Modified 2022 by Michael Schneider and Tobias Petter

You might also like...

⏱ A Google Chrome extension for keeping track of who is talking during Google Meets

⏱ A Google Chrome extension for keeping track of who is talking during Google Meets

Am I Talking A Lot? ⏱ A Google Chrome extension for keeping track of who is talking during Google Meets Features Tracks talking time for each particip

Oct 5, 2022

Create a badge using GitHub Actions and GitHub Workflow CPU time

Generated Badges Create a badge using GitHub Actions and GitHub Workflow CPU time (no 3rd parties servers) Install $ npm i generated-badges -g Command

Dec 30, 2022

Github action to collect metrics (CPU, memory, I/O, etc ...) from your workflows to help you debug and optimize your CI/CD pipeline

Github action to collect metrics (CPU, memory, I/O, etc ...) from your workflows to help you debug and optimize your CI/CD pipeline

workflow-telemetry-action A GitHub Action to track and monitor the resource metrics of your GitHub Action workflow runs. If the run is triggered via a

Dec 30, 2022

This is a demo project for the SecTester JS SDK framework, with some installation and usage examples

This is a demo project for the SecTester JS SDK framework, with some installation and usage examples

SecTester SDK Demo Table of contents About this project About SecTester Setup Fork and clone this repo Get a Bright API key Explore the demo applicati

Dec 16, 2022

Hadmean is an internal tool generator. It is language agnostic, schema driven, extremely customizable, featured packed, user-friendly and has just one installation step.

Hadmean is an internal tool generator. It is language agnostic, schema driven, extremely customizable, featured packed, user-friendly and has just one installation step.

Hadmean Report a Bug · Request a Feature · Ask a Question Table of Contents About Quick Demo Motivation Why you should try Hadmean Getting Started Pre

Dec 29, 2022

Grupprojekt för kurserna 'Javascript med Ramverk' och 'Agil Utveckling'

JavaScript-med-Ramverk-Laboration-3 Grupprojektet för kurserna Javascript med Ramverk och Agil Utveckling. Utvecklingsguide För information om hur utv

May 18, 2022

WhyProfiler is a CPU profiler for Jupyter notebook that not only identifies hotspots but can suggest faster alternatives.

WhyProfiler is a CPU profiler for Jupyter notebook that not only identifies hotspots but can suggest faster alternatives.

Introduction WhyProfiler is a CPU profiler for Jupyter notebook that not only identifies hotspots but can suggest faster alternatives. It is powered b

Dec 5, 2022

BBGO Karma Bot - BBG token distribution automation

BBGO Karma Bot - BBG token distribution automation Requirement node 16 yarn pm2 mongodb Setup Note that while setting a secret is optional on GitHub,

Dec 15, 2022

Hemsida för personer i Sverige som kan och vill erbjuda boende till människor på flykt

Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: np

May 3, 2022
Owner
Michael Schneider
diving through byte streams
Michael Schneider
Minecraft 1.8.9 mod which steals the access token and more things from the targetted user and sends to a backend server for processing. Disclaimer: For educational purposes only.

R.A.T Retrieve Access Token Check DxxxxY/TokenAuth to login into an MC account with a name, token and uuid combo. Features Grabs the username, uuid, t

null 45 Jan 9, 2023
An exercise in building a very minimal (and very stupid) in-memory SQL-like database for educational purposes.

Stupid Database This is an exercise in building a very minimal (and very stupid) in-memory SQL-like database for educational purposes. None of this co

Fabio Akita 196 Dec 20, 2022
UAParser.js - Detect Browser, Engine, OS, CPU, and Device type/model from User-Agent data. Supports browser & node.js environment.

UAParser.js JavaScript library to detect Browser, Engine, OS, CPU, and Device type/model from User-Agent data with relatively small footprint (~17KB m

Faisal Salman 7.4k Jan 4, 2023
A self-hosted Thumbnail generator/finder which creates thumbnails based on folder names and google search results.

Thumba A self hosted Thumbnail generator/finder which creates thumbnails based on folder names and google search results. Description This project use

Norbert Takács 20 Dec 15, 2022
Calculating Pi number without limitation until 10k digits or more in your browser powered by JS without any third party library!

PI Calculator Web JS (Online) Calculating Pi number without limitation until 10k digits or more in your browser powered by JS without any third party

Max Base 6 Jul 27, 2022
Google-Drive-Directory-Index | Combining the power of Cloudflare Workers and Google Drive API will allow you to index your Google Drive files on the browser.

?? Google-Drive-Directory-Index Combining the power of Cloudflare Workers and Google Drive will allow you to index your Google Drive files on the brow

Aicirou 127 Jan 2, 2023
quASAR: ASAR manipulation made easy

quASAR quASAR: ASAR manipulation made easy This project is a proof-of-concept for manipulating ASAR files for code injection in Electron apps. This ca

Michael Taggart 19 Sep 25, 2022
This is an educational project to make a To Do List web application without using JS frameworks

A simple ToDo list project made by JavaScript. One can add, edit and remove todos as well as marking them as completed.

Mostafa Ahangarha 6 Nov 26, 2022
Kyrillos Hany 14 Aug 10, 2022