📄 kkk.asm
字号:
//.DEFINE pword 0x0700
//.DEFINE store 0x0710
.EXTERNAL _shuo
.INCLUDE hardware.inc
.CODE
.PUBLIC _main
_main:
//CALL _shuo
R1=0x0710
[0x070e]=R1
R1=0x00C0
[P_IOB_Dir]=R1
[P_IOB_Attrib]=R1
R1=0x0004
[P_IOB_Data]=R1
R1=0x00ff
[P_IOA_Dir]=R1
[P_IOA_Attrib]=R1
R1=0x0050
[P_IOA_Data]=R1
R1=0x002d //写CRA
[P_IOA_Data]=R1
R1=0x00ad
[P_IOA_Data]=R1
[P_IOA_Data]=R1
R1=0x002d
[P_IOA_Data]=R1
R1=0x005b
[P_IOA_Data]=R1
R1=0x002b //写CRB
[P_IOA_Data]=R1
R1=0x00ab
[P_IOA_Data]=R1
[P_IOA_Data]=R1
R1=0x002b
[P_IOA_Data]=R1
R1=0x005b
[P_IOA_Data]=R1
//IRQ OFF
R1=0x0100
[P_INT_Ctrl]=R1
INT IRQ
R1=0x0700
R2=0x000a
[R1++]=R2
R2=0x0003
[R1++]=R2
R2=0x0002
[R1++]=R2
R2=0x0001
[R1]=R2
//IRQ ON
loop:
nop;
nop;
nop;
nop;
//GOTO loop
//.TEXT
//.PUBLIC _IRQ3_EXT
//_IRQ3_EXT:
//INT OFF
//PUSH R1,R5 TO [SP]
// R1=0x0100
// TEST R1,[P_INT_Ctrl]
// JZ L_IRQ3_EXT1
// R1=0x0200
// TEST R1,[P_INT_Ctrl]
//JNZ L_IRQ3_EXT2
//GOTO L_EXIT_INT
// L_IRQ3_EXT2:
//GOTO L_EXIT_INT
L_IRQ3_EXT1:
R1=0x0040 //摘机
[P_IOB_Data]=R1
//播放语音提示
R1=0x00f0
[P_IOA_Dir]=R1
[P_IOA_Attrib]=R1
R1=0x004f
[P_IOA_Data]=R1
lp1: R1=0x003f //读状态寄存器
[P_IOA_Data]=R1
R1=0x00bf
[P_IOA_Data]=R1
R1=[P_IOA_Data]
R3=0x003f
[P_IOA_Data]=R3
R3=0x004f
[P_IOA_Data]=R3
R4=0x0001
[P_Watchdog_Clear]=R4
TEST R1,0x0004
JZ lp1
R1=0x006f
[P_IOA_Data]=R1
R1=0x001f //读数据
[P_IOA_Data]=R1
R1=0x009f
[P_IOA_Data]=R1
R1=[P_IOA_Data]
R3=0x001f
[P_IOA_Data]=R3
R3=0x006f
[P_IOA_Data]=R3
R1&=0x000f
R2=[0x070e]
[R2++]=R1
[0x070e]=R2
R4=0x0001
[P_Watchdog_Clear]=R4
CMP R1,0x000c //判断是否为#号
JNZ lp1
R1=0x0700
R2=0x0710
R4=0x0005
lp2: R4-=1
JZ lp4
R5=0x0001
[P_Watchdog_Clear]=R5
R3=[R1++]
CMP R3,[R2++]
JZ lp2
lp3: R1=0x0000 //挂机
[P_IOB_Data]=R1
R4=0x0001
[P_Watchdog_Clear]=R4
nop
JMP lp3
L_EXIT_INT:
pop R1,R5 from [sp]
//INT FIQ,IRQ
//RETI
lp4: R1=0x0080 //点灯
[P_IOB_Data]=R1
[P_IOB_Data]=R1
[P_IOB_Data]=R1
R4=0x0001
[P_Watchdog_Clear]=R4
R1=0x0000
[0x0710]=R1
[0x0711]=R1
[0x0712]=R1
[0x0713]=R1
[0x0714]=R1
nop
nop
nop
nop
JMP lp4
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -