add    al,0x10
add    BYTE PTR, [eax+eax*1],ah
add    BYTE PTR, [eax],al
and    al,0x34
add    BYTE PTR, [eax],al
add    BYTE PTR, [eax],al
add    BYTE PTR, [eax],al
add    BYTE PTR, [ebx+edi*4-0xc],dh
xchg   edi,eax
hlt
add    BYTE PTR, [eax+ebx*1],al
push   esp
ficom  WORD PTR, [ecx+edi*1]
stos   DWORD PTR, es:[edi],eax
add    al,0x1f
sti
mov    eax,0x2f12a058
xor    dh,BYTE PTR, [ecx]
push   edx
xor    esi,DWORD PTR, [edx+0x35]
xchg   edx,eax
aaa
add    al,0xdd
(add    BYTE PTR, fs:[ebp+edx*1+0x44],ah)
add    BYTE PTR, [edi+edi*1-0x5c],ah
add    BYTE PTR, [ecx+0x74d874ff],bh
jecxz  0x77
push   ebx
pop    ds
(bad)
fnstcw WORD PTR, [eax-0x392f55a8]
pop    eax
rcl    BYTE PTR, [edi-0x69b31999],1
fnstcw WORD PTR, [eax-0x54d8b9d]
test   DWORD PTR, [ebx+0x153dd74],eax
inc    esi
pusha
inc    ebx
add    al,dh
fnstcw WORD PTR, [eax+0x6fc6d059]
shl    BYTE PTR, [eax-0x560fa748],1
add    al,0x51
mov    eax,0x96f01063
jge    0x8e
adc    al,dh
xchg   esi,eax
jge    0x93
adc    al,dh
and    eax,DWORD PTR, ds:0x37a98bd4
pop    ss
mov    eax,0xf237605a
mov    WORD PTR, [edi],ss
aaa
aaa
add    esi,esi
out    0x99,al
stc
mov    al,ds:0xb2745bb8
add    al,0xad
mov    eax,0x96f0105b
lods   eax,DWORD PTR, ds:[esi]
sbb    BYTE PTR, [eax],dl
lock xchg esi,eax
lods   eax,DWORD PTR, ds:[esi]
sbb    BYTE PTR, [eax],dl
lock add ecx,DWORD PTR, [eax+0x7ea4ade6]
mov    eax,0x37dd7462
xor    al,bh
lock mov bl,0x17
mov    bl,0x7
pop    es
mov    al,ds:0x2089d396
add    al,0xd3
mov    al,0xff
add    al,0x58
lock (bad)
rcl    DWORD PTR, [edi],cl
xchg   esi,eax
mov    edx,0x82b0df99
add    al,0xd3
test   DWORD PTR, [ebp-0x7c0fa748],edx
je     0x96
jmp    0xa422241b
add    BYTE PTR, [bx+si],al 
by

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