program TestArray {
section module {
}
section data {
int rax = 0
int rbx = 0
int rcx = 0
int rdx = 0
int rsi = 0
int rdi = 0
ptr _tmpptr0 = null
ptr _tmpptr1 = null
string str_0 = "value is: "
string fmt_int = "%lld "
string fmt_str = "%s "
string newline = "\n"
ptr grid = null
int i = 0
int z = 0
}
section code {
start:
alloc grid, 40, 5
mov z, 0
FOR_0:
cmp z, 3
jg ENDFOR_1
mov i, 0
FOR_3:
cmp i, 3
jg ENDFOR_4
mov rbx, i
mul rbx, z
mov rcx, rbx
add rcx, 1
cmp z, 0
jl IDX_OOB_7
cmp z, 4
jg IDX_OOB_7
jmp IDX_OK_6
IDX_OOB_7:
exit 1
IDX_OK_6:
mov rdx, z
mov rsi, i
mov rdi, rsi
mul rdi, 40
mov _tmpptr0, grid
add _tmpptr0, rdi
store rcx, _tmpptr0, rdx, 8
print fmt_str, str_0
mov rdx, z
mov rsi, i
mov rdi, rsi
mul rdi, 40
mov _tmpptr1, grid
add _tmpptr1, rdi
load rsi, _tmpptr1, rdx, 8
print fmt_int, rsi
print newline
FOR_CONTINUE_5:
add i, 1
jmp FOR_3
ENDFOR_4:
FOR_CONTINUE_2:
add z, 1
jmp FOR_0
ENDFOR_1:
free grid
done
}
}