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
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.
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.
Assembly language usually consists of three sections,
Data section
To initialize variables and constants, buffer size these values doesn't change at runtime.
bss section
To declare variables
text section
_start
specifies the starting of this section where the actually code is written.
There are various define directives to allocate space for variables for both initialized and uninitialized data.
variable-name define-directive initial-value
Define Directive | Description | Allocated Space |
---|---|---|
DB | Define Byte | 1 byte |
DW | Define Word | 2 bytes |
DD | Define Doubleword | 4 bytes |
DQ | Define Quadword | 8 bytes |
DT | Define Ten Bytes | 10 bytes |
Define Directive | Description |
---|---|
RESB | Reserve a Byte |
RESW | Reserve a Word |
RESD | Reserve a Doubleword |
RESQ | Reserve a Quadword |
REST | Reserve a Ten Bytes |
Constants can be defined using
CONSTANT_NAME EQU regular-exp or value
%assign constant_name value
%define constant_name value
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.
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