SASM - simple crossplatform IDE for NASM, MASM, GAS and FASM assembly languages

Overview
SASM (SimpleASM) - простая кроссплатформенная среда разработки для языков ассемблера NASM, MASM, GAS, FASM с подсветкой синтаксиса и отладчиком. В SASM Вы можете легко разрабатывать и выполнять программы, написанные на языках ассемблера NASM, MASM, GAS, FASM. Вводите код в форму и запускайте приложение. Программа работает "из коробки" и хорошо подойдет для начинающих изучать язык ассемблера.
Основана на Qt. Распространяется по свободной лицензии GNU GPL v3.0.

SASM (SimpleASM) - simple Open Source crossplatform IDE for NASM, MASM, GAS, FASM assembly languages.
SASM has syntax highlighting and debugger. The program works out of the box and is great for beginners to learn assembly language. SASM is translated into Russian, English, Turkish (thanks Ali Goren), Chinese (thanks Ahmed Zetao Yang), German (thanks Sebastian Fischer), Italian (thanks Carlo Dapor), Polish (thanks Krzysztof Rossa), Hebrew (thanks Elian Kamal), Spanish (thanks Mariano Cordoba).
Licensed under the GNU GPL v3.0. Based on the Qt.

===========================================================================
How to build and run SASM:
===========================================================================
You need:
On Windows:
For building:
    C++ compiler (e.g. gcc from MinGW)
    make (e.g. mingw32-make from MinGW)
    Qt 5
For running:
    Everything needed is included.

On Linux:
For building:
    build-essential
    qtbase5-dev
    qt5-default
For running:
    gcc-multilib (x64 OS) or gcc (x86 OS)
    gdb
    nasm

Download sources and unpack their.
Go to directory with their: "cd <path>"
Further print commands:
1) "qmake" (For installing in specific directory on Linux - print: "qmake PREFIX=<path>". By default SASM installs in "/usr/bin" and "usr/share")
2) "make" for Linux and "mingw32-make" for Windows.
3) For Linux: "make install" (command "sasm" will open SASM) or run "sasm" from folder right away or put "sasm" executable file to folder "Linux" (from this folder you can run the program).
   For Windows: Put "sasm.exe" executable file to folder "Windows". From this folder you can run the program. Also you can run program right away from compilation folder.
===========================================================================

Also you can download already compiled packages 
from site https://dman95.github.io/SASM/ or 
from OBS repository https://download.opensuse.org/repositories/home:/Dman95/

More help info in file help.html
Also SASM supports doxygen: run "doxygen configfile" to generate documentation. In this documentation you can also find a small developer guide which includes information about adding new assemblers and languages support.

Copyright © 2013 Dmitriy Manushin
Comments
  • showing registers and memory windows in SASM

    showing registers and memory windows in SASM

    hello, I have a problem in my SASM, I can't show the registers and memory windows, any one knows how to solve it?

    this is my settings: image

    and this is how it shows adter I do debugging: image

    opened by YosraDaso 34
  • RWX on binaries

    RWX on binaries

    Out of curiosity is there a reason why the bins are not compiled with -z noexecstack when they are compiled with -fstack-protector-strong -fPIE.

    Is it possible to get the pro file updated to add -z noexecstack, I have worked on updating the SASM.pro file with:

    QMAKE_CXXFLAGS += -z noexecstack QMAKE_CFLAGS += -z noexecstack

    But it does not seem to follow it very well, and if I try to export my CFLAGS and build it still does not take the extra flag.

    Thoughts?

    opened by archey 13
  • "Directory NASM does not exist" -- MacOS build

    Hi. System details:

    MacOS 11.2.3 qt 5.15.2 make 3.8.1

    I built and installed without any issues excluding the following on make install:

    Error copying .../Desktop/Dman95-SASM-7e3ae6d/Linux/bin/fasm to /usr/bin/fasm: Cannot create /usr/bin/fasm for output
    make: *** [install_binfile] Error 3
    

    The executable is constructed though and I can run the program from the command line (e.g. sudo sasm.app/Contents/MacOS/sasmto) open the GUI. I next selected create new project and the following script is opened:

    
    section .text
    global CMAIN
    CMAIN:
        ;write your code here
        xor eax, eax
        ret
    

    If I try to build I get the following dialogue pop up error

    Screen Shot 2021-08-25 at 8 39 43 AM

    I have verified that the NASM directory is present in .../Dman95-SASM-7e3ae6d/Linux/share/sasm. I also have nasm installed on the system via homebrew at /usr/local/bin/nasm.

    Thanks in advance for any help or guidance.

    opened by lstrgar 10
  • Debug not working on Arch

    Debug not working on Arch

    So the debug option doesn't work on arch x86-64 (built from source). Got gdb, got gcc-multilib, but when I press Debug it says Debugging started, but no arrow appears on the breakpoints, I cannot click a checkbox near "show registers" and I cannot click step over/into etc. When I press the button to stop debugging the application crashes

    bug 
    opened by python4ever 10
  • Error:

    Error: "Directory "NASM" does not exist. Please reinstall the program." macOS 10.13

    Hey,

    I managed to compile sasm 3.10.1 for macOS 10.13, but when I try to compile the sample program, it shows me this error message:

    Error

    These are my settings: Settings

    Does anyone know how to fix this issue?

    I already tried:

    • Putting nasm into the ./sasm.app/Contents/MacOS/ folder.
    • Creating nasm folder inside ./sasm.app/Contents/MacOS/ with all the nasm binaries.
    • Running sasm with sudo & without.

    Also one more question: Where does sasm store its settings?

    question 
    opened by OhMyGodWhy 8
  • Debugger not working on Arch Linux

    Debugger not working on Arch Linux

    Version: 3.11.1 Distro: Arch Linux

    The debugger does not work at all in NASM (x86). GAS and FASM are working fine (also x86). I have similar symptoms to this issue #76 (except no crashing), which should be solved. I checked the linking options: They are correctly set to -fno-pie -no-pie.

    bug 
    opened by jakobkukla 6
  • Missing io.inc

    Missing io.inc

    Hi,

    I compiled SASM from source last weekend I have so remarks and questions. In detail:

    I got myself an old (2009) netbook (atom, i386) and installed Xubuntu 16.04 onto it. I downloaded SASM's source code from github and compiled it last weeked with some changes. That changes are: Not all mentioned dipendencies existed, also qmake did not work. Than with make and make install all was fine. After the installation I removed the folder... Now when I open SASM and want to start to compile I got the following error messages:

    /tmp/SASM/program.asm:1: fatal: unable to open include file `io.inc' gcc: error: /tmp/SASM/program.o: Datei oder Verzeichnis nicht gefunden gcc: error: /tmp/SASM/macro.o: Datei oder Verzeichnis nicht gefunden gcc: fatal error: no input files compilation terminated.

    When I understand the problem, the only important part is, that io.inc is missing (why?). That's why I have to questions. Were do I get it, and where do I have to put it in?

    With kind regards!

    opened by Meresmata 6
  • Debug memory overflows gdb.exe

    Debug memory overflows gdb.exe

    When I debug in SAsM my assembler code and I debug a memory variable thats in this case array size 100000. It will increase gdb.exe memory every time a instuction runs. Eventually gdb.exe crashes. When i debug in SASM and don't debug memory i don't have this issue.

    opened by IamLupo 5
  • Can you explain how to call C functions on Windows?

    Can you explain how to call C functions on Windows?

    Sorry for maybe stupid question, but how am I supposed to call C functions on Windows? I tried all of the following:

    • declaration with underscore and CEXTERN and call: caused error in call, not in CEXTERN
    • declaration with underscore and CEXTERN and call without undrescore: no errors in build, but crash on call (this may be my fault, so pls tell me if this is the right option)
    • declaration and call without underscore: the same as 2 (so maybe again my mistake, but I don't think if underscore wasn't necessary you would put it in help) This is the essential sample of code I tried CEXTERN _printf mov rax, 0 mov rdi, msg2
      mov rsi, 0
      call printf I understand that I can miss smth in options or smth else, so please tell if it's the case
    opened by Michael-Milligan 4
  • SASM (3.11.1) Debug not working on Ubuntu 20.04

    SASM (3.11.1) Debug not working on Ubuntu 20.04

    Debug begins with the message "Debugging started", however no line is highlighted. All "Debug" menu items remain disabled except "Continue" which has not effect. No error messages are shown. However the same version works great on Windows. I suspect this is the same problem highlighted by other on Arch linux.

    bug 
    opened by rjsargeant 4
  • Crash on OS X when clicking on Debug button twice

    Crash on OS X when clicking on Debug button twice

    sasm 3.8.0

    Reproducibility: always

    Steps:

    1. Open a project.
    2. Build.
    3. Click on Debug button twice.

    What happened: Crash.

    Process 24759 stopped
    * thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGINT
        frame #0: 0x00007fffa5e7967e libsystem_kernel.dylib`__kill + 10
    libsystem_kernel.dylib`__kill:
    ->  0x7fffa5e7967e <+10>: jae    0x7fffa5e79688            ; <+20>
        0x7fffa5e79680 <+12>: movq   %rax, %rdi
        0x7fffa5e79683 <+15>: jmp    0x7fffa5e72caf            ; cerror_nocancel
        0x7fffa5e79688 <+20>: retq   
    (lldb) bt
    * thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGINT
      * frame #0: 0x00007fffa5e7967e libsystem_kernel.dylib`__kill + 10
        frame #1: 0x000000010001b57c sasm`MainWindow::debug() + 1948
        frame #2: 0x0000000100ec7280 QtCore`QMetaObject::activate(QObject*, int, int, void**) + 2992
        frame #3: 0x0000000100238e47 QtWidgets`QAction::activate(QAction::ActionEvent) + 263
        frame #4: 0x000000010032d2f9 QtWidgets`___lldb_unnamed_symbol1134$$QtWidgets + 137
        frame #5: 0x000000010032e3a0 QtWidgets`QAbstractButton::mouseReleaseEvent(QMouseEvent*) + 272
        frame #6: 0x00000001004079df QtWidgets`QToolButton::mouseReleaseEvent(QMouseEvent*) + 15
        frame #7: 0x0000000100283e40 QtWidgets`QWidget::event(QEvent*) + 624
        frame #8: 0x000000010032e0f0 QtWidgets`QAbstractButton::event(QEvent*) + 160
        frame #9: 0x0000000100407ff5 QtWidgets`QToolButton::event(QEvent*) + 325
        frame #10: 0x0000000100242b46 QtWidgets`QApplicationPrivate::notify_helper(QObject*, QEvent*) + 294
        frame #11: 0x0000000100245e23 QtWidgets`QApplication::notify(QObject*, QEvent*) + 8035
        frame #12: 0x0000000100e92d14 QtCore`QCoreApplication::notifyInternal2(QObject*, QEvent*) + 164
        frame #13: 0x000000010024350a QtWidgets`QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) + 970
        frame #14: 0x00000001002a5d22 QtWidgets`___lldb_unnamed_symbol546$$QtWidgets + 1458
        frame #15: 0x00000001002a4b3b QtWidgets`___lldb_unnamed_symbol541$$QtWidgets + 235
        frame #16: 0x0000000100242b46 QtWidgets`QApplicationPrivate::notify_helper(QObject*, QEvent*) + 294
        frame #17: 0x0000000100244079 QtWidgets`QApplication::notify(QObject*, QEvent*) + 441
        frame #18: 0x0000000100e92d14 QtCore`QCoreApplication::notifyInternal2(QObject*, QEvent*) + 164
        frame #19: 0x000000010081d96d QtGui`QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) + 2877
        frame #20: 0x000000010080660b QtGui`QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 155
        frame #21: 0x000000010566e1d1 libqcocoa.dylib`___lldb_unnamed_symbol471$$libqcocoa.dylib + 33
        frame #22: 0x00007fff8fe143b1 CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
        frame #23: 0x00007fff8fdf563c CoreFoundation`__CFRunLoopDoSources0 + 556
        frame #24: 0x00007fff8fdf4b26 CoreFoundation`__CFRunLoopRun + 934
        frame #25: 0x00007fff8fdf4524 CoreFoundation`CFRunLoopRunSpecific + 420
        frame #26: 0x00007fff8f35709c HIToolbox`RunCurrentEventLoopInMode + 240
        frame #27: 0x00007fff8f356dd9 HIToolbox`ReceiveNextEventCommon + 184
        frame #28: 0x00007fff8f356d06 HIToolbox`_BlockUntilNextEventMatchingListInModeWithFilter + 71
        frame #29: 0x00007fff8d8f1eac AppKit`_DPSNextEvent + 1120
        frame #30: 0x00007fff8e06d8b6 AppKit`-[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 2796
        frame #31: 0x00007fff8d8e6833 AppKit`-[NSApplication run] + 926
        frame #32: 0x000000010566cf35 libqcocoa.dylib`___lldb_unnamed_symbol452$$libqcocoa.dylib + 2389
        frame #33: 0x0000000100e8eff1 QtCore`QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 417
        frame #34: 0x0000000100e93387 QtCore`QCoreApplication::exec() + 343
        frame #35: 0x0000000100007064 sasm`main + 6052
        frame #36: 0x00000001000039e4 sasm`start + 52
    (lldb) disassemble
    libsystem_kernel.dylib`__kill:
        0x7fffa5e79674 <+0>:  movl   $0x2000025, %eax          ; imm = 0x2000025 
        0x7fffa5e79679 <+5>:  movq   %rcx, %r10
        0x7fffa5e7967c <+8>:  syscall 
    ->  0x7fffa5e7967e <+10>: jae    0x7fffa5e79688            ; <+20>
        0x7fffa5e79680 <+12>: movq   %rax, %rdi
        0x7fffa5e79683 <+15>: jmp    0x7fffa5e72caf            ; cerror_nocancel
        0x7fffa5e79688 <+20>: retq   
        0x7fffa5e79689 <+21>: nop    
        0x7fffa5e7968a <+22>: nop    
        0x7fffa5e7968b <+23>: nop
    

    Expected result: sasm does not crash.

    bug 
    opened by rex4539 4
  • Debug mode / Functions C do not work

    Debug mode / Functions C do not work

    I'm trying to run a basic program that prints a hello world message to the console using the puts function.The program works fine while executing it with "Build and run" option, I mean the message is displayed in the Output. image

    But if i use the "Debug" option, the program runs but the message is not displayed in the output image

    I'm working on Windows 10 64 bits SASM  version 3.12.2 See the Build tab options configured: image

    opened by darioradu 0
  • couldnt work on macos

    couldnt work on macos

    when I try to compile something, it always warns me: Directory NASM does not exist. Please reinstall the program. the nasm has been installed on my macbook, even if I reinstalled it, I still cant let it work on it.

    opened by haliang0409-cmd 3
  • Debbugger ASCII addon

    Debbugger ASCII addon

    Hi, great software!

    Would it be possible for the debugger memory window to incorporate an ASCII option in the type selection option please.

    e.g. current options are

        SMART option converts Hello world to Helloworld
        CHAR option converts hello world to 72'H',101'e',108'l',108'l',111'o',32'',119'w',111'o',114'r',108'l',100'd
    

    requested

        ASCII option would convert Hello world to Hello world 
    

    Many thanks

    Roland!

    opened by BAT-Vanquisher 1
  • How do you get SASM to save a .lst file?

    How do you get SASM to save a .lst file?

    I've just discovered SASM and am working through all its features. So far I like it a lot.

    I'm using NASM. Here's the issue: Although there's the term -l $LSTOUTPUT$ in SASM's default assembly options line, as best I can tell no .lst file is generated during a successful build. When I build the same ,asm file from the console using a conventional makefile including the -l option, I get a .lst file.

    Is there a way to generate a .lst file from a SASM build?

    Many thanks for any advice here.

    opened by JeffDuntemann 1
  • An error has occurred in the debugger. Please check the names of the sections.

    An error has occurred in the debugger. Please check the names of the sections.

    Hello, I use SASM 3.12.2 I get always this: { Debugging started... An error has occurred in the debugger. Please check the names of the sections. Debugging finished. } I used another laptop and everything worked fine I would like to know what I need to do in my laptop to fix this problem (my laptop: 64 bit operation system) In SASM I use: mode x64, assembler NASM

    opened by khaledwawi 2
  • Warnings in builder ?

    Warnings in builder ?

    uname -a Linux 970a 5.15.32-1-MANJARO #1 SMP PREEMPT Mon Mar 28 09:16:36 UTC 2022 x86_64 GNU/Linux sasm 3.12.2

    When I try to build the simple following code manually, it works fine but not in sasm ?

    bits 32
    
    section .data
        message db "Hello World!", 10
    
    section .text
        global _start
        _start:
            mov eax, 4
            mov ebx, 1
            mov ecx, message
            mov edx, 12+1
            int 0x80
    
            mov eax, 1
            mov ebx, 0
            int 0x80
    
    nasm -g -f elf32 test2.asm -l list
    ld test2.o -m elf_i386 -o test2
    ./test2
    Hello world !
    

    Here is my sasm configuration:

    • -g -f elf32 $SOURCE$ -l $LSTOUTPUT$ -o $PROGRAM.OBJ$
    • Build in current directory
    • Disable linking

    I'm looking for logs file and I did not found I tried an other simple code with the same result ?

    Thank you for any help ;o)

    opened by aguytech 1
Releases(v3.12.2)
This repo generates the training data and the model for Morpheus-Deblend

Morpheus-Deblend This repo generates the training data and the model for Morpheus-Deblend. This is the active development repo for the project and as

Ryan Hausen 2 Apr 18, 2022
Official implementation of CVPR2020 paper "Deep Generative Model for Robust Imbalance Classification"

Deep Generative Model for Robust Imbalance Classification Deep Generative Model for Robust Imbalance Classification Xinyue Wang, Yilin Lyu, Liping Jin

9 Nov 01, 2022
Bayesian inference for Permuton-induced Chinese Restaurant Process (NeurIPS2021).

Permuton-induced Chinese Restaurant Process Note: Currently only the Matlab version is available, but a Python version will be available soon! This is

NTT Communication Science Laboratories 3 Dec 17, 2022
Learning Skeletal Articulations with Neural Blend Shapes

This repository provides an end-to-end library for automatic character rigging and blend shapes generation as well as a visualization tool. It is based on our work Learning Skeletal Articulations wit

Peizhuo 504 Dec 30, 2022
Out of Distribution Detection on Natural Adversarial Examples

OOD-on-NAE Research project on out of distribution detection for the Computer Vision course by Prof. Rob Fergus (CSCI-GA 2271) Paper out on arXiv - ht

Anugya 1 Jun 08, 2022
This project is used for the paper Differentiable Programming of Isometric Tensor Network

This project is used for the paper "Differentiable Programming of Isometric Tensor Network". (arXiv:2110.03898)

Chenhua Geng 15 Dec 13, 2022
NAS-HPO-Bench-II is the first benchmark dataset for joint optimization of CNN and training HPs.

NAS-HPO-Bench-II API Overview NAS-HPO-Bench-II is the first benchmark dataset for joint optimization of CNN and training HPs. It helps a fair and low-

yoichi hirose 8 Nov 21, 2022
Dense Prediction Transformers

Vision Transformers for Dense Prediction This repository contains code and models for our paper: Vision Transformers for Dense Prediction René Ranftl,

Intelligent Systems Lab Org 1.3k Jan 02, 2023
The official implementation of CircleNet: Anchor-free Detection with Circle Representation, MICCAI 2030

CircleNet: Anchor-free Detection with Circle Representation The official implementation of CircleNet, MICCAI 2020 [PyTorch] [project page] [MICCAI pap

The Biomedical Data Representation and Learning Lab 45 Nov 18, 2022
Dense matching library based on PyTorch

Dense Matching A general dense matching library based on PyTorch. For any questions, issues or recommendations, please contact Prune at

Prune Truong 399 Dec 28, 2022
P-Tuning v2: Prompt Tuning Can Be Comparable to Finetuning Universally Across Scales and Tasks

P-tuning v2 P-Tuning v2: Prompt Tuning Can Be Comparable to Finetuning Universally Across Scales and Tasks An optimized prompt tuning strategy for sma

THUDM 540 Dec 30, 2022
code for CVPR paper Zero-shot Instance Segmentation

Code for CVPR2021 paper Zero-shot Instance Segmentation Code requirements python: python3.7 nvidia GPU pytorch1.1.0 GCC =5.4 NCCL 2 the other python

zhengye 86 Dec 13, 2022
Libraries, tools and tasks created and used at DeepMind Robotics.

dm_robotics: Libraries, tools, and tasks created and used for Robotics research at DeepMind. Package overview Package Summary Transformations Rigid bo

DeepMind 273 Jan 06, 2023
Discord bot-CTFD-Thread-Parser - Discord bot CTFD-Thread-Parser

Discord bot CTFD-Thread-Parser Description: This tools is used to create automat

15 Mar 22, 2022
A framework for Quantification written in Python

QuaPy QuaPy is an open source framework for quantification (a.k.a. supervised prevalence estimation, or learning to quantify) written in Python. QuaPy

41 Dec 14, 2022
Official PyTorch implementation of the paper "Graph-based Generative Face Anonymisation with Pose Preservation" in ICIAP 2021

Contents AnonyGAN Installation Dataset Preparation Generating Images Using Pretrained Model Train and Test New Models Evaluation Acknowledgments Citat

Nicola Dall'Asen 10 May 24, 2022
Pytorch Implementation of "Diagonal Attention and Style-based GAN for Content-Style disentanglement in image generation and translation" (ICCV 2021)

DiagonalGAN Official Pytorch Implementation of "Diagonal Attention and Style-based GAN for Content-Style Disentanglement in Image Generation and Trans

32 Dec 06, 2022
Official implementation of Rethinking Graph Neural Architecture Search from Message-passing (CVPR2021)

Rethinking Graph Neural Architecture Search from Message-passing Intro The GNAS can automatically learn better architecture with the optimal depth of

Shaofei Cai 48 Sep 30, 2022
Implementation of our NeurIPS 2021 paper "A Bi-Level Framework for Learning to Solve Combinatorial Optimization on Graphs".

PPO-BiHyb This is the official implementation of our NeurIPS 2021 paper "A Bi-Level Framework for Learning to Solve Combinatorial Optimization on Grap

<a href=[email protected]"> 66 Nov 23, 2022