我自己写的反汇编程序,从一个中断地址入口,一条指令一条指令翻译下来的,出现了跳转指令跳到了个无效地址(以用红色表示出来了),不知道怎么解决啊,请大家给想想主意,谢谢了先,翻译后的指令如下:单片机是MC68HC908MR32
还有个问题问一下会不会这个中断函数中有常数定义啊?
00009CFD 8B PSHH
00009CFE B616 LDA $16
00009D00 C700E3 STA $00E3
00009D03 1F16 BCLR 7,$16
00009D05 B617 LDA $17
00009D07 CB01B3 ADD $01B3
00009D0A B717 STA $17
00009D0C B618 LDA $18
00009D0E CB01B2 ADD $01B2
00009D11 87 PSHA
00009D12 4F CLRA
00009D13 A900 ADC #$00
00009D15 87 PSHA
00009D16 8A PULH
00009D17 88 PULX
00009D18 6500FF CPHX #$00FF
00009D1B 9302 BLE *+4 ;abs = $9D1F
00009D1D 3C17 INC $17
00009D1F B618 LDA $18
00009D21 CB01B2 ADD $01B2
00009D24 B718 STA $18
00009D26 C601AF LDA $01AF
00009D29 410802 CBEQA #$08,*+5 ;abs = $9D2E
00009D2C 4F CLRA
00009D2D 65A601 CPHX #$A601
00009D30 CE01AF LDX $01AF
00009D33 510902 CBEQX #$09,*+5 ;abs = $9D38
00009D36 5F CLRX
00009D37 65AE01 CPHX #$AE01
00009D3A 89 PSHX
00009D3B 95 TSX
00009D3C FA ORA ,X
00009D3D 86 PULA
00009D3E 2705 BEQ *+7 ;abs = $9D45
00009D40 6E5C16 MOV #$5C,$16
00009D43 201F BRA *+33 ;abs = $9D64
00009D45 C601AF LDA $01AF
00009D48 A10A CMP #$0A
00009D4A 2609 BNE *+11 ;abs = $9D55
00009D4C 4F CLRA
00009D4D C701AF STA $01AF
00009D50 6E1C16 MOV #$1C,$16
00009D53 2013 BRA *+21 ;abs = $9D68
00009D55 C601AE LDA $01AE
00009D58 A501 BIT #$01
00009D5A 2705 BEQ *+7 ;abs = $9D61
00009D5C 6E5C16 MOV #$5C,$16
00009D5F 2003 BRA *+5 ;abs = $9D64
00009D61 6E5816 MOV #$58,$16
00009D64 4501AF LDHX #$01AF
00009D67 7C INC ,X
00009D68 4501AE LDHX #$01AE
00009D6B 74 LSR ,X
00009D6C 8A PULH
00009D6D 80 RTI
|
| |
|