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)
Random-Afg - Afghanistan Random Old Idz Cloner Tools

AFGHANISTAN RANDOM OLD IDZ CLONER TOOLS Install $ apt update $ apt upgrade $ apt

MAHADI HASAN AFRIDI 5 Jan 26, 2022
Inferring Lexicographically-Ordered Rewards from Preferences

Inferring Lexicographically-Ordered Rewards from Preferences Code author: Alihan Hüyük ([e

Alihan Hüyük 1 Feb 13, 2022
EMNLP 2021: Single-dataset Experts for Multi-dataset Question-Answering

MADE (Multi-Adapter Dataset Experts) This repository contains the implementation of MADE (Multi-adapter dataset experts), which is described in the pa

Princeton Natural Language Processing 68 Jul 18, 2022
fastgradio is a python library to quickly build and share gradio interfaces of your trained fastai models.

fastgradio is a python library to quickly build and share gradio interfaces of your trained fastai models.

Ali Abdalla 34 Jan 05, 2023
Repository for Driving Style Recognition algorithms for Autonomous Vehicles

Driving Style Recognition Using Interval Type-2 Fuzzy Inference System and Multiple Experts Decision Making Created by Iago Pachêco Gomes at USP - ICM

Iago Gomes 9 Nov 28, 2022
A Python Package for Portfolio Optimization using the Critical Line Algorithm

PyCLA A Python Package for Portfolio Optimization using the Critical Line Algorithm Getting started To use PyCLA, clone the repo and install the requi

19 Oct 11, 2022
Semantic code search implementation using Tensorflow framework and the source code data from the CodeSearchNet project

Semantic Code Search Semantic code search implementation using Tensorflow framework and the source code data from the CodeSearchNet project. The model

Chen Wu 24 Nov 29, 2022
Flower - A Friendly Federated Learning Framework

Flower - A Friendly Federated Learning Framework Flower (flwr) is a framework for building federated learning systems. The design of Flower is based o

Adap 1.8k Jan 01, 2023
A tool to prepare websites grabbed with wget for local viewing.

makelocal A tool to prepare websites grabbed with wget for local viewing. exapmples After fetching xkcd.com with: wget -r -no-remove-listing -r -N --p

5 Apr 23, 2022
Sparse R-CNN: End-to-End Object Detection with Learnable Proposals, CVPR2021

End-to-End Object Detection with Learnable Proposal, CVPR2021

Peize Sun 1.2k Dec 27, 2022
CCPD: a diverse and well-annotated dataset for license plate detection and recognition

CCPD (Chinese City Parking Dataset, ECCV) UPdate on 10/03/2019. CCPD Dataset is now updated. We are confident that images in subsets of CCPD is much m

detectRecog 1.8k Dec 30, 2022
Towards Flexible Blind JPEG Artifacts Removal (FBCNN, ICCV 2021)

Towards Flexible Blind JPEG Artifacts Removal (FBCNN, ICCV 2021)

Jiaxi Jiang 282 Jan 02, 2023
Disagreement-Regularized Imitation Learning

Due to a normalization bug the expert trajectories have lower performance than the rl_baseline_zoo reported experts. Please see the following link in

Kianté Brantley 25 Apr 28, 2022
Making a music video with Wav2CLIP and VQGAN-CLIP

music2video Overview A repo for making a music video with Wav2CLIP and VQGAN-CLIP. The base code was derived from VQGAN-CLIP The CLIP embedding for au

Joel Jang | 장요엘 163 Dec 26, 2022
ReAct: Out-of-distribution Detection With Rectified Activations

ReAct: Out-of-distribution Detection With Rectified Activations This is the source code for paper ReAct: Out-of-distribution Detection With Rectified

38 Dec 05, 2022
Github Traffic Insights as Prometheus metrics.

github-traffic Github Traffic collects your repository's traffic data and exposes it as Prometheus metrics. Grafana dashboard that displays the metric

Grafana Labs 34 Oct 27, 2022
Code for NeurIPS2021 submission "A Surrogate Objective Framework for Prediction+Programming with Soft Constraints"

This repository is the code for NeurIPS 2021 submission "A Surrogate Objective Framework for Prediction+Programming with Soft Constraints". Edit 2021/

10 Dec 20, 2022
Web mining module for Python, with tools for scraping, natural language processing, machine learning, network analysis and visualization.

Pattern Pattern is a web mining module for Python. It has tools for: Data Mining: web services (Google, Twitter, Wikipedia), web crawler, HTML DOM par

Computational Linguistics Research Group 8.4k Jan 03, 2023
This codebase is the official implementation of Test-Time Classifier Adjustment Module for Model-Agnostic Domain Generalization (NeurIPS2021, Spotlight)

Test-Time Classifier Adjustment Module for Model-Agnostic Domain Generalization This codebase is the official implementation of Test-Time Classifier A

47 Dec 28, 2022
This repo in the implementation of EMNLP'21 paper "SPARQLing Database Queries from Intermediate Question Decompositions" by Irina Saparina, Anton Osokin

SPARQLing Database Queries from Intermediate Question Decompositions This repo is the implementation of the following paper: SPARQLing Database Querie

Yandex Research 20 Dec 19, 2022