Assembler (as):

	- Only support ELF format.

	- Options:
		-c 
			- Suppress the link-edit phase of compilation, and do not remove any object files that are produced.
		-G
			- Produce position independent executable. (Similar to cc).
		-o outfile
			- Produce object named outfile.
		-s
			- Strip debug information from symbol table.

	- Syntax:
		- Intel syntax only (op dest, source)
		- No support for AT&T syntax.
		- Case insensitive.
		- Use architecture addressing and immediate notation:
			x86-64/AMD64:
				[rax+4]

				; Allow linker to decide if GOT entry is generated.
				; Or provide assembler flag for explicit PIC.
				lea rax, [rel function_name] ; No @GOTPCREL syntax.
			AArch64:
				[x0, 4]
				ldr x2, [x2, function_name] ; Same as x86-64/AMD64.
		- Use architecture register naming conventions:
			x86/i386:
				eax, ax, ah/al
				ebx, bx, bh/bl
				ecx, cx, ch/cl
				edx, dx, dh/dl
				esi, si
				edi, di
				ebp, bp
				esp, sp
				eip
			x86-64/AMD64:
				rax, eax, ax, ah/al
				rbx, ebx, bx, bh/bl
				rcx, ecx, cx, ch/cl
				rdx, edx, dx, dh/dl
				rsi, esi, si
				rdi, edi, di
				rbp, ebp, bp
				rsp, esp, sp
				rip
				r8-r15, r8b-r15b
			ARM: r0-r15, cpsr
			AArch64: x0-x30, w0-w30, x31/w31, sp, nzcv
			PowerPC/PowerPC64:
				r0-r32
				lr, ctr, xer, cr, pc
			SPARC:
				g0-g7
				o0-o7
				l0-l7
				i0-i7
				pc, npc, y, psr/pstate/pil
			MIPS: $t0-$s0
			RISC-V: x0-x31

	- Comments:
		Single line comments: ; or #