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)
MMdnn is a set of tools to help users inter-operate among different deep learning frameworks. E.g. model conversion and visualization. Convert models between Caffe, Keras, MXNet, Tensorflow, CNTK, PyTorch Onnx and CoreML.

MMdnn MMdnn is a comprehensive and cross-framework tool to convert, visualize and diagnose deep learning (DL) models. The "MM" stands for model manage

Microsoft 5.7k Jan 09, 2023
MatchGAN: A Self-supervised Semi-supervised Conditional Generative Adversarial Network

MatchGAN: A Self-supervised Semi-supervised Conditional Generative Adversarial Network This repository is the official implementation of MatchGAN: A S

Justin Sun 12 Dec 27, 2022
Official implementation of VQ-Diffusion

Official implementation of VQ-Diffusion: Vector Quantized Diffusion Model for Text-to-Image Synthesis

Microsoft 592 Jan 03, 2023
A deep learning CNN model to identify and classify and check if a person is wearing a mask or not.

Face Mask Detection The Model is designed to check if any human is wearing a mask or not. Dataset Description The Dataset contains a total of 11,792 i

1 Mar 01, 2022
Repository accompanying the "Sign Pose-based Transformer for Word-level Sign Language Recognition" paper

by Matyáš Boháček and Marek Hrúz, University of West Bohemia Should you have any questions or inquiries, feel free to contact us here. Repository acco

Matyáš Boháček 30 Dec 30, 2022
some classic model used to segment the medical images like CT、X-ray and so on

github_project This is a project for medical image segmentation. This project includes common medical image segmentation models such as U-net, FCN, De

2 Mar 30, 2022
Designing a Minimal Retrieve-and-Read System for Open-Domain Question Answering (NAACL 2021)

Designing a Minimal Retrieve-and-Read System for Open-Domain Question Answering Abstract In open-domain question answering (QA), retrieve-and-read mec

Clova AI Research 34 Apr 13, 2022
Permute Me Softly: Learning Soft Permutations for Graph Representations

Permute Me Softly: Learning Soft Permutations for Graph Representations

Giannis Nikolentzos 7 Jul 10, 2022
Code for "Layered Neural Rendering for Retiming People in Video."

Layered Neural Rendering in PyTorch This repository contains training code for the examples in the SIGGRAPH Asia 2020 paper "Layered Neural Rendering

Google 154 Dec 16, 2022
Efficient and Scalable Physics-Informed Deep Learning and Scientific Machine Learning on top of Tensorflow for multi-worker distributed computing

Notice: Support for Python 3.6 will be dropped in v.0.2.1, please plan accordingly! Efficient and Scalable Physics-Informed Deep Learning Collocation-

tensordiffeq 74 Dec 09, 2022
Forecasting directional movements of stock prices for intraday trading using LSTM and random forest

Forecasting directional movements of stock-prices for intraday trading using LSTM and random-forest https://arxiv.org/abs/2004.10178 Pushpendu Ghosh,

Pushpendu Ghosh 270 Dec 24, 2022
A Pytorch Implementation for Compact Bilinear Pooling.

CompactBilinearPooling-Pytorch A Pytorch Implementation for Compact Bilinear Pooling. Adapted from tensorflow_compact_bilinear_pooling Prerequisites I

169 Dec 23, 2022
An educational AI robot based on NVIDIA Jetson Nano.

JetBot Looking for a quick way to get started with JetBot? Many third party kits are now available! JetBot is an open-source robot based on NVIDIA Jet

NVIDIA AI IOT 2.6k Dec 29, 2022
HMLLDB is a collection of LLDB commands to assist in the debugging of iOS apps.

HMLLDB is a collection of LLDB commands to assist in the debugging of iOS apps. 中文介绍 Features Non-intrusive. Your iOS project does not need to be modi

mao2020 47 Oct 22, 2022
On the model-based stochastic value gradient for continuous reinforcement learning

On the model-based stochastic value gradient for continuous reinforcement learning This repository is by Brandon Amos, Samuel Stanton, Denis Yarats, a

Facebook Research 46 Dec 15, 2022
Spatial Contrastive Learning for Few-Shot Classification (SCL)

This repo contains the official implementation of Spatial Contrastive Learning for Few-Shot Classification (SCL), which presents of a novel contrastive learning method applied to few-shot image class

Yassine 34 Dec 25, 2022
Answering Open-Domain Questions of Varying Reasoning Steps from Text

This repository contains the authors' implementation of the Iterative Retriever, Reader, and Reranker (IRRR) model in the EMNLP 2021 paper "Answering Open-Domain Questions of Varying Reasoning Steps

26 Dec 22, 2022
Haze Removal can remove slight to extreme cases of haze affecting an image

Haze Removal can remove slight to extreme cases of haze affecting an image. Its most typical use is for landscape photography where the haze causes low contrast and low saturation, but it can also be

Grace Ugochi Nneji 3 Feb 15, 2022
A Python Reconnection Tool for alt:V

altv-reconnect What? It invokes a reconnect in the altV Client Dev Console. You get to determine when your local client should reconnect when developi

8 Jun 30, 2022
A PyTorch implementation of Sharpness-Aware Minimization for Efficiently Improving Generalization

sam.pytorch A PyTorch implementation of Sharpness-Aware Minimization for Efficiently Improving Generalization ( Foret+2020) Paper, Official implementa

Ryuichiro Hataya 102 Dec 28, 2022