Ghidra: M68000: doesn't disassemble MOVEM.L D0-D1, (addr).l

Created on 18 Mar 2019  路  7Comments  路  Source: NationalSecurityAgency/ghidra

Ghidra's Motorola 68000 does not disassemble MOVEM.L D0-D1, (addr).l (marked in red):

ghidra

Seems to disassemble other MOVEM.L variants fine.

Bug

Most helpful comment

There are three more that were missed, so all 4 additional movem instructions are:

:movem.w r2mfw0,(d16)".w"   is opbig=0x48 & op67=2 & mode=7 & regan=0; r2mfw0; d16  { movemptr = d16; build r2mfw0; }
:movem.w r2mfw0,(d32)".l"   is opbig=0x48 & op67=2 & mode=7 & regan=1; r2mfw0; d32  { movemptr = d32; build r2mfw0; }

:movem.l r2mfl0,(d16)".w"   is opbig=0x48 & op67=3 & mode=7 & regan=0; r2mfl0; d16  { movemptr = d16; build r2mfl0; }
:movem.l r2mfl0,(d32)".l"   is opbig=0x48 & op67=3 & mode=7 & regan=1; r2mfl0; d32  { movemptr = d32; build r2mfl0; }

All 7 comments

M68000 is very finicky in what it wants to disassemble automatically for some reason. I still don't know why

:movem.l r2mfl0,(d32)".l"       is opbig=0x48 & op67=3 & mode=7 & regan=1; r2mfl0; d32  { movemptr = d32; build r2mfl0; }

I think this is semi-correct, just add this to your 68000.sinc.

There are three more that were missed, so all 4 additional movem instructions are:

:movem.w r2mfw0,(d16)".w"   is opbig=0x48 & op67=2 & mode=7 & regan=0; r2mfw0; d16  { movemptr = d16; build r2mfw0; }
:movem.w r2mfw0,(d32)".l"   is opbig=0x48 & op67=2 & mode=7 & regan=1; r2mfw0; d32  { movemptr = d32; build r2mfw0; }

:movem.l r2mfl0,(d16)".w"   is opbig=0x48 & op67=3 & mode=7 & regan=0; r2mfl0; d16  { movemptr = d16; build r2mfl0; }
:movem.l r2mfl0,(d32)".l"   is opbig=0x48 & op67=3 & mode=7 & regan=1; r2mfl0; d32  { movemptr = d32; build r2mfl0; }

Thanks mumbel and emteere. Your suggested code works great.

Which game is it?:

  • Blockbuster World Video Game Championship II
  • Daffy Duck in Hollywood
  • Judge Dredd - The Movie

Daffy Duck in Hollywood. Hah, how'd you know? That protection code? Is it something only Probe Entertainment did?

I just seeked for bytes of that function in GoodGEN collection. I don't sure about protection. Maybe some compiler shit.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

marcushall42 picture marcushall42  路  3Comments

Kerilk picture Kerilk  路  3Comments

Merculous picture Merculous  路  3Comments

astrelsky picture astrelsky  路  3Comments

astrelsky picture astrelsky  路  3Comments