code wiki / (root) / smoke_asm_d1.nx

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}