【BA4988】_0330中断

反汇编:

_0330()
{
    while ((EndOffSet+1) & 0x7F != StartOffSet)
    {
        if (_URCON1&0x01 == 0x00)
        {
            ReadBuf_Point[EndOffSet] = _SBUF
            EndOffSet += 1
            EndOffSet &= 0x7F
        }
        else
        {
            _2021 |= 0x02
            AutoPowerOffCount = AutoPowerOffValue
            return
        }
    }
    do {
        A=0x08
    } while (_URCON1&0x01 == 0)
    _2278 |= 0x08
    AutoPowerOffCount = AutoPowerOffValue
}

汇编:

[00000330]0330 [4C CC F7]: JMP $F7CC @ 转移$00E8A7CC
[00E8A7CC]F7CC [48 98 48]: PHA @ 累加器压入堆栈
[00E8A7CD]F7CD [98 48 18]: TYA @ 变址寄存器Y送累加器
[00E8A7CE]F7CE [48 18 AD]: PHA @ 累加器压入堆栈
[00E8A7CF]F7CF [18 AD 2F]: CLC @ 清进位标志
[00E8A7D0]F7D0 [AD 2F 20]: LDA $202F = #$04 @ 送累加器
[00E8A7D3]F7D3 [69 01 29]: ADC #$01 @ 带进位加
[00E8A7D5]F7D5 [29 7F CD]: AND #$7F @ 逻辑与
[00E8A7D7]F7D7 [CD 2E 20]: CMP $202E = #$04 @ 累加器与存储器比较
[00E8A7DA]F7DA [F0 27 AD]: BEQ $F803 @ 结果为0分支
[00E8A7DC]F7DC [AD 44 02]: LDA $0244 = #$5F @ 送累加器
[00E8A7DF]F7DF [29 01 D0]: AND #$01 @ 逻辑与
[00E8A7E1]F7E1 [D0 15 A5]: BNE $F7F8 @ 结果不为0分支
[00E8A7E3]F7E3 [A5 08 AC]: LDA $08 = #$FC @ 送累加器
[00E8A7E5]F7E5 [AC 2F 20]: LDY $202F = #$04 @ 送变址寄存器Y
[00E8A7E8]F7E8 [91 3E EE]: STA ($3E),Y @ $227D = #$FC @ 存累加器
[00E8A7EA]F7EA [EE 2F 20]: INC $202F = #$05 @ 存储器加1
[00E8A7ED]F7ED [AD 2F 20]: LDA $202F = #$05 @ 送累加器
[00E8A7F0]F7F0 [29 7F 8D]: AND #$7F @ 逻辑与
[00E8A7F2]F7F2 [8D 2F 20]: STA $202F = #$05 @ 存累加器
[00E8A7F5]F7F5 [4C CF F7]: JMP $F7CF @ 转移$00E8A7CF
[00E8A7F8]F7F8 [A9 02 0D]: LDA #$02 @ 送累加器
[00E8A7FA]F7FA [0D 21 20]: ORA $2021 = #$07 @ 逻辑或
[00E8A7FD]F7FD [8D 21 20]: STA $2021 = #$07 @ 存累加器
[00E8A800]F800 [4C 14 F8]: JMP $F814 @ 转移$00E8A814
[00E8A802]F802 [F8 A5 08]: SED @ 置十进制方式
[00E8A803]F803 [A5 08 AD]: LDA $08 = #$FC @ 送累加器
[00E8A805]F805 [AD 44 02]: LDA $0244 = #$5F @ 送累加器
[00E8A808]F808 [29 01 F0]: AND #$01 @ 逻辑与
[00E8A80A]F80A [F0 F7 A9]: BEQ $F803 @ 结果为0分支
[00E8A80C]F80C [A9 08 0D]: LDA #$08 @ 送累加器
[00E8A80E]F80E [0D 78 22]: ORA $2278 = #$00 @ 逻辑或
[00E8A811]F811 [8D 78 22]: STA $2278 = #$08 @ 存累加器
[00E8A814]F814 [AD 27 20]: LDA $2027 = #$04 @ 送累加器
[00E8A817]F817 [8D 28 20]: STA $2028 = #$04 @ 存累加器
[00E8A81A]F81A [68 A8 68]: PLA @ 堆栈弹回累加器
[00E8A81B]F81B [A8 68 40]: TAY @ 累加器送变址寄存器Y
[00E8A81C]F81C [68 40 48]: PLA @ 堆栈弹回累加器
[00E8A81D]F81D [40 48 A9]: RTI @ 中断返回
posted @ 2021-12-19 17:14  无云  阅读(140)  评论(0)    收藏  举报