WASM MASM x86 Editor user guide

Write, compile, link and run MASM (Microsoft Macro Assembler) assembly online with WASM MASM x86 Editor. The editor uses JWasm to assemble source code, JWlink to create executables, and BoxedWine to run 32-bit x86 programs. The Irvine32 library is included.

This manual covers the browser editor, its toolbar controls and the steps to build and back up a program. Use a browser with JavaScript and WebAssembly enabled; no local assembler installation is required.

Launch the MASM editor

Compile and run your first program

  1. Open the editor. Wait for the terminal to load the command prompt.
  2. Create a source file. In the file explorer, select the yellow page icon (Create new assembly (.asm) text file). Enter hello.asm and press Enter.
  3. Enter the code. Paste the Irvine32 example below into the editor. Pause briefly after editing to allow automatic saving.
  4. Build the program. Select Compile, link and run .asm file, the first button in the main toolbar. It assembles the open source file, links the object file and starts the executable.
  5. Check the terminal. A successful run prints Hello from MASM!. Build errors appear in the same terminal. If your program requests input, click inside the terminal before typing.

After changing source code, use Compile, link and run .asm file again. Run compiled binary runs the existing executable without rebuilding it.

Irvine32 example: print a message

INCLUDE Irvine32.inc
.data
message BYTE "Hello from MASM!", 0

.code
main PROC
    mov edx, OFFSET message
    call WriteString
    call Crlf
    exit
main ENDP
END main

message contains a null-terminated string. mov edx, OFFSET message passes its address to WriteString. Crlf adds a line break, and exit ends the program.

Expected output

Hello from MASM!

Toolbar button reference

Controls are listed from left to right within each group and exist at the top banner of the page.

Build and terminal controls

Main toolbar: compile, run, stop and reset.
ControlAction
Compile, link and run .asm fileBuilds and runs the open .asm file. Select an assembly source file from the file drawer to enable this button.
Run compiled binaryRuns the .exe associated with the open .asm file. A compiled executable must exist. Source edits are not included until you rebuild.
Cancel the running command (Ctrl+C)Sends Ctrl + C to interrupt the running program or command while keeping the terminal session open.
Reset command promptRestarts the terminal environment and ends the current session. Files in the file explorer are preserved and restored to the terminal.
Hard resetOpens the reset dialog. Confirming clears the saved terminal state, runtime cache and terminal settings, then reloads the page. Files are kept unless you select Also delete all my files. See Reset a terminal that does not respond.

Appearance and workspace controls

Main toolbar: appearance, editing mode and panel visibility.
ControlAction
Light / dark modeSwitches between light and dark appearance. The moon is dark mode and sun is light mode.
Theme settingsOpens the theme options. Choose a separate editor color theme for light mode and dark mode.
Enable / disable Vim modeToggles Vim key bindings in the source editor. With Vim enabled, press i to enter Insert mode and Esc to return to Normal mode (consider remaping your escape key to capslock). h j k l keys are used to move the in Visual mode. A tutorial is available at https://openvim.com/. Vim plugins exist for all major IDEs and the vim/vi/nvim program is available in most terminal environments (linux / Mac OS X) and is a very powerful tool for text editing.
Turn zen mode on / offShows only the editor by hiding the terminal and file explorer. Turning zen mode off shows all three panels.
Show / hide editorToggles the source editor panel.
Show / hide command promptToggles the terminal panel. Hiding it does not stop a running program.
Show / hide file explorerToggles the file list and its file management toolbar.
Toggle full screenEnters or leaves browser full screen. You can also press Esc to leave full screen.
Application infoOpens information window about the project.

File explorer controls

File toolbar: select, create, import, download and delete.
ControlAction
Select allChecks or clears every file in the current file view. Use the checkboxes beside individual filenames to select a smaller group.
Create new assembly (.asm) text fileOpens the Create file dialog. Enter a filename and press Enter. The editor adds .asm if needed.
Add file(s) to projectImports one or more files from your device into the browser project.
Save selected file(s)Downloads the checked files to your device. One file downloads individually; multiple files download as a ZIP archive. With no boxes checked, downloads the open file.
Delete selected file(s)Immediately removes the checked files from the project and terminal. With no boxes checked, deletes the open file. Download a backup before deleting files you may need.
Switch file type viewSwitches the list between .asm source files and all other files, including generated .obj and .exe files.
Download legacy filesThe extra floppy disk button appears only when files from an older version remain in browser storage. It downloads those files as a ZIP backup.

Manage and back up files

Open and rename files

Click a filename to open it. Checking its box selects it for download or deletion; it does not open it. Double-click a filename to rename it, then press Enter. Keep the .asm extension on assembly source files.

To find build outputs or imported files with other extensions, use Switch file type view. Switching views clears the checkbox selection, so select files again before downloading or deleting.

Automatic saving and local storage

Source edits save automatically in this browser after a short pause in typing. Allow that pause before switching files, building, downloading or closing the page. Files are stored in IndexedDB; editor preferences are stored in local storage.

Keep a downloaded backup. Browser storage stays with this browser and device. It does not sync to an account, and clearing site data removes it. The floppy disk button downloads a copy to your device.

Download and restore a project

  1. In the source file view, check the files you need, or use Select all.
  2. Select Save selected file(s) to download them. Multiple checked files are packaged in a ZIP archive.
  3. Switch file type view and repeat for any other files you need to keep.
  4. To restore a backup, extract the ZIP on your device first, then use Add file(s) to project to import the extracted files.

Troubleshoot builds and the terminal

The compile or run button is disabled
Open an .asm file by clicking its name. To enable Run compiled binary, first compile successfully so the matching .exe exists.
The assembler or linker reports an error
Read the first error in the terminal and check the referenced source line or symbol. Correct the source, then compile again. For the example above, keep INCLUDE Irvine32.inc and END main as shown.
The program runs an older version of the code
Wait briefly after your last edit, then use Compile, link and run .asm file. Run compiled binary does not rebuild the executable.
Typing does not reach the program or editor
Click inside the terminal to enter program input, or inside the editor to edit source. If Vim mode is enabled, press i to insert text or turn Vim mode off.
A panel is missing
Use its Show / hide toolbar control. If zen mode is active, turn it off to restore the editor, terminal and file explorer.

Reset a terminal that does not respond

  1. Select Cancel the running command (Ctrl+C) to interrupt the program.
  2. If the terminal still does not respond, select Reset command prompt and wait for the terminal to restart.
  3. If restarting does not resolve the problem, open Hard reset. Leave Also delete all my files unchecked, wait for the confirmation countdown and select Hard Reset.

A hard reset rebuilds the terminal environment and may take longer than a normal startup. Files in the file explorer are restored automatically.

Deleting files during a hard reset cannot be undone. Select Also delete all my files only if you intend to erase the project and any files left from an older version. Download a backup first.

Assembler and library compatibility

The build tools are JWasm and JWlink, which support MASM-compatible syntax. The editor does not use Microsoft's MASM executables. The browser runtime is a 32-bit Wine environment running through BoxedWine and WebAssembly. Use 32-bit x86 programs with Irvine32; 64-bit Windows executables cannot run here.

INCLUDE Irvine32.inc loads the bundled Irvine32 declarations. The bundled build command handles the library paths and linking for the example above. Other included headers are Macros.inc, SmallWin.inc, VirtualKeys.inc and GraphWin.inc.

Support and resources

For a reproducible problem, report an issue with your browser version, the steps you followed, the relevant source code and the terminal error. The project repository contains the source code; desktop releases are available separately.

For tool and library documentation, see JWasm and JWlink, BoxedWine and Kip Irvine's assembly-language resources.