⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 other.asm

📁 完整的方案
💻 ASM
字号:
MainOther:
MainOther0:
         CALL ClearWatchDog
         R1=[_ErrType]
         JE MainOther1
         PC=DealSysError
MainOther1:
         CALL ComRx
         CMP R1, dRxNoSign
         JE MainOther2
         CMP R1, 0
         JE MainOther2
         R5=R1
         CALL EnUart
         R1=0x0d
         CALL TxByte
         R1='*'
         CALL TxByte
         R1=R5
         CALL TxHex
         CALL DiUart

MainOther2:
         R1=[_SysFlagA]
         TEST R1, KeyBit
         JE MainOther3
         PC=UnitOff
MainOther3:
         TEST R1, CoordBit
         JNE MainOtherCoord
         PC=MainOther4
MainOtherCoord:
         R1&=CoordBit_
         [_SysFlagA]=R1
         R1=[_CardMode]
         CMP R1, TestMode
         JE MainTest
         CMP R1, VersionMode
         JE MainVersion
         PC=MainOther4

MainTest:
         R1=[_SysFlagA]
         TEST R1, BaseDataBit
         JE MainTestDetail
MainTestBase:
         TEST R1, HadDealBit
         JNE MainTestEnd
         R4=0x42
         CALL TestCheckSum
         CMP R2, [R3]
         JNE MainTestEnd
MainTestBaseOk:
         CALL PrintBaseData
         R1=[_SysFlagA]
         R1|=HadDealBit
         [_SysFlagA]=R1
         JMP MainTestEnd
MainTestDetail:
         CALL PrintDetail
MainTestEnd:
         PC=MainOther0

MainVersion:
         R1=[_SysFlagA]
         TEST R1, HadDealBit
         JNE MainOther4
         R4=0x10
         CALL PrintByteBuf
         R4=0x0f
         CALL TestCheckSum
         CMP R2, [R3]
         JNE MainOther4
MainVersionMove:
         R4=16
         R2=_CommBuf
         R3=_CommBuf+0x10
MainVersionMove0:
         R1=[R2]
         [R3]=R1
         R2+=1
         R3+=1
         R4-=1
         JNE MainVersionMove0
         R4=0x10
         CALL PrintByteBuf
         R1=[_SysFlagA]
         R1|=HadDealBit
         [_SysFlagA]=R1
         R1=0
         [_VerNum]=R1
         R1=[_CommBuf]
         [_VerLen]=R1       
MainOther4:
         R1=[_SacmStatus]
         JE MainOther5
         CALL _ServiceLoop
         PC=MainOther0
MainOther5:
         R1=[_CardMode]
         CMP R1, VersionMode
         JE MainVersionPlay
         CMP R1, ContinousMode
         JNE MainOtherEnd
MainContinousPlay:
         R1=[_Index]
         R1+=1
         [_Index]=R1
         CMP R1, [_SoundEndIndex]
         JNE MainContinousPlay_
         PC=UnitOff
MainContinousPlay_:
         CALL _PlaySound
         JMP MainOtherEnd

MainVersionPlay:
         R1=[_SysFlagA]
         TEST R1, HadDealBit
         JE MainOtherEnd
         CALL PlayVerSound
MainOtherEnd:
         PC=MainOther0


MainContinous:

TestCheckSum:
         R2=0
         R3=_CommBuf
TestCheckSum0:
         R2+=[R3++]
         R4-=1
         JNE TestCheckSum0
         R2&=0xff
         RETF

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -