Hallo und Danke an alle.
Ich denke ich habs jetzt geschnallt.
Ich habe beim Disassembler jetzt eine Abfrage rein gemacht, die überprüft, ob der STS (16-Bit) korrekt ist.
Wenn die Adresse aus dem Opcode extrahiert wird, folgt eine Prüfung, ob die Adresse im Bereich 0x40 bis 0xBF liegt.
Wenn ja, wird STS (16-Bit) angewendet, ansonsten sucht der Disassembler einen anderen Mnemonic der passt. In dem Fall LDD <register>,Y+q
Bis jetzt funktioniert es.
Vielleicht gibts ja noch ne Überraschung. Wer weis.
Ach übrigens.
In VB.Net wird der Disassembler geschrieben. Und die Adresse von dem STS (16-Bit) dekodiere ich so:
' STS (16-Bit) kodiert die Adresse in besonderer Form
Function getAddress_STS16(ByVal opcode As UShort) As Byte
Dim adr As Byte = (opcode And &HF) Or _
((opcode And &H600) >> 5) Or _
((opcode And &H100) >> 2)
Return adr
End Function
Das aber nur am Rande erwähnt.
Also danke nochmal an alle.
Mitch
Lesezeichen