program PointerArith {
	section module {
 
	}
	section data {
		int rax = 0
		int rbx = 0
		int rcx = 0
		int rsi = 0
		int rdi = 0
		int r9 = 0
		int r10 = 0
		string fmt_int = "%lld "
		string newline = "\n"
		ptr x = null
		ptr y = null
		int result = 0
	}
	section code {
	start:
		alloc x, 8, 1
		free x
		alloc y, 8, 1
		free y
		store 10, x, 0, 1
		store 3, y, 0, 1
		load rbx, x, 0, 1
		load rcx, y, 0, 1
		mov result, rbx
		mul result, rcx
		print fmt_int, result
		print newline
		load rsi, x, 0, 1
		load rdi, y, 0, 1
		mov result, rsi
		sub result, rdi
		print fmt_int, result
		print newline
		load r9, x, 0, 1
		load r10, y, 0, 1
		div r9, r10
		mov result, r9
		print fmt_int, result
		print newline
		load r9, x, 0, 1
		load r10, y, 0, 1
		mod r9, r10
		mov result, r9
		print fmt_int, result
		print newline
		load r9, x, 0, 1
		add r9, 1
		store r9, x, 0, 1
		load r9, x, 0, 1
		print fmt_int, r9
		print newline
		free x
		free y
		done
	}
}