Online x86 / x64 Assembler and Disassembler
Convert between x86/x64 assembly language and machine code with this powerful online tool. Features real-time processing, dark mode, instruction explanations, and a comprehensive reference guide. Perfect for developers, security researchers, and students learning assembly programming. No installation required - runs entirely in your browser.
Documentation & Help
How to Use This Tool
This tool allows you to convert between assembly language and machine code for x86 and x64 architectures.
In Assemble mode, you can type assembly instructions and convert them to machine code:
- Enter assembly instructions using Intel syntax, one per line.
- Select the target architecture (32-bit or 64-bit).
- Click "Process" or toggle "Real-time" for immediate results.
- The output will show the hexadecimal representation of each instruction.
Example: mov eax, 1
will be assembled to b801000000
In Disassemble mode, you can convert machine code back to assembly:
- Enter a hexadecimal string (e.g.,
b801000000
). - Select the target architecture (32-bit or 64-bit).
- Click "Process" or use "Real-time" mode.
- The output will show the disassembled instructions with their memory offsets.
The tool automatically removes "0x" prefixes and spaces from your input.
- Real-time processing: Toggle to see results as you type.
- Examples: Load pre-configured examples to learn common patterns.
- Copy Output: Quickly copy the result to your clipboard.
- Save/Load: Save your work and load it later.
- Instruction Explanation: Get explanations for what each instruction does.
- Dark Mode: Toggle between light and dark themes.
Data Movement Instructions
Instruction | Description | Example |
---|---|---|
MOV | Move data between registers or load immediate data | mov eax, ebx |
PUSH | Push data onto the stack | push eax |
POP | Pop data from the stack | pop eax |
LEA | Load effective address | lea eax, [ebx+8] |
Arithmetic Instructions
Instruction | Description | Example |
---|---|---|
ADD | Add two operands | add eax, 5 |
SUB | Subtract second operand from first | sub ebx, eax |
MUL | Unsigned multiply | mul ebx |
DIV | Unsigned divide | div ecx |
INC | Increment by 1 | inc eax |
DEC | Decrement by 1 | dec eax |
Logical Instructions
Instruction | Description | Example |
---|---|---|
AND | Bitwise AND | and eax, 0xFF |
OR | Bitwise OR | or edx, ebx |
XOR | Bitwise exclusive OR | xor eax, eax |
NOT | Bitwise NOT | not eax |
Control Flow Instructions
Instruction | Description | Example |
---|---|---|
JMP | Unconditional jump | jmp label |
JE/JZ | Jump if equal/zero | je label |
JNE/JNZ | Jump if not equal/not zero | jne label |
CALL | Call procedure | call procedure |
RET | Return from procedure | ret |
Click on any example to load it into the editor:
Your recent operations will be saved here for quick reference:
No history yet. Process some code to create history entries.