update readme, add 16-bit arith and pointer increments

This commit is contained in:
Redo
2022-11-01 13:39:26 -06:00
parent 7ec5152d72
commit c1fd3d1d30
4 changed files with 76 additions and 25 deletions

View File

@@ -36,8 +36,8 @@ local function mnemFromLine(line, instrs, validWords)
local function addNum(n)
n = trim(n)
local val, len = decodeNumber(n)
local linei8 = line:gsub(n, "imm8", 1, true)
local linei16 = line:gsub(n, "imm16", 1, true)
local linei8 = line:gsub(n, "imm8", 1, true):lower()
local linei16 = line:gsub(n, "imm16", 1, true):lower()
if len==1 and (not instrs[linei8]) and instrs[linei16] then len = 2 end
table.insert(imms, { val = val, len = len } )
return " imm"..(len*8).." "
@@ -45,7 +45,7 @@ local function mnemFromLine(line, instrs, validWords)
local function addLabel(n)
n = trim(n)
local len = 2
local linei8 = line:gsub(n, "imm8", 1, true)
local linei8 = line:gsub(n, "imm8", 1, true):lower()
if instrs[linei8] then len = 1 end
table.insert(imms, { label = n, len = len } )
return " imm"..(len*8).." "
@@ -59,7 +59,7 @@ local function mnemFromLine(line, instrs, validWords)
mnem = mnem:gsub(" %-?[0-9a-fA-F]+h " , function(n) if not validWords[trim(n)] then return addNum (n) end end)
mnem = mnem:gsub(" %-?[0-9]+ " , function(n) if not validWords[trim(n)] then return addNum (n) end end)
mnem = mnem:gsub(" [a-zA-Z_][a-zA-Z0-9_%.]* ", function(n) if not validWords[trim(n)] then return addLabel(n) end end)
mnem = trim(mnem):gsub(" +", " ")
mnem = trim(mnem):gsub(" +", " "):lower()
if not instrs[mnem] then mnem = mnem:gsub("%+ imm", "imm") end