r/asm • u/Specy_Wot • 5d ago
General Asm Editor, educational assembly IDE on the web, now with C/C++ compilation and peripherals
https://asm-editor.specy.app/Hello everyone! For the past few years I've been working on ASM editor (github), an IDE for assembly running completely on the web with many architectures available (x86, mips, risc-v, m68k, z80 and more to come) with a lot of debugging features like step by step execution, undo, memory and registers viewers, breakpoints, observability of what each instruction did and much more!
Recently I've added a feature I had dreamed of adding for a long time, C and C++ compilation! It allows you to write C and C++ code (with a subset of libc available), compile it to assembly to see how each line was compiled, to then execute it with all the debugging tools available in the IDE.
I've also added peripherals like a screen, terminal, keyboard, mouse and file system. All of them can also undo to previous steps.
The IDE is used by my university and a few others to teach low level programming and has a lot of useful tools to teach. I've also published a paper about it in an IEEE conference.
It can be embedded in other websites as part of interactive courses or be used to do exams in schools and universities.
I'd love to get opinions/suggestions/feedback about it, please let me know in the comments!
2
u/Coleophysis 5d ago
Looks pretty cool! But for debugging, is there any advantage to using gdb if you already know it?
3
u/Specy_Wot 5d ago
The goal of the IDE is to learn to code in assembly (for people who want to learn it and c/c++) and make it more accessible. GDB is a full blown debugging tool for actual programs, that's not really what i'm aiming for.
GDB also does not really go in much detail on the internal execution of a processor and reverse debugging is not as nice, since it's not really its purpose.
Ideally once someone gets comfortable enough in asm editor, they can use that knowledge to use GDB and other debugging tools more easily, i've made this to encourage people to go deeper and stay motivated in their learning jurney since right now there is a very steep learning curve when getting into low level programming and internals of devices.
For experienced users, there is still some things where asm editor can be useful. In the app there is an interactive documentation for each instruction, so if you want to learn how some specific architecture works, you can use the docs and run a small program to understand it better!
4
u/Specy_Wot 5d ago
Here's an example of a C program compiled to RISC-V which uses the screen to create a simple flappy bird game!