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)
Vision Transformer and MLP-Mixer Architectures

Vision Transformer and MLP-Mixer Architectures Update (2.7.2021): Added the "When Vision Transformers Outperform ResNets..." paper, and SAM (Sharpness

Google Research 6.4k Jan 04, 2023
[ICLR 2021] "Neural Architecture Search on ImageNet in Four GPU Hours: A Theoretically Inspired Perspective" by Wuyang Chen, Xinyu Gong, Zhangyang Wang

Neural Architecture Search on ImageNet in Four GPU Hours: A Theoretically Inspired Perspective [PDF] Wuyang Chen, Xinyu Gong, Zhangyang Wang In ICLR 2

VITA 156 Nov 28, 2022
Unbiased Learning To Rank Algorithms (ULTRA)

This is an Unbiased Learning To Rank Algorithms (ULTRA) toolbox, which provides a codebase for experiments and research on learning to rank with human annotated or noisy labels.

71 Dec 01, 2022
ManipNet: Neural Manipulation Synthesis with a Hand-Object Spatial Representation - SIGGRAPH 2021

ManipNet: Neural Manipulation Synthesis with a Hand-Object Spatial Representation - SIGGRAPH 2021 Dataset Code Demos Authors: He Zhang, Yuting Ye, Tak

HE ZHANG 194 Dec 06, 2022
Colour detection is necessary to recognize objects, it is also used as a tool in various image editing and drawing apps.

Colour Detection On Image Colour detection is the process of detecting the name of any color. Simple isn’t it? Well, for humans this is an extremely e

Astitva Veer Garg 1 Jan 13, 2022
Transformer part of 12th place solution in Riiid! Answer Correctness Prediction

kaggle_riiid Transformer part of 12th place solution in Riiid! Answer Correctness Prediction. Please see here for more information. Execution You need

Sakami Kosuke 2 Apr 23, 2022
Scikit-event-correlation - Event Correlation and Forecasting over High Dimensional Streaming Sensor Data algorithms

scikit-event-correlation Event Correlation and Changing Detection Algorithm Theo

Intellia ICT 5 Oct 30, 2022
Optimize Trading Strategies Using Freqtrade

Optimize trading strategy using Freqtrade Short demo on building, testing and optimizing a trading strategy using Freqtrade. The DevBootstrap YouTube

DevBootstrap 139 Jan 01, 2023
Contrastive Multi-View Representation Learning on Graphs

Contrastive Multi-View Representation Learning on Graphs This work introduces a self-supervised approach based on contrastive multi-view learning to l

Kaveh 208 Dec 23, 2022
Aerial Imagery dataset for fire detection: classification and segmentation (Unmanned Aerial Vehicle (UAV))

Aerial Imagery dataset for fire detection: classification and segmentation using Unmanned Aerial Vehicle (UAV) Title FLAME (Fire Luminosity Airborne-b

79 Jan 06, 2023
Official Code Release for "CLIP-Adapter: Better Vision-Language Models with Feature Adapters"

Official Code Release for "CLIP-Adapter: Better Vision-Language Models with Feature Adapters" Pipeline of CLIP-Adapter CLIP-Adapter is a drop-in modul

peng gao 157 Dec 26, 2022
Implementation of ETSformer, state of the art time-series Transformer, in Pytorch

ETSformer - Pytorch Implementation of ETSformer, state of the art time-series Transformer, in Pytorch Install $ pip install etsformer-pytorch Usage im

Phil Wang 121 Dec 30, 2022
Official implementation for TTT++: When Does Self-supervised Test-time Training Fail or Thrive

TTT++ This is an official implementation for TTT++: When Does Self-supervised Test-time Training Fail or Thrive? TL;DR: Online Feature Alignment + Str

VITA lab at EPFL 39 Dec 25, 2022
Python Library for learning (Structure and Parameter) and inference (Statistical and Causal) in Bayesian Networks.

pgmpy pgmpy is a python library for working with Probabilistic Graphical Models. Documentation and list of algorithms supported is at our official sit

pgmpy 2.2k Jan 03, 2023
GUPNet - Geometry Uncertainty Projection Network for Monocular 3D Object Detection

GUPNet This is the official implementation of "Geometry Uncertainty Projection Network for Monocular 3D Object Detection". citation If you find our wo

Yan Lu 103 Dec 28, 2022
Fedlearn支持前沿算法研发的Python工具库 | Fedlearn algorithm toolkit for researchers

FedLearn-algo Installation Development Environment Checklist python3 (3.6 or 3.7) is required. To configure and check the development environment is c

89 Nov 14, 2022
Image reconstruction done with untrained neural networks.

PyTorch Deep Image Prior An implementation of image reconstruction methods from Deep Image Prior (Ulyanov et al., 2017) in PyTorch. The point of the p

Atiyo Ghosh 192 Nov 30, 2022
Crowd-Kit is a powerful Python library that implements commonly-used aggregation methods for crowdsourced annotation and offers the relevant metrics and datasets

Crowd-Kit: Computational Quality Control for Crowdsourcing Documentation Crowd-Kit is a powerful Python library that implements commonly-used aggregat

Toloka 125 Dec 30, 2022
This is the offical website for paper ''Category-consistent deep network learning for accurate vehicle logo recognition''

The Pytorch Implementation of Category-consistent deep network learning for accurate vehicle logo recognition This is the offical website for paper ''

Wanglong Lu 28 Oct 29, 2022
Keras-1D-NN-Classifier

Keras-1D-NN-Classifier This code is based on the reference codes linked below. reference 1, reference 2 This code is for 1-D array data classification

Jae-Hoon Shim 6 May 18, 2021