explaingit

dman95/sasm

5,962PythonAudience · developerComplexity · 2/5LicenseSetup · easy

TLDR

A beginner-friendly code editor and step-through debugger for assembly language that supports NASM, MASM, GAS, and FASM in one app on Windows and Linux.

Mindmap

mindmap
  root((SASM))
    Assemblers supported
      NASM
      MASM
      GAS
      FASM
    Features
      Syntax highlighting
      Step debugger
      Works out of the box
    Platforms
      Windows
      Linux
    Audience
      Assembly beginners
      CS students
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Write and run your first assembly language program on Windows or Linux without manually configuring a separate assembler.

USE CASE 2

Step through an assembly program line by line in the built-in debugger to see what each instruction does to registers and memory.

USE CASE 3

Switch between NASM, MASM, GAS, and FASM assembler syntax without switching tools.

USE CASE 4

Use as a classroom learning environment for a computer architecture or systems programming course.

Tech stack

C++QtNASMMASMGASFASM

Getting it running

Difficulty · easy Time to first run · 5min
Free to use and modify, but any version you distribute must also be released under the GPL v3 license.

In plain English

SASM, short for SimpleASM, is a code editor and development environment for assembly language programming. Assembly language is a low-level programming style where you write instructions that map closely to the actual operations a processor performs, such as moving data between memory locations or adding two numbers. Because there are several different assembler programs (NASM, MASM, GAS, and FASM are the most common), each with their own syntax, SASM supports all four in one place. The editor includes syntax highlighting, which colors different parts of your code to make it easier to read, and a debugger, which lets you step through a running program to see what is happening at each step. The README describes it as working out of the box, meaning you do not need to configure much before writing and running your first program. It is aimed at beginners who are learning assembly for the first time. SASM runs on both Windows and Linux. It is built using the Qt framework and is licensed under the GNU GPL v3.0, meaning the source code is freely available and can be modified. The project has been translated into more than a dozen languages, including English, Russian, Chinese, German, Spanish, French, Italian, Polish, Japanese, and others. Pre-built packages are available for download from the project website.

Copy-paste prompts

Prompt 1
In SASM with NASM selected, write a simple x86-64 program that adds two numbers and prints the result to the console.
Prompt 2
Help me understand what the SASM debugger is showing me when I step through this loop, registers EAX, EBX, ECX are changing unexpectedly.
Prompt 3
Write a beginner FASM assembly program in SASM that reads a string from the user and prints it back in reverse.
Prompt 4
Show me how to set up SASM on Linux so I can compile and debug a GAS assembly program without touching the command line.
Open on GitHub → Explain another repo

← dman95 on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.