Added a sample program.

Change: JAL -> JMP, JALF -> JIF.
This commit is contained in:
2025-08-15 05:39:21 +10:00
parent fe98229539
commit 914c6febbe
4 changed files with 25 additions and 6 deletions

18
examples/hello.s Normal file
View File

@@ -0,0 +1,18 @@
.data:
text0 "Hello, World!\n"
file_name "example.txt"
.code:
sd.int32 $4 123
write_file:
sd.int32 $20 -4
sd.int32 $10 file_name
sd.int32 $11 11
sd.int32 $12 1
sys 5
sd.int32 $11 text0
sd.int32 $12 14
sys 4
return
sd.int32 $10 100
sys 1
bmath add Int32 $4 $5 $6

View File

@@ -130,6 +130,7 @@
<InstructionDefinition Id="return" PrimaryInstruction="Return" InstructionCount="1"> <InstructionDefinition Id="return" PrimaryInstruction="Return" InstructionCount="1">
<Aliases> <Aliases>
<Alias Name="return"/> <Alias Name="return"/>
<Alias Name="ret"/>
</Aliases> </Aliases>
<Parameters> <Parameters>
<InstructionParameter> <InstructionParameter>

View File

@@ -26,13 +26,13 @@
SD, SD,
// 0 1 // 0 1
// JAL RD // JMP RD
// [I]Address (int32) // [I]Address (int32)
JAL, JMP,
// Jump And Link If Conditional Register is set. // Jump And Link If Conditional Register is set.
// JALF RD FlagID // JIF RD FlagID
// [I]Address (int32) // [I]Address (int32)
JALF, JIF,
// 0 1 2 3 // 0 1 2 3
// Load [R]Address [I]Len [R]T // Load [R]Address [I]Len [R]T
Load, Load,

View File

@@ -217,9 +217,9 @@ namespace SVM.Core
//Console.WriteLine($"SVM:SD:{data} form PC={PC}"); //Console.WriteLine($"SVM:SD:{data} form PC={PC}");
} }
break; break;
case PrimaryInstruction.JAL: case PrimaryInstruction.JMP:
break; break;
case PrimaryInstruction.JALF: case PrimaryInstruction.JIF:
break; break;
case PrimaryInstruction.Load: case PrimaryInstruction.Load:
{ {