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
}
}