Move io
This commit is contained in:
29
input/core/print.nub
Normal file
29
input/core/print.nub
Normal file
@@ -0,0 +1,29 @@
|
||||
let SYS_WRITE = 1;
|
||||
let STD_OUT = 1;
|
||||
let STD_ERR = 2;
|
||||
|
||||
func print(msg: String) {
|
||||
syscall(SYS_WRITE, STD_OUT, msg, strlen(msg));
|
||||
}
|
||||
|
||||
func print(value: bool) {
|
||||
if value {
|
||||
print("true");
|
||||
} else {
|
||||
print("false");
|
||||
}
|
||||
}
|
||||
|
||||
func println() {
|
||||
print("\n");
|
||||
}
|
||||
|
||||
func println(msg: String) {
|
||||
print(msg);
|
||||
println();
|
||||
}
|
||||
|
||||
func println(value: bool) {
|
||||
print(value);
|
||||
println();
|
||||
}
|
||||
13
input/core/strlen.asm
Normal file
13
input/core/strlen.asm
Normal file
@@ -0,0 +1,13 @@
|
||||
global strlen
|
||||
section .text
|
||||
|
||||
strlen:
|
||||
xor rax, rax
|
||||
.loop:
|
||||
cmp byte [rdi], 0
|
||||
jz .done
|
||||
inc rax
|
||||
inc rdi
|
||||
jmp .loop
|
||||
.done:
|
||||
ret
|
||||
1
input/core/strlen.nub
Normal file
1
input/core/strlen.nub
Normal file
@@ -0,0 +1 @@
|
||||
extern func strlen(msg: String): int64;
|
||||
16
input/program.nub
Normal file
16
input/program.nub
Normal file
@@ -0,0 +1,16 @@
|
||||
import "core";
|
||||
|
||||
func main() {
|
||||
println("test");
|
||||
println(true);
|
||||
|
||||
if strlen("1") == 1 {
|
||||
println("1");
|
||||
} else if false {
|
||||
println("2");
|
||||
} else if true {
|
||||
println("3");
|
||||
} else {
|
||||
println("4");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user