std::sys_common::backtrace::__rust_begin_short_backtrace:
	subq	$56, %rsp
	movq	%rdi, 32(%rsp)
	callq	core::ops::function::FnOnce::call_once
	movq	core::hint::black_box@GOTPCREL(%rip), %rax
	callq	*%rax
	jmp	.LBB0_2

.LBB0_2:
	addq	$56, %rsp
	retq

.LBB0_3:
	jmp	.LBB0_4

.LBB0_4:
	movq	40(%rsp), %rdi
	callq	_Unwind_Resume@PLT
	ud2
	movq	%rax, 40(%rsp)
	movl	%edx, 48(%rsp)
	jmp	.LBB0_3

std::rt::lang_start:
	subq	$56, %rsp
	leaq	.L__unnamed_1(%rip), %rax
	movq	%rdi, 32(%rsp)
	movq	%rsi, 40(%rsp)
	movq	%rdx, 48(%rsp)
	movq	%rdi, 24(%rsp)
	leaq	24(%rsp), %rcx
	movq	%rcx, %rdi
	movq	%rsi, 16(%rsp)
	movq	%rax, %rsi
	movq	16(%rsp), %rax
	movq	%rdx, 8(%rsp)
	movq	%rax, %rdx
	movq	8(%rsp), %rcx
	callq	*std::rt::lang_start_internal@GOTPCREL(%rip)
	movq	%rax, (%rsp)
	movq	(%rsp), %rax
	addq	$56, %rsp
	retq

std::rt::lang_start::{{closure}}:
	subq	$24, %rsp
	movq	%rdi, 16(%rsp)
	movq	(%rdi), %rdi
	callq	std::sys_common::backtrace::__rust_begin_short_backtrace
	callq	<() as std::process::Termination>::report
	movl	%eax, 12(%rsp)
	movl	12(%rsp), %eax
	addq	$24, %rsp
	retq

std::sys::unix::process::process_common::ExitCode::as_i32:
	pushq	%rax
	movq	%rdi, (%rsp)
	movzbl	(%rdi), %eax
	popq	%rcx
	retq

core::fmt::ArgumentV1::new:
	subq	$72, %rsp
	movq	%rdi, 40(%rsp)
	movq	%rsi, 48(%rsp)
	movq	%rsi, 56(%rsp)
	movq	56(%rsp), %rax
	movq	%rdi, 16(%rsp)
	movq	%rax, 8(%rsp)
	movq	16(%rsp), %rax
	movq	%rax, 64(%rsp)
	movq	64(%rsp), %rax
	movq	%rax, (%rsp)
	movq	(%rsp), %rax
	movq	%rax, 24(%rsp)
	movq	8(%rsp), %rcx
	movq	%rcx, 32(%rsp)
	movq	24(%rsp), %rax
	movq	32(%rsp), %rdx
	addq	$72, %rsp
	retq

core::fmt::Arguments::new_v1:
	subq	$48, %rsp
	movq	%rdi, %rax
	movq	%rsi, 16(%rsp)
	movq	%rdx, 24(%rsp)
	movq	%rcx, 32(%rsp)
	movq	%r8, 40(%rsp)
	movq	$0, (%rsp)
	movq	%rsi, (%rdi)
	movq	%rdx, 8(%rdi)
	movq	(%rsp), %rdx
	movq	8(%rsp), %rsi
	movq	%rdx, 16(%rdi)
	movq	%rsi, 24(%rdi)
	movq	%rcx, 32(%rdi)
	movq	%r8, 40(%rdi)
	addq	$48, %rsp
	retq

core::ops::function::FnOnce::call_once{{vtable.shim}}:
	subq	$24, %rsp
	movq	%rdi, 16(%rsp)
	movq	(%rdi), %rdi
	callq	core::ops::function::FnOnce::call_once
	movl	%eax, 4(%rsp)
	movl	4(%rsp), %eax
	addq	$24, %rsp
	retq

core::ops::function::FnOnce::call_once:
	subq	$24, %rsp
	movq	%rdi, 16(%rsp)
	callq	*%rdi
	addq	$24, %rsp
	retq

core::ops::function::FnOnce::call_once:
	subq	$40, %rsp
	movq	%rdi, 8(%rsp)
	leaq	8(%rsp), %rdi
	callq	std::rt::lang_start::{{closure}}
	movl	%eax, 4(%rsp)
	jmp	.LBB8_1

.LBB8_1:
	jmp	.LBB8_2

.LBB8_2:
	movl	4(%rsp), %eax
	addq	$40, %rsp
	retq

.LBB8_3:
	jmp	.LBB8_4

.LBB8_4:
	movq	24(%rsp), %rdi
	callq	_Unwind_Resume@PLT
	ud2
	movq	%rax, 24(%rsp)
	movl	%edx, 32(%rsp)
	jmp	.LBB8_3

core::ptr::drop_in_place:
	subq	$16, %rsp
	movq	%rdi, 8(%rsp)
	addq	$16, %rsp
	retq

core::ptr::drop_in_place:
	subq	$24, %rsp
	movq	%rdi, 16(%rsp)
	callq	*core::ptr::drop_in_place@GOTPCREL(%rip)
	addq	$24, %rsp
	retq

rand::distributions::integer::<impl rand::distributions::Distribution<u8> for rand::distributions::Standard>::sample:
	subq	$72, %rsp
	movq	%rdi, 16(%rsp)
	movq	%rsi, 24(%rsp)
	movq	%rsi, 32(%rsp)
	movq	%rsi, 48(%rsp)
	movq	%rsi, 56(%rsp)
	movq	%rsi, %rdi
	callq	*core::ptr::non_null::NonNull<T>::as_ref@GOTPCREL(%rip)
	addq	$16, %rax
	movq	%rax, %rdi
	callq	*core::cell::UnsafeCell<T>::get@GOTPCREL(%rip)
	movq	%rax, 40(%rsp)
	movq	%rax, 64(%rsp)
	movq	%rax, %rdi
	callq	<rand_core::block::BlockRng<R> as rand_core::RngCore>::next_u32
	movl	%eax, 12(%rsp)
	movl	12(%rsp), %eax
	addq	$72, %rsp
	retq

rand::rng::Rng::gen:
	subq	$24, %rsp
	leaq	.L__unnamed_2(%rip), %rax
	movq	%rdi, 16(%rsp)
	movq	%rdi, 8(%rsp)
	movq	%rax, %rdi
	movq	8(%rsp), %rsi
	callq	rand::distributions::integer::<impl rand::distributions::Distribution<u8> for rand::distributions::Standard>::sample
	movb	%al, 7(%rsp)
	movb	7(%rsp), %al
	addq	$24, %rsp
	retq
<() as std::process::Termination>::report:
	subq	$24, %rsp
	xorl	%edi, %edi
	callq	<std::process::ExitCode as std::process::Termination>::report
	movl	%eax, 12(%rsp)
	movl	12(%rsp), %eax
	addq	$24, %rsp
	retq

<std::process::ExitCode as std::process::Termination>::report:
	pushq	%rax
	movb	%dil, 7(%rsp)
	leaq	7(%rsp), %rdi
	callq	std::sys::unix::process::process_common::ExitCode::as_i32
	movl	%eax, (%rsp)
	movl	(%rsp), %eax
	popq	%rcx
	retq

<rand_core::block::BlockRng<R> as rand_core::RngCore>::next_u32:
	subq	$104, %rsp
	movq	%rdi, 88(%rsp)
	movq	(%rdi), %rax
	movq	%rdi, %rcx
	addq	$8, %rcx
	movq	%rdi, 80(%rsp)
	movq	%rcx, %rdi
	movq	%rax, 72(%rsp)
	callq	*<rand_chacha::chacha::Array64<T> as core::convert::AsRef<[T]>>::as_ref@GOTPCREL(%rip)
	movq	%rax, 64(%rsp)
	movq	%rdx, 56(%rsp)
	movq	64(%rsp), %rdi
	movq	56(%rsp), %rsi
	callq	*core::slice::<impl [T]>::len@GOTPCREL(%rip)
	movq	%rax, 48(%rsp)
	movq	72(%rsp), %rax
	movq	48(%rsp), %rcx
	cmpq	%rcx, %rax
	jae	.LBB15_4
	jmp	.LBB15_6

.LBB15_4:
	xorl	%eax, %eax
	movl	%eax, %esi
	movq	80(%rsp), %rdi
	callq	*rand_core::block::BlockRng<R>::generate_and_set@GOTPCREL(%rip)
	jmp	.LBB15_6

.LBB15_6:
	movq	80(%rsp), %rax
	addq	$8, %rax
	movq	%rax, %rdi
	callq	*<rand_chacha::chacha::Array64<T> as core::convert::AsRef<[T]>>::as_ref@GOTPCREL(%rip)
	movq	%rax, 40(%rsp)
	movq	%rdx, 32(%rsp)
	movq	80(%rsp), %rax
	movq	(%rax), %rcx
	movq	32(%rsp), %rdx
	cmpq	%rdx, %rcx
	setb	%sil
	testb	$1, %sil
	movq	%rcx, 24(%rsp)
	jne	.LBB15_8
	jmp	.LBB15_10

.LBB15_8:
	movq	40(%rsp), %rax
	movq	24(%rsp), %rcx
	movl	(%rax,%rcx,4), %edx
	movl	%edx, 100(%rsp)
	movq	80(%rsp), %rsi
	movq	(%rsi), %rdi
	addq	$1, %rdi
	setb	%r8b
	testb	$1, %r8b
	movl	%edx, 20(%rsp)
	movq	%rdi, 8(%rsp)
	jne	.LBB15_11
	movq	80(%rsp), %rax
	movq	8(%rsp), %rcx
	movq	%rcx, (%rax)
	movl	20(%rsp), %edx
	movl	%edx, %eax
	addq	$104, %rsp
	retq

.LBB15_10:
	leaq	.L__unnamed_3(%rip), %rdx
	movq	core::panicking::panic_bounds_check@GOTPCREL(%rip), %rax
	movq	24(%rsp), %rdi
	movq	32(%rsp), %rsi
	callq	*%rax
	ud2

.LBB15_11:
	leaq	str.0(%rip), %rdi
	leaq	.L__unnamed_4(%rip), %rdx
	movq	core::panicking::panic@GOTPCREL(%rip), %rax
	movl	$28, %esi
	callq	*%rax
	ud2

playground::main:
	subq	$136, %rsp
	callq	*rand::rngs::thread::thread_rng@GOTPCREL(%rip)
	movq	%rax, 24(%rsp)
	leaq	24(%rsp), %rdi
	callq	rand::rng::Rng::gen
	movb	%al, 23(%rsp)
	jmp	.LBB16_2

.LBB16_2:
	movb	23(%rsp), %al
	movb	%al, 111(%rsp)
	leaq	111(%rsp), %rcx
	movq	%rcx, 96(%rsp)
	movq	96(%rsp), %rcx
	movq	%rcx, 128(%rsp)
	movq	core::fmt::num::imp::<impl core::fmt::Display for u8>::fmt@GOTPCREL(%rip), %rsi
	movq	%rcx, %rdi
	callq	core::fmt::ArgumentV1::new
	movq	%rdx, 8(%rsp)
	movq	%rax, (%rsp)
	jmp	.LBB16_3

.LBB16_3:
	movq	(%rsp), %rax
	movq	%rax, 80(%rsp)
	movq	8(%rsp), %rcx
	movq	%rcx, 88(%rsp)
	leaq	.L__unnamed_5(%rip), %rsi
	leaq	32(%rsp), %rdi
	movl	$2, %edx
	leaq	80(%rsp), %rcx
	movl	$1, %r8d
	callq	core::fmt::Arguments::new_v1
	jmp	.LBB16_4

.LBB16_4:
	movq	std::io::stdio::_print@GOTPCREL(%rip), %rax
	leaq	32(%rsp), %rdi
	callq	*%rax
	jmp	.LBB16_5

.LBB16_5:
	leaq	24(%rsp), %rdi
	callq	core::ptr::drop_in_place
	addq	$136, %rsp
	retq

.LBB16_7:
	leaq	24(%rsp), %rdi
	callq	core::ptr::drop_in_place
	movq	112(%rsp), %rdi
	callq	_Unwind_Resume@PLT
	ud2
	movq	%rax, 112(%rsp)
	movl	%edx, 120(%rsp)
	jmp	.LBB16_7

main:
	subq	$24, %rsp
	movb	__rustc_debug_gdb_scripts_section__(%rip), %al
	movslq	%edi, %rcx
	leaq	playground::main(%rip), %rdi
	movq	%rsi, 16(%rsp)
	movq	%rcx, %rsi
	movq	16(%rsp), %rdx
	movb	%al, 15(%rsp)
	callq	std::rt::lang_start
	addq	$24, %rsp
	retq

.L__unnamed_1:
	.quad	core::ptr::drop_in_place
	.quad	8
	.quad	8
	.quad	std::rt::lang_start::{{closure}}
	.quad	std::rt::lang_start::{{closure}}
	.quad	core::ops::function::FnOnce::call_once{{vtable.shim}}

.L__unnamed_2:

.L__unnamed_6:
	.ascii	"/playground/.cargo/registry/src/github.com-1ecc6299db9ec823/rand_core-0.6.2/src/block.rs"

.L__unnamed_3:
	.quad	.L__unnamed_6
	.asciz	"X\000\000\000\000\000\000\000\271\000\000\000\025\000\000"

.L__unnamed_4:
	.quad	.L__unnamed_6
	.asciz	"X\000\000\000\000\000\000\000\272\000\000\000\t\000\000"

str.0:
	.ascii	"attempt to add with overflow"

.L__unnamed_7:
	.byte	10

.L__unnamed_5:
	.quad	.L__unnamed_2
	.zero	8
	.quad	.L__unnamed_7
	.asciz	"\001\000\000\000\000\000\000"

__rustc_debug_gdb_scripts_section__:
	.asciz	"\001gdb_load_rust_pretty_printers.py"
	.byte	1
	.byte	17
	.byte	1
	.byte	37
	.byte	14
	.byte	19
	.byte	5
	.byte	3
	.byte	14
	.byte	16
	.byte	23
	.byte	27
	.byte	14
	.ascii	"\264B"
	.byte	25
	.byte	17
	.byte	1
	.byte	85
	.byte	23
	.byte	0
	.byte	0
	.byte	2
	.byte	52
	.byte	0
	.byte	3
	.byte	14
	.byte	73
	.byte	19
	.byte	2
	.byte	24
	.byte	0
	.byte	0
	.byte	3
	.byte	19
	.byte	0
	.byte	29
	.byte	19
	.byte	3
	.byte	14
	.byte	11
	.byte	11
	.ascii	"\210\001"
	.byte	15
	.byte	0
	.byte	0
	.byte	4
	.byte	57
	.byte	1
	.byte	3
	.byte	14
	.byte	0
	.byte	0
	.byte	5
	.byte	19
	.byte	1
	.byte	3
	.byte	14
	.byte	11
	.byte	11
	.ascii	"\210\001"
	.byte	15
	.byte	0
	.byte	0
	.byte	6
	.byte	13
	.byte	0
	.byte	3
	.byte	14
	.byte	73
	.byte	19
	.ascii	"\210\001"
	.byte	15
	.byte	56
	.byte	11
	.byte	0
	.byte	0
	.byte	7
	.byte	46
	.byte	1
	.byte	17
	.byte	1
	.byte	18
	.byte	6
	.byte	64
	.byte	24
	.byte	110
	.byte	14
	.byte	3
	.byte	14
	.byte	58
	.byte	11
	.byte	59
	.byte	11
	.byte	73
	.byte	19
	.byte	0
	.byte	0
	.byte	8
	.byte	52
	.byte	0
	.byte	2
	.byte	24
	.byte	3
	.byte	14
	.ascii	"\210\001"
	.byte	15
	.byte	58
	.byte	11
	.byte	59
	.byte	11
	.byte	73
	.byte	19
	.byte	0
	.byte	0
	.byte	9
	.byte	47
	.byte	0
	.byte	73
	.byte	19
	.byte	3
	.byte	14
	.byte	0
	.byte	0
	.byte	10
	.byte	5
	.byte	0
	.byte	2
	.byte	24
	.byte	3
	.byte	14
	.byte	58
	.byte	11
	.byte	59
	.byte	11
	.byte	73
	.byte	19
	.byte	0
	.byte	0
	.byte	11
	.byte	46
	.byte	1
	.byte	17
	.byte	1
	.byte	18
	.byte	6
	.byte	64
	.byte	24
	.byte	110
	.byte	14
	.byte	3
	.byte	14
	.byte	58
	.byte	11
	.byte	59
	.byte	11
	.byte	0
	.byte	0
	.byte	12
	.byte	11
	.byte	1
	.byte	17
	.byte	1
	.byte	18
	.byte	6
	.byte	0
	.byte	0
	.byte	13
	.byte	52
	.byte	0
	.byte	2
	.byte	24
	.byte	3
	.byte	14
	.byte	58
	.byte	11
	.byte	59
	.byte	11
	.byte	73
	.byte	19
	.byte	0
	.byte	0
	.byte	14
	.byte	46
	.byte	1
	.byte	17
	.byte	1
	.byte	18
	.byte	6
	.byte	64
	.byte	24
	.byte	110
	.byte	14
	.byte	3
	.byte	14
	.byte	58
	.byte	11
	.byte	59
	.byte	5
	.byte	73
	.byte	19
	.byte	0
	.byte	0
	.byte	15
	.byte	5
	.byte	0
	.byte	2
	.byte	24
	.byte	3
	.byte	14
	.byte	58
	.byte	11
	.byte	59
	.byte	5
	.byte	73
	.byte	19
	.byte	0
	.byte	0
	.byte	16
	.byte	15
	.byte	0
	.byte	73
	.byte	19
	.byte	3
	.byte	14
	.byte	51
	.byte	6
	.byte	0
	.byte	0
	.byte	17
	.byte	21
	.byte	0
	.byte	0
	.byte	0
	.byte	18
	.byte	4
	.byte	1
	.byte	73
	.byte	19
	.byte	109
	.byte	25
	.byte	3
	.byte	14
	.byte	11
	.byte	11
	.ascii	"\210\001"
	.byte	15
	.byte	0
	.byte	0
	.byte	19
	.byte	40
	.byte	0
	.byte	3
	.byte	14
	.byte	28
	.byte	15
	.byte	0
	.byte	0
	.byte	20
	.byte	51
	.byte	1
	.byte	21
	.byte	19
	.byte	0
	.byte	0
	.byte	21
	.byte	13
	.byte	0
	.byte	73
	.byte	19
	.ascii	"\210\001"
	.byte	15
	.byte	56
	.byte	11
	.byte	52
	.byte	25
	.byte	0
	.byte	0
	.byte	22
	.byte	25
	.byte	1
	.byte	22
	.byte	11
	.byte	0
	.byte	0
	.byte	23
	.byte	19
	.byte	0
	.byte	3
	.byte	14
	.byte	11
	.byte	11
	.ascii	"\210\001"
	.byte	15
	.byte	0
	.byte	0
	.byte	24
	.byte	13
	.byte	0
	.byte	3
	.byte	14
	.byte	73
	.byte	19
	.ascii	"\210\001"
	.byte	15
	.byte	56
	.byte	11
	.byte	52
	.byte	25
	.byte	0
	.byte	0
	.byte	25
	.byte	25
	.byte	1
	.byte	0
	.byte	0
	.byte	26
	.byte	5
	.byte	0
	.byte	2
	.byte	24
	.byte	58
	.byte	11
	.byte	59
	.byte	11
	.byte	73
	.byte	19
	.byte	0
	.byte	0
	.byte	27
	.byte	19
	.byte	1
	.byte	3
	.byte	14
	.byte	11
	.byte	5
	.ascii	"\210\001"
	.byte	15
	.byte	0
	.byte	0
	.byte	28
	.byte	36
	.byte	0
	.byte	3
	.byte	14
	.byte	62
	.byte	11
	.byte	11
	.byte	11
	.byte	0
	.byte	0
	.byte	29
	.byte	21
	.byte	1
	.byte	73
	.byte	19
	.byte	0
	.byte	0
	.byte	30
	.byte	5
	.byte	0
	.byte	73
	.byte	19
	.byte	0
	.byte	0
	.byte	31
	.byte	1
	.byte	1
	.byte	73
	.byte	19
	.byte	0
	.byte	0
	.byte	32
	.byte	33
	.byte	0
	.byte	73
	.byte	19
	.byte	34
	.byte	13
	.byte	55
	.byte	11
	.byte	0
	.byte	0
	.byte	33
	.byte	36
	.byte	0
	.byte	3
	.byte	14
	.byte	11
	.byte	11
	.byte	62
	.byte	11
	.byte	0
	.byte	0
	.byte	34
	.byte	46
	.byte	1
	.byte	110
	.byte	14
	.byte	3
	.byte	14
	.byte	58
	.byte	11
	.byte	59
	.byte	5
	.byte	73
	.byte	19
	.byte	32
	.byte	11
	.byte	0
	.byte	0
	.byte	35
	.byte	5
	.byte	0
	.byte	3
	.byte	14
	.byte	58
	.byte	11
	.byte	59
	.byte	5
	.byte	73
	.byte	19
	.byte	0
	.byte	0
	.byte	36
	.byte	46
	.byte	1
	.byte	110
	.byte	14
	.byte	3
	.byte	14
	.byte	58
	.byte	11
	.byte	59
	.byte	11
	.byte	73
	.byte	19
	.byte	32
	.byte	11
	.byte	0
	.byte	0
	.byte	37
	.byte	5
	.byte	0
	.byte	3
	.byte	14
	.byte	58
	.byte	11
	.byte	59
	.byte	11
	.byte	73
	.byte	19
	.byte	0
	.byte	0
	.byte	38
	.byte	11
	.byte	1
	.byte	0
	.byte	0
	.byte	39
	.byte	52
	.byte	0
	.byte	3
	.byte	14
	.ascii	"\210\001"
	.byte	15
	.byte	58
	.byte	11
	.byte	59
	.byte	11
	.byte	73
	.byte	19
	.byte	0
	.byte	0
	.byte	40
	.byte	29
	.byte	1
	.byte	49
	.byte	19
	.byte	17
	.byte	1
	.byte	18
	.byte	6
	.byte	88
	.byte	11
	.byte	89
	.byte	11
	.byte	87
	.byte	11
	.byte	0
	.byte	0
	.byte	41
	.byte	5
	.byte	0
	.byte	2
	.byte	24
	.byte	49
	.byte	19
	.byte	0
	.byte	0
	.byte	42
	.byte	29
	.byte	1
	.byte	49
	.byte	19
	.byte	17
	.byte	1
	.byte	18
	.byte	6
	.byte	88
	.byte	11
	.byte	89
	.byte	5
	.byte	87
	.byte	11
	.byte	0
	.byte	0
	.byte	43
	.byte	52
	.byte	0
	.byte	2
	.byte	24
	.byte	49
	.byte	19
	.byte	0
	.byte	0
	.byte	44
	.byte	13
	.byte	0
	.byte	3
	.byte	14
	.byte	73
	.byte	19
	.ascii	"\210\001"
	.byte	15
	.byte	56
	.byte	5
	.byte	0
	.byte	0
	.byte	45
	.byte	11
	.byte	1
	.byte	85
	.byte	23
	.byte	0
	.byte	0
	.byte	46
	.byte	23
	.byte	1
	.byte	3
	.byte	14
	.byte	11
	.byte	11
	.ascii	"\210\001"
	.byte	15
	.byte	0
	.byte	0
	.byte	47
	.byte	46
	.byte	1
	.byte	17
	.byte	1
	.byte	18
	.byte	6
	.byte	64
	.byte	24
	.byte	110
	.byte	14
	.byte	3
	.byte	14
	.byte	58
	.byte	11
	.byte	59
	.byte	11
	.byte	106
	.byte	25
	.byte	0
	.byte	0
	.byte	0 

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