![Bit Bit](/uploads/1/1/7/9/117988090/609120432.jpg)
Nasm Assembler For Windows 7 64 Bit
These instructions assume that you have Winzip.exe installed on your PC. If not, download and install it.
Now download masm.zip into some folder, and then navigate to it using Windows Explorer and double click on it.
This should bring up Winzip, and after agreeing to its conditions, click on 'Extract'. In the window this brings up, alter the 'Extract to' field displayed to 'c:masm615', and ensure that the option 'use filenames' is checked. Now click on the 'Extract' in this window, and close Winzip. This should result in the folder 'cmasm615' being created, with subfolders including 'bin' and 'programs'.
Next click on Start/settings/control panel. Then double click on 'System', select the 'Advanced' tab, and click on 'Environment Variables'. In the lower text box, select 'path', and click on the Edit button below that. Add onto the righthand end of the text which is then displayed above in 'variable value', a semicolon and then: c:masm615bin
After this, close all programs.
Now employ Start/run and type into the box: cmd
and press OK. Maximize the resulting DOS window.
Employ: cd masm615programs
This will make 'programs' the active directory. You should place all the Assembler programs that you create in this folder. The folder already contains a simple program called 'double.asm', which doubles small numbers. Compile this program using: ml double.asm
This should produce an executable called 'double.exe'.
At the command prompt, type: double
and, if everything up to this stage works, the program should ask you to enter a number less than 5.
Download for Linux
Contribute to SASM
About the program
Troubleshooting
'io.inc' NASM macro library
SASM includes crossplatform input/output library 'io.inc' for NASM. It contains I/O macro and 2 additional macro: CMAIN - entry point and CEXTERN for invoking functions, located in C language libraries ('CEXTERN printf' for example).Macro name | Description |
PRINT_UDECsize, data PRINT_DEC size, data | Print number data in decimal representation. size – number, giving size of data in bytes - 1, 2, 4 or 8 (x64).data must be number or symbol constant, name of variable, register or address expression without size qualifier (byte[], etc.). PRINT_UDEC print number as unsigned, PRINT_DEC — as signed. |
PRINT_HEXsize, data | Similarly previous, but data is printed in hexadecimal representation. |
PRINT_CHARch | Print symbol ch. ch - number or symbol constant, name of variable, register or address expression without size qualifier (byte[], etc.). |
PRINT_STRINGdata | Print null-terminated text string. data - string constant, name of variable or address expression without size qualifier (byte[], etc.). |
NEWLINE | Print newline ('n'). |
GET_UDECsize, data GET_DECsize, data | Input number data in decimal representation from stdin. size – number, giving size of data in bytes - 1, 2, 4 or 8 (x64). data must be name of variable or register or address expression without size qualifier (byte[], etc.). GET_UDEC input number as unsigned, GET_DEC — as signed. It is not allowed to use esp register. |
GET_HEXsize, data | Similarly previous, but data is entered in hexadecimal representation with 0x prefix. |
GET_CHARdata | Similarly previous, but macro reads one symbol only. |
GET_STRINGdata, maxsz | Input string with length less than maxsz. Reading stop on EOF or newline and 'n' writes in buffer. In the end of string 0 character is added to the end. data - name of variable or address expression without size qualifier (byte[], etc.). maxsz - register or number constant. |
Implementation
Windows
8051 Assembler For Windows 7 64 Bit
Linux
Changelog:
- Fix for uncomment keyboard shortcut.
- Bugs in interaction with GDB 8 fixed.
- Register parsing bug fixed.
- Crashing after clicking in memory window fixed (thanks Hofmer13).
- Debug hotkey miss bug fixed.
- Bug that prevented to open files without extension fixed.
- Saving file before building feature added.
- Search for selected text feature added.
- Italian translation fixed (thanks Mek101).
- Fix for lack of macro object in the linking options after 3.10.0 update.
- BSD OS support (thanks Martinfx).
- Fix for not working debugging on systems where gcc has default PIE option (thanks lberserq).
- Spanish language added (thanks Mariano Cordoba).
- Small settings usability fixes.
Gui Turbo Assembler 64 Bit
- More convinient memory expression watches have been added.
- Debugger crash bug has been fixed (thanks lberserq).
- Polish language translation has been added (thanks Krzysztof Rossa).
- Hebrew language translation has been added (thanks Elian Kamal).
- Registers parsing while debugging has been improved.
- Build in current directory option has been added.
- Italian language translation has been added.
- Chinese language has been added.
- German language has been added.
- Bug with single application crashes has been fixed.
- Bug with unprintable characters in program output has been fixed.
- Turkish language has been added.
- Tab key action has been improved.
- Drag & drop bug, debugging bug and some small bugs have been fixed.
![Bit Bit](/uploads/1/1/7/9/117988090/915331691.png)
- GoLink linker support.
- Bug with wrong file names when saving and opening has been fixed.
- Ability to change line number font color.
- Ability to switch off debug string insertion.
- Single window mode.
- Drag & drop for file opening.
- Improved help: extended troubleshooting chapter and new building system settings chapter.
- A lot of bugs have been fixed including bug with non-native paths on Windows and bug with FPU registers showing.
- Ability to build programs without running linker.
- New FASM 1.71.39.
- Fix of some debug problems.
- New assemblers have been added: now NASM, GAS, MASM, FASM are supported, including syntax highlighting, debugging, and x86/x64 modes. Added ability to choose your own assembler or linker filling path to them.
- Many improvements in debugging. Now it is possible to debug programs even without debugging information for GDB (for example, written in MASM). The ability to suspend the program has been added, as well as set a breakpoint during its execution.Added folder for include files.
- Fixed problem with text editor leads to a heavy load on the processor while opening big files. Fixed a bug with the disruption of the interface after opening the settings window. Fixed many minor bugs and errors.
- Abilities of mode selection (x64 or x86) and assembler and linker options change were added. Added tools for compilation and debugging 64-bit code.
- 64-bit instruction and registers and NASM macro assembler highlighting was implemented. 'io.inc' library adapted for using in 64-bit applications.
- Many bugs were fixed.
- Significantly improvements of SASM interface and usability. Full color and syntax highlighting customization. All widgets become docking windows with many variants of them location. Register and memory widgets improved, ability of saving their state. Icons and toolbars added.
- Breakpoints improved. Macro debugging improved.
- Hotkeys improvements and ability of them rebinding.
- Many bugs fixed, compatibility problems fixed - installation packages for a lot of Linux systems created, compatibility with Qt 4 added, making from sources improved.
- Many improvements added, functionality expanded. In debugger added: registers and memory watches, breakpoints, continue command; improved: performing gdb commands, current line highlighting, sequential output in debugging, 'io.inc' macro changed.
- Compilation in temporary folder. Mark of unsaved document. Sequential output in programs. Status of finishing of program. Time of execution of program. Font choosing.
- Help updated. New icon. Yet many minor improvements and features.