diff --git a/examples b/examples new file mode 120000 index 0000000..6a6bed1 --- /dev/null +++ b/examples @@ -0,0 +1 @@ +src/libvm/examples/ \ No newline at end of file diff --git a/examples/deadbeef.asm b/src/libvm/examples/deadbeef.asm similarity index 63% rename from examples/deadbeef.asm rename to src/libvm/examples/deadbeef.asm index 46e11ca..8f624ea 100644 --- a/examples/deadbeef.asm +++ b/src/libvm/examples/deadbeef.asm @@ -8,6 +8,8 @@ .section code $0x0 { main: + mov %ivt, ivt + or %flags, $0b100 mov %r0, $0xDEAD shl %r0, $16 ; move 32 bits at 'beef' to %r01 @@ -19,8 +21,25 @@ jnz end mov %status, $1 end: + div %r0, $0 halt .export main + +} + +.section iv $0x2800 { + dz: + mov %status, $255 + halt + + .export dz +} + +.section ivt $0x2000 .. $0x2800 { + ivt: + .interrupt $1, dz ; Divide by zero + + .export ivt } .meta { diff --git a/examples/factorial.asm b/src/libvm/examples/factorial.asm similarity index 100% rename from examples/factorial.asm rename to src/libvm/examples/factorial.asm diff --git a/examples/strings.asm b/src/libvm/examples/strings.asm similarity index 100% rename from examples/strings.asm rename to src/libvm/examples/strings.asm