📄 vectors08.s
字号:
.module vectors08.c
.area text
; SerialBuff -> 0,X
; i -> 1,X
_isrRe::
pshh
lda *__r0
psha
lda *__r1
psha
lda *__r2
psha
lda *__r3
psha
lda *__r4
psha
lda *__r5
psha
lda *__r6
psha
lda *__r7
psha
lda *__r8
psha
lda *__r9
psha
lda *__r10
psha
lda *__r11
psha
lda *__rhi
psha
lda *__rlo
psha
ais #-2
tsx
; /*-----------------------------------------------------*
; *文件名:vectors08.c *
; *功 能:用于定义中断矢量表 *
; *-----------------------------------------------------*/
; //[头文件]
; #include "GP32C.H" //包含头文件
; #include "SCI.h" //串行通信子程序头文件
; /*isrRe:接收中断处理函数-------------------------------*
; *功 能:接收1个数据, 发送接到的数据 *
; *-----------------------------------------------------*/
; //#pragma interrupt_handler是编译器的伪指令
; #pragma interrupt_handler isrRe
; void isrRe(void)
; {
; unsigned char SerialBuff[1]; //存放接收数据的数组
; unsigned char i;
; asm("SEI"); //禁止所有中断
SEI
; //接收1个数据
; i=SCIReN(1,SerialBuff);
pshx
pshh
lda #1
psha
jsr _SCIReN
ais #3
tsx
sta *__r1
sta 1,X
; //若收到数据,则发送接到的数据
; if(i==0) SCISendN(1,SerialBuff);
bne L2
pshx
pshh
lda #1
psha
jsr _SCISendN
ais #3
tsx
L2:
; asm("CLI"); //开放总中断
CLI
L1:
ais #2
.dbline 0 ; func end
pula
sta *__rlo
pula
sta *__rhi
pula
sta *__r11
pula
sta *__r10
pula
sta *__r9
pula
sta *__r8
pula
sta *__r7
pula
sta *__r6
pula
sta *__r5
pula
sta *__r4
pula
sta *__r3
pula
sta *__r2
pula
sta *__r1
pula
sta *__r0
pulh
rti
_isrDummy::
pshh
; }
; //未定义的中断处理函数,本函数不能删除
; #pragma interrupt_handler isrDummy
; void isrDummy(void)
; {
L4:
.dbline 0 ; func end
pulh
rti
.area memory(abs)
.org 0xffdc
__vectab::
.word _isrDummy
.word _isrDummy
.word _isrDummy
.word _isrDummy
.word _isrRe
.word _isrDummy
.word _isrDummy
.word _isrDummy
.word _isrDummy
.word _isrDummy
.word _isrDummy
.word _isrDummy
.word _isrDummy
.word _isrDummy
.word _isrDummy
.word _isrDummy
.word _isrDummy
.area lit
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -