#DEFINE LETTER_O 'o' addi $10 $-5 %A; subi %A $2 %B; muli $2 %B %C; divi $2 %C %D; # Set A to zero seti %A $0; # Loop from 0 to 10 count_loop: addi $1 %A %A; # Print the current value int $1; seti %B %A; seti %A $32; # space int $0; seti %A %B; lti %A $10; jmp count_loop; #DEFINE PRINT_CHAR $0 # Hello world seti %A 'H'; # H int PRINT_CHAR; seti %A 'e'; # e int PRINT_CHAR; seti %A $108; # l int PRINT_CHAR; int PRINT_CHAR; seti %A LETTER_O; int PRINT_CHAR; seti %A $32; # space int $0; pushi $68; # D pushi $76; # L pushi $82; # R pushi $79; # O pushi $87; # W seti %B $5; world_loop: popi %A; int $0; subi %B $1 %B; gti %B $0; jmp world_loop; seti %A $10; # newline int $0; seti %B $1024; seti [%B] $50; seti %A $66; seti [$10] %A; # Print 66 as decimal seti %A [$10]; int $1; seti %A $10; # newline int $0; # Print 50 as hex (0x32) seti %A [$1024]; int $2; # Push the string "hell" into register A seti %A $108; # l shli %A $8 %A; addi %A $108 %A; # l shli %A $8 %A; addi %A $101 %A; # e shli %A $8 %A; addi %A $104 %A; # h # Store A at memory location 900 seti [$900] %A; # Setup to print a string from position 900 seti %A $900; seti %B $4; int $3; # Call a function call noop_function; # Echo a character int $4; int $0; seti %A $10; # newline int $0; # Echo a string seti %A $0; seti %B $10; int $5; int $3; exit; noop_function: ret;