📄 initio.asm
字号:
.PUBLIC _InitIO
.PUBLIC _ShowRes
.PUBLIC _ClearWatchDog
.DEFINE Port_IOA_Attrib 0x7003
.DEFINE Port_IOA_Dir 0x7002
.DEFINE Port_IOA_Data 0x7000
.DEFINE Port_IOB_Attrib 0x7008
.DEFINE Port_IOB_Dir 0x7007
.DEFINE Port_IOB_Data 0x7005
.CODE
_ClearWatchDog: .PROC
push r1 to [SP]
r1 = 0x0001
[0x7012] = r1
pop r1 from [SP]
retf
.ENDP
_ShowRes: .PROC
push r1, r5 to [SP]
r5 = SP + 5
r4 = [r5+3]
[0x7005] = r4
pop r1, r5 from [SP]
retf
.ENDP
_InitIO: .PROC
r1=0xffff
[Port_IOB_Attrib] = r1 //B口设置为同向输出
[Port_IOB_Dir] = r1
r1 = 0xffff
[Port_IOB_Data] = r1 //B口
r1=0xffff
[Port_IOA_Attrib] = r1 //A口设置为同向输出
[Port_IOA_Dir] = r1
r1 = 0x3fff
[Port_IOA_Data] = r1 //A口置高电平
retf
.ENDP
.PUBLIC _LED_RED_ON
_LED_RED_ON: .PROC
r1 = [Port_IOA_Data]
r1 = 0x7fff;
[Port_IOA_Data] = r1;
retf
.ENDP
.PUBLIC _LED_RED_OFF
_LED_RED_OFF: .PROC
r1 = [Port_IOA_Data]
r1 = 0x3fff;
[Port_IOA_Data] = r1;
retf
.ENDP
.PUBLIC _LED_GRE_ON
_LED_GRE_ON: .PROC
r1 = [Port_IOA_Data]
r1 = 0xBfff;
[Port_IOA_Data] = r1;
retf
.ENDP
.PUBLIC _LED_GRE_OFF
_LED_GRE_OFF: .PROC
r1 = [Port_IOA_Data]
r1 = 0x3fff;
[Port_IOA_Data] = r1;
retf
.ENDP
.PUBLIC _Delay;
_Delay: .PROC
PUSH r2,r3 TO [sp];
R2 = 0x20;
R3 = 0x1;
L1:
R2 = R2-1;
CMP R2,R3;
JNGE L2;
JMP L1;
L2:
R2 = 0x20;
R1 = R1-1;
CMP R1,R3;
JNGE L3;
JMP L2;
L3:
POP r2,r3 FROM [sp];
RETF;
.ENDP
.END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -