From 025b26b87776085f6d06654d060f19721e238e36 Mon Sep 17 00:00:00 2001 From: Aryadev Chavali Date: Sat, 28 Oct 2023 18:24:59 +0100 Subject: Introduced an example source file for all instructions Provides calling conventions, ensures parser and lexer are working correctly. Will be updated as more instructions are introduced and supported in the assembler. --- examples/instruction-test.asm | 50 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 examples/instruction-test.asm diff --git a/examples/instruction-test.asm b/examples/instruction-test.asm new file mode 100644 index 0000000..dcc0cc2 --- /dev/null +++ b/examples/instruction-test.asm @@ -0,0 +1,50 @@ +;;; instruction-test.asm: A file that contains all possible opcodes in +;;; order, with proper calling convention. Used to test lexer and +;;; parser but isn't a semantically correct program, but may be run as +;;; first instruction is halt (so program will stop immediately). + halt + push.byte 1 + push.hword 2 + push.word 3 + pop.byte + pop.hword + pop.word + push-reg.byte 1 + push-reg.hword 2 + push-reg.word 3 + mov.byte 1 + mov.hword 2 + mov.word 3 + dup.byte 1 + dup.hword 2 + dup.word 3 + not.byte + not.hword + not.word + or.byte + or.hword + or.word + and.byte + and.hword + and.word + xor.byte + xor.hword + xor.word + eq.byte + eq.hword + eq.word + plus.byte + plus.hword + plus.word + print.char + print.byte + print.int + print.hword + print.long + print.word + jump.abs 1 + jump.stack + jump.register 2 + jump.if.byte 1 + jump.if.hword 2 + jump.if.word 3 -- cgit v1.2.3-13-gbd6f