vectors08.lis
来自「要用到开发工具SD-H08」· LIS 代码 · 共 141 行
LIS
141 行
.module vectors08.c
.area text
; KB_valve -> 0,X
0000 _isrKBI::
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 A7FF ais #-1
002D 95 tsx
002E ; /*-----------------------------------------------------*
002E ; *文件名:vectors08.c *
002E ; *功 能:用于定义中断矢量表 *
002E ; *-----------------------------------------------------*/
002E ; /*[头文件]*/
002E ; #include "GP32C.H"
002E ; #include "KB.h"
002E ; #include "SCI.h"
002E ; /*键盘中断处理函数------------------------------------*/
002E ; #pragma interrupt_handler isrKBI
002E ; void isrKBI(void)
002E ; {
002E ; unsigned char KB_valve;
002E ; asm("SEI"); //关总中断
002E 9B SEI
002F ; INTKBSCR|= (1<<IntBit); //屏蔽键盘中断(IMASKK=1)
002F 121A bset #1,0x1a
0031 ; KB_valve=KB_Scan(); //扫描键值
0031 CD0000 jsr _KB_Scan
0034 95 tsx
0035 B700 sta *__r1
0037 F7 sta ,X
0038 ; KB_valve=KB_Def(KB_valve); //键值转化为定义值
0038 87 psha
0039 CD0000 jsr _KB_Def
003C A701 ais #1
003E 95 tsx
003F B700 sta *__r1
0041 F7 sta ,X
0042 ; SCISend1(KB_valve);
0042 87 psha
0043 CD0000 jsr _SCISend1
0046 A701 ais #1
0048 ; KB_Init(); //重新初始化键盘
0048 CD0000 jsr _KB_Init
004B 95 tsx
004C ; INTKBSCR&= ~(1<<IntBit); //打开键盘中断(IMASKK=0)
004C 131A bclr #1,0x1a
004E ; asm("CLI"); //开总中断
004E 9A CLI
004F L1:
004F A701 ais #1
0051 .dbline 0 ; func end
0051 86 pula
0052 B700 sta *__rlo
0054 86 pula
0055 B700 sta *__rhi
0057 86 pula
0058 B700 sta *__r11
005A 86 pula
005B B700 sta *__r10
005D 86 pula
005E B700 sta *__r9
0060 86 pula
0061 B700 sta *__r8
0063 86 pula
0064 B700 sta *__r7
0066 86 pula
0067 B700 sta *__r6
0069 86 pula
006A B700 sta *__r5
006C 86 pula
006D B700 sta *__r4
006F 86 pula
0070 B700 sta *__r3
0072 86 pula
0073 B700 sta *__r2
0075 86 pula
0076 B700 sta *__r1
0078 86 pula
0079 B700 sta *__r0
007B 8A pulh
007C 80 rti
007D _isrDummy::
007D 8B pshh
007E ; }
007E ; //未定义的中断处理函数,本函数不能删除
007E ; #pragma interrupt_handler isrDummy
007E ; void isrDummy(void)
007E ; {
007E L2:
007E .dbline 0 ; func end
007E 8A pulh
007F 80 rti
.area memory(abs)
.org 0xffdc
FFDC __vectab::
FFDC 007D .word _isrDummy
FFDE 007D .word _isrDummy
FFE0 0000 .word _isrKBI
FFE2 007D .word _isrDummy
FFE4 007D .word _isrDummy
FFE6 007D .word _isrDummy
FFE8 007D .word _isrDummy
FFEA 007D .word _isrDummy
FFEC 007D .word _isrDummy
FFEE 007D .word _isrDummy
FFF0 007D .word _isrDummy
FFF2 007D .word _isrDummy
FFF4 007D .word _isrDummy
FFF6 007D .word _isrDummy
FFF8 007D .word _isrDummy
FFFA 007D .word _isrDummy
FFFC 007D .word _isrDummy
.area lit
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?