Mercurial > repos > simple16
changeset 57:c44170825b16
Implement lsli and lsri in assembler
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Thu, 01 Sep 2016 21:52:48 -0700 |
parents | fa9cf7108ab7 |
children | bed2d84eeabe |
files | simple_console.txt src/asm.c |
diffstat | 2 files changed, 13 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/simple_console.txt Wed Aug 31 23:50:20 2016 -0700 +++ b/simple_console.txt Thu Sep 01 21:52:48 2016 -0700 @@ -53,7 +53,7 @@ B: ori C: xori D: ls[lr]i - MSB of AAAA determines direction + MSB of AAAA determines direction (0 = lsli, 1 = lsri) LS 3 bits determines magnitude E: cmpi F: single reg
--- a/src/asm.c Wed Aug 31 23:50:20 2016 -0700 +++ b/src/asm.c Thu Sep 01 21:52:48 2016 -0700 @@ -122,6 +122,18 @@ } return ret; } + if (!strcmp("lsli", mnemonic) || !strcmp("lsri", mnemonic)) { + ret.base = LSI << 4 | SINGLE_SOURCE; + if (mnemonic[2] == 'r') { + ret.base |= 0x800; + } + ret.immed_min = 1; + ret.immed_max = 8; + ret.first_shift = 8; + ret.second_shift = 12; + ret.expected_args = 2; + return ret; + } index = find_string_arr(mnemonics_single_reg, mnemonic, SETVBR+1); if (index > SETVBR) { ret.base = 0xFFFF;