From 2b03202a30e9da09bfc5c0d382b1f5d2287287a4 Mon Sep 17 00:00:00 2001 From: mrb0nk500 Date: Sun, 9 Aug 2020 17:52:46 -0400 Subject: Added the bitwise OR, left shift, and right shift expressions to the emulator's assembler. --- asmmon.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'asmmon.c') diff --git a/asmmon.c b/asmmon.c index ce78f5b..79a9862 100644 --- a/asmmon.c +++ b/asmmon.c @@ -204,10 +204,10 @@ void list(uint16_t start, uint16_t end, uint8_t all, uint8_t ln, uint8_t addr, u case TOK_BIN: if (rs != 0xFF) { bitnum = (rs << 3); } else { - opsize += (t->qword <= 0x000000FF) + 0; - opsize += (t->qword > 0x000000FF) + 1; - opsize += (t->qword > 0x0000FFFF) + 2; - opsize += (t->qword > 0xFFFFFFFF) + 3; + opsize = 1; + opsize = (t->qword > 0x000000FF) ? 2 : opsize; + opsize = (t->qword > 0x0000FFFF) ? 3 : opsize; + opsize = (t->qword > 0xFFFFFFFF) ? 4 : opsize; if (opsize) { bitnum = bitsize[opsize-1]; } @@ -251,6 +251,11 @@ void list(uint16_t start, uint16_t end, uint8_t all, uint8_t ln, uint8_t addr, u switch (t->type) { case EXPR_PLUS : putchar('+'); break; case EXPR_MINUS: putchar('-'); break; + case EXPR_LSHFT: putchar('<'); /* Falls through. */ + case EXPR_HIGH : putchar('<'); break; + case EXPR_RSHFT: putchar('>'); /* Falls through. */ + case EXPR_LOW : putchar('>'); break; + case EXPR_OR : putchar('|'); break; } break; } -- cgit v1.2.3-13-gbd6f