smoke_asm_d1.nx source
↩ module page · 18 lines · 560 B
1// Diagnostic: which instructions actually got emitted in test22?
2// addi -> opcode lo byte = 0x13
3// sd -> 0x23
4// li -> 0x13 (also addi-shaped)
5// ret -> 0x67
6//
7// Return byte[0] of output.
8import "syscalls.nx"
9import "nxasm_v2.nx"
10
11func main() -> i64 {
12 let s: *u8 = ".text\n.globl main\nmain:\naddi sp, sp, -16\nsd ra, 8(sp)\nli a0, 30\nret\n"
13 var sl: i64 = 0
14 while s[sl] != 0 { sl = sl + 1 }
15 let out: *u8 = alloc(64)
16 let n: i64 = assemble(s, sl, out, 64)
17 return __syscall(93, out[0] & 0xFF, 0, 0, 0, 0, 0)
18}