📄 vectors08.lis
字号:
.module vectors08.c
.area text
; SerialBuff -> 0,X
; i -> 1,X
0000 _isrRe::
0000 8B pshh
0001 B600 lda *__r0
0003 87 psha
0004 B600 lda *__r1
0006 87 psha
0007 B600 lda *__r2
0009 87 psha
000A B600 lda *__r3
000C 87 psha
000D B600 lda *__r4
000F 87 psha
0010 B600 lda *__r5
0012 87 psha
0013 B600 lda *__r6
0015 87 psha
0016 B600 lda *__r7
0018 87 psha
0019 B600 lda *__r8
001B 87 psha
001C B600 lda *__r9
001E 87 psha
001F B600 lda *__r10
0021 87 psha
0022 B600 lda *__r11
0024 87 psha
0025 B600 lda *__rhi
0027 87 psha
0028 B600 lda *__rlo
002A 87 psha
002B A7FE ais #-2
002D 95 tsx
002E ; /*-----------------------------------------------------*
002E ; *文件名:vectors08.c *
002E ; *功 能:用于定义中断矢量表 *
002E ; *-----------------------------------------------------*/
002E ; //[头文件]
002E ; #include "GP32C.H" //包含头文件
002E ; #include "SCI.h" //串行通信子程序头文件
002E ; /*isrRe:接收中断处理函数-------------------------------*
002E ; *功 能:接收1个数据, 发送接到的数据 *
002E ; *-----------------------------------------------------*/
002E ; //#pragma interrupt_handler是编译器的伪指令
002E ; #pragma interrupt_handler isrRe
002E ; void isrRe(void)
002E ; {
002E ; unsigned char SerialBuff[1]; //存放接收数据的数组
002E ; unsigned char i;
002E ; asm("SEI"); //禁止所有中断
002E 9B SEI
002F ; //接收1个数据
002F ; i=SCIReN(1,SerialBuff);
002F 89 pshx
0030 8B pshh
0031 A601 lda #1
0033 87 psha
0034 CD0000 jsr _SCIReN
0037 A703 ais #3
0039 95 tsx
003A B700 sta *__r1
003C E701 sta 1,X
003E ; //若收到数据,则发送接到的数据
003E ; if(i==0) SCISendN(1,SerialBuff);
003E 260B bne L2
0040 89 pshx
0041 8B pshh
0042 A601 lda #1
0044 87 psha
0045 CD0000 jsr _SCISendN
0048 A703 ais #3
004A 95 tsx
004B L2:
004B ; asm("CLI"); //开放总中断
004B 9A CLI
004C L1:
004C A702 ais #2
004E .dbline 0 ; func end
004E 86 pula
004F B700 sta *__rlo
0051 86 pula
0052 B700 sta *__rhi
0054 86 pula
0055 B700 sta *__r11
0057 86 pula
0058 B700 sta *__r10
005A 86 pula
005B B700 sta *__r9
005D 86 pula
005E B700 sta *__r8
0060 86 pula
0061 B700 sta *__r7
0063 86 pula
0064 B700 sta *__r6
0066 86 pula
0067 B700 sta *__r5
0069 86 pula
006A B700 sta *__r4
006C 86 pula
006D B700 sta *__r3
006F 86 pula
0070 B700 sta *__r2
0072 86 pula
0073 B700 sta *__r1
0075 86 pula
0076 B700 sta *__r0
0078 8A pulh
0079 80 rti
007A _isrDummy::
007A 8B pshh
007B ; }
007B ; //未定义的中断处理函数,本函数不能删除
007B ; #pragma interrupt_handler isrDummy
007B ; void isrDummy(void)
007B ; {
007B L4:
007B .dbline 0 ; func end
007B 8A pulh
007C 80 rti
.area memory(abs)
.org 0xffdc
FFDC __vectab::
FFDC 007A .word _isrDummy
FFDE 007A .word _isrDummy
FFE0 007A .word _isrDummy
FFE2 007A .word _isrDummy
FFE4 0000 .word _isrRe
FFE6 007A .word _isrDummy
FFE8 007A .word _isrDummy
FFEA 007A .word _isrDummy
FFEC 007A .word _isrDummy
FFEE 007A .word _isrDummy
FFF0 007A .word _isrDummy
FFF2 007A .word _isrDummy
FFF4 007A .word _isrDummy
FFF6 007A .word _isrDummy
FFF8 007A .word _isrDummy
FFFA 007A .word _isrDummy
FFFC 007A .word _isrDummy
.area lit
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -