add [rax], al
add [rax], al
add [rax], al
add [rax], al
test [rdx], eax
db 0x4d 
Invalid Instruction
db 0x65 
db 0x61 
db 0x67 
db 0x42 
js 0x56
add [rbp+0x53], dl
push r10
xor esi, [rdx]
db 0x2e 
ins byte fs:[rdi], dx
insb 
add [rax], al
or [rax], al
pop rdi
pop rdi
pop r15
jae 0x9a
movzxd rbp, gs:[rcx+0x66]
imul esp, [rbx+0x5f], 0x646e6168
insb 
db 0x65 
jb 0x39
add [rip+0x735f5f00], ah
jz 0xa5
pop rdi
jz 0xbd
jo 0xab
pop rdi
imul ebp, [rsi+0x66], 0x65645f6f
jae 0xc4
jb 0xc1
jns 0xb3
insb 
imul esi, [rbx+0x74], 0x1b0000
pop rdi
pop rdi
movzxd rsi, [rbp+0x72]
jb 0xc8
outsb 
jz 0xc5
db 0x65 
js 0xcc
db 0x65 
jo 0xe0
imul ebp, [rdi+0x6e], 0x5f001c00
pop rdi
movzxd rsi, [rbp+0x72]
jb 0xde
outsb 
jz 0xdb
db 0x65 
js 0xe2
db 0x65 
jo 0xf6
imul ebp, [rdi+0x6e], 0x6e6f635f
jz 0xf0
js 0x101
add [rcx], cl
add [rdi+0x5f], bl
pop r15
jae 0x106
movzxd rbp, gs:[rcx+0x66]
imul esp, [rbx+0x5f], 0x646e6168
insb 
db 0x65 
jb 0x104
outsb 
outsd 
db 0x65 
js 0x10d
db 0x65 
jo 0x121
add [rsi], ch
add [rdi+0x5f], bl
jbe 0x117
jb 0x12a
pop rdi
db 0x47 
Invalid Instruction
db 0x65 
outsd 
db 0x64 
jnz 0x12b
imul r13d, gs:[rbp+r12*2+0x4e], 0x57656d61
add [rdi], ch
add [rdi+0x5f], bl
jbe 0x133
jb 0x146
pop rdi
db 0x47 
Invalid Instruction
db 0x65 
outsd 
db 0x64 
jnz 0x147
db 0x65 
db 0x48 
db 0x61 
outsb 
ins byte fs:[rdi], dx
db 0x65 
push rdi
add [rcx], dh
add [rdi+0x5f], bl
jbe 0x14d
jb 0x160
pop rdi
db 0x4c 
outsd 
db 0x61 
imul r12, fs:[rdx+0x72], 0x45797261
js 0x152
add [rsi+0x43], dl
push rdx
push rbp
db 0x4e 
push rsp
db 0x49 
db 0x4d 
xor [r8+rsi], r14d
db 0x44 
db 0x2e 
ins byte fs:[rdi], dx
insb 
add [rax+rax], al
pop rdi
db 0x43 
jb 0x188
db 0x44 
db 0x62 
db 0x67 
push rdx
db 0x65 
jo 0x18a
jb 0x191
add [rip+0x72435f00], al
jz 0x169
db 0x62 
db 0x67 
push rdx
db 0x65 
jo 0x19a
jb 0x1a1
push rdi
add [rax], al
ret 
add bl, [rdi+0x73]
db 0x65 
push 0x6c69665f
jz 0x1a1
jb 0x19d
db 0x65 
js 0x1a6
add dh, al
add bl, [rdi+0x73]
db 0x65 
jz 0x1a8
db 0x61 
jo 0x1bc
pop rdi
jz 0x1c8
jo 0x1b6
add [rbx+0x0], bl
pop rdi
pop rdi
jae 0x1bd
jz 0x1cf
jae 0x1c1
jb 0x1cb
db 0x61 
jz 0x1c9
db 0x65 
jb 0x1d6
add [rax], al
mov dh, 0x0
pop rdi
movzxd rbp, [rdi+0x6e]
imul sp, [rdi+0x75], 0x6572
pop rdi
outsb 
db 0x61 
jb 0x1e9
outsd 
ja 0x1d9
db 0x61 
jb 0x1e4
jbe 0x17f
add [rcx+0x1], dh
pop rdi
imul ebp, [rsi+0x69], 0x6c616974
imul edi, [rdx+0x65], 0x72616e5f
jb 0x202
ja 0x1f4
outs dx, byte gs:[rsi]
jbe 0x202
jb 0x20a
outsb 
insd 
outs dx, byte gs:[rsi]
jz 0x1a1
add [rip+0x65675f01], bh
jz 0x208
imul ebp, [rsi+0x69], 0x6c616974
pop rdi
outsb 
db 0x61 
jb 0x227
outsd 
ja 0x217
outs dx, byte gs:[rsi]
jbe 0x225
jb 0x22d
outsb 
insd 
outs dx, byte gs:[rsi]
jz 0x1c4
jz 0x1c7
pop rdi
imul ebp, [rsi+0x69], 0x72657474
insd 
add [rbp+0x1], dh
pop rdi
imul ebp, [rsi+0x69], 0x72657474
insd 
pop rdi
add gs:[rax+0x4], dl
db 0x65 
js 0x24c
jz 0x1e5
add dl, ch
add [rdi+0x65], bl
js 0x255
jz 0x1ee
retf 
add bl, [rdi+0x73]
db 0x65 
jz 0x254
insw 
outsd 
db 0x64 
add gs:[rax], al
add [r15+0x5f], bl
jo 0x261
pop rdi
pop rdi
db 0x61 
jb 0x26e
movzxd rax, [rax]
add [rdx+0x0], cl
pop rdi
pop rdi
jo 0x26f
pop rdi
pop rdi
db 0x61 
jb 0x27c
jbe 0x217
add [rax+rax+0x7865635f], ah
imul esi, [rax+rax+0x0], 0x635f009f
pop rdi
db 0x65 
js 0x293
jz 0x22c
mov dh, 0x2
pop rdi
jb 0x296
imul esi, [ebx+0x74], 0x745f7265
push 0x64616572
pop rdi
insb 
outsd 
movzxd rsp, [rcx+0x6c]
pop rdi
db 0x65 
js 0x2ad
pop rdi
db 0x61 
jz 0x2b1
js 0x2b7
jz 0x2af
movzxd rsp, [rcx+0x6c]
insb 
db 0x62 
db 0x61 
movzxd rbp, [rbx+0x0]
add [rbp+0x6f635f00], dh
outsb 
imul sp, [rdi+0x74], 0x7268
db 0x65 
db 0x61 
ins byte fs:[rdi], dx
outsd 
movzxd rsp, [rcx+0x6c]
db 0x65 
add dh, cl
add bl, [rdi+0x73]
db 0x65 
jz 0x2d6
outsb 
db 0x65 
ja 0x2da
insd 
outsd 
db 0x64 
add gs:[rbp+0x0], cl
pop rdi
pop rdi
jo 0x2e5
pop rdi
movzxd rbp, [rdi+0x6d]
insd 
outsd 
db 0x64 
add gs:[rax], al
ret 0x5f02
jae 0x2fa
push 0x6c69665f
jz 0x301
jb 0x2fd
ins byte fs:[rdi], dx
insb 
add [rdx+0x1], dh
pop rdi
imul ebp, [rsi+0x69], 0x6c616974
imul edi, [rdx+0x65], 0x656e6f5f
js 0x31e
jz 0x316
jz 0x31a
db 0x62 
insb 
add gs:[rax], al
mov ch, 0x2
pop rdi
jb 0x328
imul esi, [ebx+0x74], 0x6f5f7265
outsb 
db 0x65 
js 0x338
jz 0x330
db 0x66 
jnz 0x342
movzxd rsi, [rcx+rbp*2+0x6f]
outsb 
add ch, ah
add [rdi+0x65], bl
js 0x345
movzxd rsi, [rbp+0x74]
db 0x65 
pop rdi
outsd 
outsb 
db 0x65 
js 0x353
jz 0x34b
jz 0x34f
db 0x62 
insb 
db 0x65 
add dl, al
add [rdi+0x63], bl
jb 0x36c
pop rdi
db 0x61 
jz 0x361
js 0x367
jz 0x300
rol dword [rax], 0x5f
movzxd rsi, [rdx+0x74]
pop rdi
db 0x61 
jz 0x369
jno 0x381
imul esp, [rbx+0x6b], 0x6978655f
jz 0x315
add [rbx+0x5], cl
jz 0x37f
jb 0x389
imul ebp, [rsi+0x61], 0x2c006574
add eax, 0x63727473
jo 0x3a3
pop rdi
jae 0x32d
add [rax], ch
add eax, 0x63727473
db 0x61 
jz 0x396
jae 0x339
add [rax+0x0], ch
pop rdi
pop rdi
jae 0x3b4
imul ebp, fs:[rdi+0x5f], 0x6d6d6f63
outsd 
outsb 
pop rdi
jbe 0x3c0
jo 0x3c1
imul ebp, [rsi+0x74], 0x735f66
pushf 
add ebx, [rdi+0x77]
insd 
db 0x61 
imul esp, [rbp+0x70], 0x61
jz 0x3ca
pop rdi
jae 0x365
add [rax+0x73775f03], bh
jo 0x3d9
imul esi, [rax+rsi*2+0x61], 0x735f6874
add [rbp+rax+0x77], ah
movzxd rsi, [rbx+0x63]
jo 0x3f7
pop rdi
jae 0x381
add [rbp+0x63], dh
jb 0x3fa
db 0x62 
db 0x61 
jae 0x3ef
db 0x64 
db 0x2e 
ins byte fs:[rdi], dx
insb 
add [rip+0x74654702], ah
db 0x43 
jnz 0x40a
jb 0x3ff
outsb 
jz 0x3f1
push 0x64616572
db 0x49 
add fs:[rax], al
push rdx
add al, 0x51
jnz 0x410
jb 0x426
push rax
db 0x65 
jb 0x417
outsd 
jb 0x421
db 0x61 
outsb 
movzxd rsp, [rbp+0x43]
outsd 
jnz 0x42a
jz 0x423
jb 0x3c0
and [rdx], eax
db 0x47 
Invalid Instruction
db 0x65 
jnz 0x43a
jb 0x42f
outsb 
jz 0x41d
jb 0x43e
movzxd rsp, [rbp+0x73]
jae 0x41d
db 0x64 
add bl, dh
add al, [rdi+0x65]
jz 0x42f
jns 0x451
jz 0x445
insd 
push rsp
imul ebp, [rbp+0x65], 0x69467341
insb 
db 0x65 
push rsp
imul ebp, [rbp+0x65], 0x49036f00
outsb 
imul esi, [rcx+rbp*2+0x61], 0x657a696c
push rbx
imul r14, [rbx+0x74], 0x64616548
add ch, dl
add al, 0x52
jz 0x477
db 0x43 
db 0x61 
jo 0x483
jnz 0x483
db 0x65 
db 0x43 
outsb 
jz 0x47c
js 0x48d
add ah, bl
add al, 0x52
jz 0x48b
db 0x4c 
outsd 
outsd 
imul esi, [rbp+0x70], 0x46
jnz 0x496
movzxd rsi, [rcx+rbp*2+0x6f]
outsb 
db 0x45 
outsb 
jz 0x4a3
jns 0x433
add bl, ah
add al, 0x52
jz 0x4a5
push rsi
imul esi, [rdx+0x74], 0x556c6175
outsb 
ja 0x4ad
outsb 
add fs:[rax], al
test [rbx], eax
db 0x49 
jae 0x491
db 0x65 
db 0x62 
jnz 0x4b8
db 0x67 
Invalid Instruction
db 0x65 
jb 0x4bc
jae 0x4be
outsb 
jz 0x45c
rol byte [rip+0x61686e55], 0x6e
ins byte fs:[rdi], dx
db 0x65 
db 0x64 
Invalid Instruction
db 0x45 
db 0x65 
jo 0x4e1
imul ebp, [rdi+0x6e], 0x746c6946
db 0x65 
jb 0x477
add [rdi+0x5], bh
push rbx
db 0x65 
jz 0x4d3
outsb 
push 0x6c646e61
db 0x65 
db 0x64 
Invalid Instruction
db 0x45 
db 0x65 
jo 0x500
imul ebp, [rdi+0x6e], 0x746c6946
db 0x65 
jb 0x496
fiadd dword [rdx]
db 0x47 
Invalid Instruction
db 0x65 
jz 0x4ff
jb 0x514
jnz 0x512
db 0x49 
outsb 
outsw 
push rdi
add [rbx+rax+0x72507349], cl
outsd 
movzxd rsp, [rbp+0x73]
jae 0x523
jb 0x4fc
db 0x65 
db 0x61 
jz 0x52f
jb 0x521
push rax
jb 0x524
jae 0x526
outsb 
jz 0x4c4
add dword [rdx], 0x4d746547
outsd 
db 0x64 
jnz 0x53a
db 0x65 
db 0x48 
db 0x61 
outsb 
ins byte fs:[rdi], dx
db 0x65 
push rdi
add [rax], al
push 0x69615204
jae 0x544
db 0x45 
js 0x545
db 0x65 
jo 0x559
imul ebp, [rdi+0x6e], 0x3f60000
db 0x4d 
jnz 0x55b
jz 0x55a
db 0x42 
jns 0x568
db 0x65 
push rsp
outsd 
push rdi
imul esp, [rbp+0x43], 0x726168
adc [rsi], eax
push rdi
imul esp, [rbp+0x43], 0x54726168
outsd 
db 0x4d 
jnz 0x57b
jz 0x57a
db 0x42 
jns 0x588
add gs:[rdx+0x2], ch
db 0x47 
Invalid Instruction
db 0x65 
db 0x61 
jae 0x593
db 0x45 
jb 0x594
outsd 
jb 0x525
add [rcx+0x3], dl
db 0x48 
db 0x65 
db 0x61 
jo 0x56e
insb 
insb 
outsd 
movzxd rax, [rax]
push rbp
add ecx, [rax+0x65]
db 0x61 
jo 0x57f
jb 0x5a0
add gs:[rax], al
mov esi, 0x74654702
push rax
jb 0x5b5
movzxd rsp, [rbp+0x73]
jae 0x593
db 0x65 
db 0x61 
jo 0x54f
add cl, ah
add eax, 0x74726956
jnz 0x5b9
insb 
push rcx
jnz 0x5c1
jb 0x5d7
add [rax], al
mov ah, 0x1
db 0x46 
jb 0x5ca
imul r12, gs:[rdx+0x72], 0x797261
mov eax, 0x74654702
push rax
jb 0x5e5
movzxd rax, [rcx+0x64]
db 0x64 
jb 0x5e1
jae 0x5f1
add [rax], al
and [rdx], al
db 0x47 
Invalid Instruction
db 0x65 
jnz 0x5fa
jb 0x5ef
outsb 
jz 0x5dd
jb 0x5fe
movzxd rsp, [rbp+0x73]
jae 0x594
sahf 
add eax, 0x6d726554
imul ebp, [rsi+0x61], 0x72506574
outsd 
movzxd rsp, [rbp+0x73]
jae 0x5a7
add [rbx+0x45], cl
push rdx
db 0x4e 
db 0x45 
xor r14, [rdx]
db 0x2e 
ins byte fs:[rdi], dx
insb 
add [rax], al
add [rax], al
add [rax], al
add [rax], al
add [rax], al
add [rax], al 

Assembly Online Compiler

Write, Run & Share Assembly code online using OneCompiler's Assembly online compiler for free. It's one of the robust, feature-rich online compilers for Assembly language. Getting started with the OneCompiler's Assembly compiler is simple and pretty fast. The editor shows sample boilerplate code when you choose language as Assembly and start coding.

About Assembly

Assembly language(asm) is a low-level programming language, where the language instructions will be more similar to machine code instructions.

Every assembler may have it's own assembly language designed for a specific computers or an operating system.

Assembly language requires less execution time and memory. It is more helful for direct hardware manipulation, real-time critical applications. It is used in device drivers, low-level embedded systems etc.

Syntax help

Assembly language usually consists of three sections,

  1. Data section

    To initialize variables and constants, buffer size these values doesn't change at runtime.

  2. bss section

    To declare variables

  3. text section

    _start specifies the starting of this section where the actually code is written.

Variables

There are various define directives to allocate space for variables for both initialized and uninitialized data.

1. To allocate storage space to Initialized data

Syntax

variable-name    define-directive    initial-value 
Define DirectiveDescriptionAllocated Space
DBDefine Byte1 byte
DWDefine Word2 bytes
DDDefine Doubleword4 bytes
DQDefine Quadword8 bytes
DTDefine Ten Bytes10 bytes

2. To allocate storage space to un-initialized data

Define DirectiveDescription
RESBReserve a Byte
RESWReserve a Word
RESDReserve a Doubleword
RESQReserve a Quadword
RESTReserve a Ten Bytes

Constants

Constants can be defined using

1. equ

  • To define numeric constants
CONSTANT_NAME EQU regular-exp or value

2. %assign

  • To define numeric constants.
%assign constant_name value

3. %define

  • To define numeric or string constants.
%define constant_name value

Loops

Loops are used to iterate a set of statements for a specific number of times.

mov ECX,n
L1:
;<loop body>
loop L1

where n specifies the no of times loops should iterate.

Procedures

Procedure is a sub-routine which contains set of statements. Usually procedures are written when multiple calls are required to same set of statements which increases re-usuability and modularity.

procedure_name:
   ;procedure body
   ret