added disassembling for cmp

This commit is contained in:
Wei-ju Wu
2015-01-01 23:41:18 -08:00
parent 043e468b93
commit d750320456
2 changed files with 15 additions and 4 deletions
+4 -1
View File
@@ -2,7 +2,7 @@ ASM_FLAGS = -Fhunk -devpac -I/home/weiju/Development/NDK_3.9/Include/include_i
ASM = vasmm68k_mot
.SUFFIXES : .o .asm
all: test1 hello test2 mouse raster1
all: test1 hello test2 mouse raster1 raster2
.asm.o:
$(ASM) $(ASM_FLAGS) -o $@ $<
@@ -23,3 +23,6 @@ mouse: mouse.o
raster1: raster1.o
vlink -bamigahunk -o $@ -s $<
raster2: raster2.o
vlink -bamigahunk -o $@ -s $<
+11 -3
View File
@@ -19,7 +19,7 @@ OPCODE_CATEGORIES = {
'1101': 'add_addx', '1110': 'shift_rotate'
}
ADD_SUB_OPMODES = {
OPMODES = {
'000': ('b', 'ea,dn->dn'), '001': ('w', 'ea,dn->dn'),'010': ('l', 'ea,dn->dn'),
'100': ('b', 'dn,ea->ea'), '101': ('w', 'dn,ea->ea'),'110': ('l', 'dn,ea->ea')
}
@@ -249,7 +249,7 @@ def disassemble_move(bits, data, offset):
def disassemble_add_sub(name, bits, data, offset):
total_added = 2
reg = "D%d" % int(bits[4:7], 2)
size, operation = ADD_SUB_OPMODES[bits[7:10]]
size, operation = OPMODES[bits[7:10]]
ea, added = operand(size, bits[10:13], bits[13:16], data, offset)
total_added += added
@@ -357,7 +357,15 @@ def _disassemble(data, offset):
print("bits at offset: %d -> %s" % (offset, bits))
raise Exception('TODO: bitops, detail: ' + detail)
elif category == 'cmp_eor':
raise Exception('TODO: cmp_eor')
regnum = int(bits[4:7], 2)
opmode = bits[7:10]
addr_mode = OPMODES[opmode]
size = addr_mode[0]
if addr_mode[1] == 'ea,dn->dn':
ea, added = operand(size, bits[10:13], bits[13:16], data, offset)
instr = Operation2('cmp.' + size, added + 2, ea, DataRegister(regnum))
else:
raise Exception('TODO: cmp_eor')
else:
print("\nUnknown instruction\nCategory: ", category, " Bits: ", bits)
raise Exception('TODO')