反汇编:
__init__() { __lib_temp_ptr = 0x17D7 __stack_ptr = 0x17D7 self.S = 0xFF // 修改栈指针 _SYSCON = 0x02 _CPUCLK = 0x03 _SYSCON = 0x44 _OSCK = 0xF3 _SYSCON = 0x05 X=0xFF do { for (i=0; i<10; i++) { void // nop } X -= 1 } while (X>=0x01) _CPUCLK=X A=0 X=1 Y=1 do { _BK_SEL = X _BK_ADRL=Y _BK_ADRH=A Y+=1 X+=1 } while (X<0x05) Y=*(U8*)0x03E5 X=9 A=*(U8*)0x03E4 do { _BK_SEL = X _BK_ADRL=Y _BK_ADRH=A Y+=1 X+=1 } while (X<0x0D) A = *(U8*)0x03E5 A += 0x08 Y=A X=0x0D A = *(U8*)0x03E4 do { _BK_SEL=X _BK_ADRL=Y _BK_ADRH=A Y+=1 X+=1 } while (X<0x10) *(u16*)&__addr_reg=0xE746 __banked_function_call() }
汇编:
0354 [EA 78 D8]: NOP @ 空操作
0355 [78 D8 38]: SEI @ 置中断禁止位
0356 [D8 38 A9]: CLD @ 清十进制方式
0357 [38 A9 FF]: SEC @ 置进位标志
0358 [A9 FF E9]: LDA #$FF @ 送累加器
035A [E9 28 85]: SBC #$28 @ 带借位的减法
035C [85 2A 85]: STA $2A = #$D7 @ 存累加器
035E [85 28 A9]: STA $28 = #$D7 @ 存累加器
0360 [A9 17 E9]: LDA #$17 @ 送累加器
0362 [E9 00 85]: SBC #$00 @ 带借位的减法
0364 [85 2B 85]: STA $2B = #$17 @ 存累加器
0366 [85 29 A2]: STA $29 = #$17 @ 存累加器
0368 [A2 FF 9A]: LDX #$FF @ 送变址寄存器X
036A [9A A9 02]: TXS @ 变址寄存器X送栈指针
036B [A9 02 8D]: LDA #$02 @ 送累加器
036D [8D 00 02]: STA $0200 = #$02 @ 存累加器
0370 [A9 03 8D]: LDA #$03 @ 送累加器
0372 [8D 01 02]: STA $0201 = #$03 @ 存累加器
0375 [A9 44 8D]: LDA #$44 @ 送累加器
0377 [8D 00 02]: STA $0200 = #$44 @ 存累加器
037A [A9 F3 8D]: LDA #$F3 @ 送累加器
037C [8D 02 02]: STA $0202 = #$F3 @ 存累加器
037F [A9 05 8D]: LDA #$05 @ 送累加器
0381 [8D 00 02]: STA $0200 = #$05 @ 存累加器
0384 [A2 FF EA]: LDX #$FF @ 送变址寄存器X
0386 [EA EA EA]: NOP @ 空操作
0387 [EA EA EA]: NOP @ 空操作
0388 [EA EA EA]: NOP @ 空操作
0389 [EA EA EA]: NOP @ 空操作
038A [EA EA EA]: NOP @ 空操作
038B [EA EA EA]: NOP @ 空操作
038C [EA EA EA]: NOP @ 空操作
038D [EA EA EA]: NOP @ 空操作
038E [EA EA CA]: NOP @ 空操作
038F [EA CA E0]: NOP @ 空操作
0390 [CA E0 01]: DEX @ 变址寄存器X减1
0391 [E0 01 B0]: CPX #$01 @ 变址寄存器X与存储寄存器比较
0393 [B0 F1 8E]: BCS $0386 @ 进位为“1”分支
0395 [8E 01 02]: STX $0201 = #$00 @ 存变址寄存器X
0398 [A9 00 A2]: LDA #$00 @ 送累加器
039A [A2 01 A0]: LDX #$01 @ 送变址寄存器X
039C [A0 01 86]: LDY #$01 @ 送变址寄存器Y
039E [86 0C 84]: STX $0C = #$01 @ 存变址寄存器X
03A0 [84 0D 85]: STY $0D = #$01 @ 存变址寄存器Y
03A2 [85 0E C8]: STA $0E = #$00 @ 存累加器
03A4 [C8 E8 E0]: INY @ 变址寄存器Y加1
03A5 [E8 E0 05]: INX @ 变址寄存器X加1
03A6 [E0 05 90]: CPX #$05 @ 变址寄存器X与存储寄存器比较
03A8 [90 F4 AC]: BCC $039E @ 进位为0分支
03AA [AC E5 03]: LDY $03E5 = #$80 @ 送变址寄存器Y
03AD [A2 09 AD]: LDX #$09 @ 送变址寄存器X
03AF [AD E4 03]: LDA $03E4 = #$0E @ 送累加器
03B2 [86 0C 84]: STX $0C = #$09 @ 存变址寄存器X
03B4 [84 0D 85]: STY $0D = #$80 @ 存变址寄存器Y
03B6 [85 0E C8]: STA $0E = #$0E @ 存累加器
03B8 [C8 E8 E0]: INY @ 变址寄存器Y加1
03B9 [E8 E0 0D]: INX @ 变址寄存器X加1
03BA [E0 0D 90]: CPX #$0D @ 变址寄存器X与存储寄存器比较
03BC [90 F4 AD]: BCC $03B2 @ 进位为0分支
03BE [AD E5 03]: LDA $03E5 = #$80 @ 送累加器
03C1 [18 69 08]: CLC @ 清进位标志
03C2 [69 08 A8]: ADC #$08 @ 带进位加
03C4 [A8 A2 0D]: TAY @ 累加器送变址寄存器Y
03C5 [A2 0D AD]: LDX #$0D @ 送变址寄存器X
03C7 [AD E4 03]: LDA $03E4 = #$0E @ 送累加器
03CA [86 0C 84]: STX $0C = #$0D @ 存变址寄存器X
03CC [84 0D 85]: STY $0D = #$88 @ 存变址寄存器Y
03CE [85 0E C8]: STA $0E = #$0E @ 存累加器
03D0 [C8 E8 E0]: INY @ 变址寄存器Y加1
03D1 [E8 E0 10]: INX @ 变址寄存器X加1
03D2 [E0 10 90]: CPX #$10 @ 变址寄存器X与存储寄存器比较
03D4 [90 F4 58]: BCC $03CA @ 进位为0分支
03D6 [58 A2 46]: CLI @ 清中断禁止位
03D7 [A2 46 86]: LDX #$46 @ 送变址寄存器X
03D9 [86 26 A2]: STX $26 = #$46 @ 存变址寄存器X
03DB [A2 E7 86]: LDX #$E7 @ 送变址寄存器X
03DD [86 27 20]: STX $27 = #$E7 @ 存变址寄存器X
03DF [20 F6 D2]: JSR $D2F6 @ 转子