commit 88bbdb2d351a75fc74f33d7dd6bc0a2caca186b9
parent dcea14591faa3f6201dd3a5035629aa8316f8f05
Author: Travis Geiselbrecht <geist@foobox.com>
Date: Sun, 8 Apr 2012 15:47:43 -0700
assembler: add nop pseudo op
Diffstat:
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/assembler.c b/assembler.c
@@ -151,7 +151,7 @@ enum tokens {
tSHR, tAND, tBOR, tXOR, tIFE, tIFN, tIFG, tIFB,
tJSR,
tPOP, tPEEK, tPUSH, tSP, tPC, tO,
- tJMP, tMOV,
+ tJMP, tMOV, tNOP,
tDATA, tDAT, tDW, tWORD,
tCOMMA, tOBRACK, tCBRACK, tCOLON, tPLUS,
tSTRING, tQSTRING, tNUMBER, tEOF,
@@ -163,7 +163,7 @@ static const char *tnames[] = {
"SHR", "AND", "BOR", "XOR", "IFE", "IFN", "IFG", "IFB",
"JSR",
"POP", "PEEK", "PUSH", "SP", "PC", "O",
- "JMP", "MOV",
+ "JMP", "MOV", "NOP",
"DATA", "DAT", "DW", "WORD",
",", "[", "]", ":", "+",
"<STRING>", "<QUOTED-STRING>", "<NUMBER>", "<EOF>",
@@ -363,6 +363,11 @@ void assemble_binop(void) {
op = tSET;
a = assemble_operand();
b = 0x18; // pop
+ } else if (token == tNOP) {
+ // SET 0,0
+ op = tSET;
+ a = 0x20;
+ b = 0x20;
} else {
a = assemble_operand();
expect(tCOMMA);
@@ -412,7 +417,7 @@ again:
case tDIV: case tMOD: case tSHL: case tSHR:
case tAND: case tBOR: case tXOR: case tIFE:
case tIFN: case tIFG: case tIFB:
- case tPUSH: case tPOP:
+ case tPUSH: case tPOP: case tNOP:
assemble_binop();
continue;
case tJSR: