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. --- assemble.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'assemble.c') diff --git a/assemble.c b/assemble.c index ed56cc8..d127ce5 100644 --- a/assemble.c +++ b/assemble.c @@ -8,6 +8,9 @@ uint8_t isexpr(uint8_t type, uint8_t dbg) { case EXPR_MINUS: case EXPR_LOW: case EXPR_HIGH: + case EXPR_OR: + case EXPR_LSHFT: + case EXPR_RSHFT: return 1; default: return 0; @@ -76,6 +79,9 @@ uint64_t get_val(token *t, uint64_t addr, uint8_t size, uint8_t dbg) { switch (type) { case EXPR_PLUS : (isstart) ? (value = tmp_val) : (value += tmp_val); break; case EXPR_MINUS: (isstart) ? (value = -tmp_val) : (value -= tmp_val); break; + case EXPR_OR : value |= tmp_val; break; + case EXPR_LSHFT: value <<= tmp_val; break; + case EXPR_RSHFT: value >>= tmp_val; break; case EXPR_LOW : value = tmp_val; switch (size) { -- cgit v1.2.3-13-gbd6f