bms_asm.lis
来自「mega16 ucos操作系统」· LIS 代码 · 共 621 行 · 第 1/3 页
LIS
621 行
008E 5991 LD R21,Y+
0090 4991 LD R20,Y+
0092 3991 LD R19,Y+
0094 2991 LD R18,Y+
0096 1991 LD R17,Y+
0098 0991 LD R16,Y+
009A F990 LD R15,Y+
009C E990 LD R14,Y+
009E D990 LD R13,Y+
00A0 C990 LD R12,Y+
00A2 B990 LD R11,Y+
00A4 A990 LD R10,Y+
00A6 9990 LD R9,Y+
00A8 8990 LD R8,Y+
00AA 7990 LD R7,Y+
00AC 6990 LD R6,Y+
00AE 5990 LD R5,Y+
00B0 4990 LD R4,Y+
00B2 3990 LD R3,Y+
00B4 2990 LD R2,Y+
00B6 1990 LD R1,Y+
00B8 0990 LD R0,Y+
00BA 1895 RETI ; Note: RET instead of RETI
00BC
00BC ;*******************************************************************************
00BC ;
00BC ;*******************************************************************************
00BC
00BC
00BC
00BC
00BC ;**********************************************************************************************
00BC ;* uC/OS-Bms ADC ISR
00BC ;* void OSBms_AdcISR(void)
00BC ;*
00BC ;* Description: This function is invoked when a character is received from the serial port
00BC ;*
00BC ;* Arguments : none
00BC ;*
00BC ;* Note(s) : 1) Pseudo code:
00BC ;*
00BC ;* Save all registers
00BC ;* OSIntNesting++
00BC ;* if (OSIntNesting == 1) {
00BC ;* OSTCBCur->OSTCBStkPtr = SP
00BC ;* }
00BC ;* OSView_AdcHandler();
00BC ;* OSIntExit();
00BC ;* Restore all registers
00BC ;* Return from interrupt;
00BC ;**********************************************************************************************
00BC
00BC
.area text(rel)
00BC _OSBms_AdcISR::
00BC
00BC 0A92 ST -Y,R0
00BE 1A92 ST -Y,R1
00C0 2A92 ST -Y,R2
00C2 3A92 ST -Y,R3
00C4 4A92 ST -Y,R4
00C6 5A92 ST -Y,R5
00C8 6A92 ST -Y,R6
00CA 7A92 ST -Y,R7
00CC 8A92 ST -Y,R8
00CE 9A92 ST -Y,R9
00D0 AA92 ST -Y,R10
00D2 BA92 ST -Y,R11
00D4 CA92 ST -Y,R12
00D6 DA92 ST -Y,R13
00D8 EA92 ST -Y,R14
00DA FA92 ST -Y,R15
00DC 0A93 ST -Y,R16
00DE 1A93 ST -Y,R17
00E0 2A93 ST -Y,R18
00E2 3A93 ST -Y,R19
00E4 4A93 ST -Y,R20
00E6 5A93 ST -Y,R21
00E8 6A93 ST -Y,R22
00EA 7A93 ST -Y,R23
00EC 8A93 ST -Y,R24
00EE 9A93 ST -Y,R25
00F0 AA93 ST -Y,R26
00F2 BA93 ST -Y,R27
00F4 EA93 ST -Y,R30
00F6 FA93 ST -Y,R31
00F8 0FB7 IN R16,SREG ; Save the SREG but with interrupts enabled
00FA 0068 SBR R16,BIT07
00FC 0A93 ST -Y,R16
00FE 0EB7 IN R16,SPH
0100 0A93 ST -Y,R16
0102 0DB7 IN R16,SPL
0104 0A93 ST -Y,R16
0106
0106 00910000 LDS R16,_OSIntNesting ; Notify uC/OS-II of ISR
010A 0395 INC R16 ;
010C 00930000 STS _OSIntNesting,R16 ;
0110
0110 0130 CPI R16,1 ; if (OSIntNesting == 1) {
0112 31F4 BRNE OSBms_AdcISR_1
0114
0114 E0910000 LDS R30,_OSTCBCur ; OSTCBCur->OSTCBStkPtr = Y
0118 F0910100 LDS R31,_OSTCBCur+1
011C C193 ST Z+,R28
011E D193 ST Z+,R29 ; }
0120
0120 OSBms_AdcISR_1:
0120
0120 0E940000 CALL _OSBms_AdcISRHandler ; Call uC/OS-Bms's Adc ISR Handler
0124 0E940000 CALL _OSIntExit ; Notify uC/OS-II about end of ISR
0128
0128 0991 LD R16,Y+
012A 0DBF OUT SPL,R16
012C 0991 LD R16,Y+
012E 0EBF OUT SPH,R16
0130 0991 LD R16,Y+
0132 0F77 CBR R16,BIT07
0134 0FBF OUT SREG,R16
0136 F991 LD R31,Y+
0138 E991 LD R30,Y+
013A B991 LD R27,Y+
013C A991 LD R26,Y+
013E 9991 LD R25,Y+
0140 8991 LD R24,Y+
0142 7991 LD R23,Y+
0144 6991 LD R22,Y+
0146 5991 LD R21,Y+
0148 4991 LD R20,Y+
014A 3991 LD R19,Y+
014C 2991 LD R18,Y+
014E 1991 LD R17,Y+
0150 0991 LD R16,Y+
0152 F990 LD R15,Y+
0154 E990 LD R14,Y+
0156 D990 LD R13,Y+
0158 C990 LD R12,Y+
015A B990 LD R11,Y+
015C A990 LD R10,Y+
015E 9990 LD R9,Y+
0160 8990 LD R8,Y+
0162 7990 LD R7,Y+
0164 6990 LD R6,Y+
0166 5990 LD R5,Y+
0168 4990 LD R4,Y+
016A 3990 LD R3,Y+
016C 2990 LD R2,Y+
016E 1990 LD R1,Y+
0170 0990 LD R0,Y+
0172
0172 1895 RETI
0174
0174
0174
0174 ;**********************************************************************************************
0174 ;* uC/OS-Bms COM Rx ISR
0174 ;* void OSBms_RxISR(void)
0174 ;*
0174 ;* Description: This function is invoked when a character is received from the serial port
0174 ;*
0174 ;* Arguments : none
0174 ;*
0174 ;* Note(s) : 1) Pseudo code:
0174 ;*
0174 ;* Save all registers
0174 ;* OSIntNesting++
0174 ;* if (OSIntNesting == 1) {
0174 ;* OSTCBCur->OSTCBStkPtr = SP
0174 ;* }
0174 ;* OSView_RxHandler();
0174 ;* OSIntExit();
0174 ;* Restore all registers
0174 ;* Return from interrupt;
0174 ;**********************************************************************************************
0174
0174
.area text(rel)
0174 _OSBms_RxISR::
0174
0174 0A92 ST -Y,R0
0176 1A92 ST -Y,R1
0178 2A92 ST -Y,R2
017A 3A92 ST -Y,R3
017C 4A92 ST -Y,R4
017E 5A92 ST -Y,R5
0180 6A92 ST -Y,R6
0182 7A92 ST -Y,R7
0184 8A92 ST -Y,R8
0186 9A92 ST -Y,R9
0188 AA92 ST -Y,R10
018A BA92 ST -Y,R11
018C CA92 ST -Y,R12
018E DA92 ST -Y,R13
0190 EA92 ST -Y,R14
0192 FA92 ST -Y,R15
0194 0A93 ST -Y,R16
0196 1A93 ST -Y,R17
0198 2A93 ST -Y,R18
019A 3A93 ST -Y,R19
019C 4A93 ST -Y,R20
019E 5A93 ST -Y,R21
01A0 6A93 ST -Y,R22
01A2 7A93 ST -Y,R23
01A4 8A93 ST -Y,R24
01A6 9A93 ST -Y,R25
01A8 AA93 ST -Y,R26
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?