📄 setiobit.asm
字号:
.INCLUDE hardware.inc
.DATA
Bit: .DW 0xfffe,0xfffd,0xfffb,0xfff7,0xffef,0xffdf,0xffbf,0xff7f,0xfeff,0xfdff,0xfbff,0xf7ff,0xefff,0xdfff,0xbfff,0x7fff;//'0''1''2''3''4''5''6''7''8''9'的代码
One: .DW 0x0001,0x0002,0x0004,0x0008,0x0010,0x0020,0x0040,0x0080,0x0100,0x0200,0x0400,0x0800,0x1000,0x2000,0x4000,0x8000;
.CODE
.public _Set_IOA_Bit
.public Set_IOA_Bit
_Set_IOA_Bit: .PROC
Set_IOA_Bit:
push bp to [sp];
bp = sp + 3
r4 = [bp+1]
r1= [P_IOA_Dir]
r2= r4+Bit
r2= [r2]
r1= r1&r2
r3 = [bp+2]
cmp r3,0
je AZeroDir
r2= r4+One
r2= [r2]
r1= r1|r2
[P_IOA_Dir]=r1
AZeroDir:
[P_IOA_Dir]=r1
r1= [P_IOA_Attrib]
r2= r4+Bit
r2= [r2]
r1= r1&r2
r3 = [bp+3]
cmp r3,0
je AZeroAttrib
r2= r4+One
r2= [r2]
r1= r1|r2
[P_IOA_Attrib]=r1
AZeroAttrib:
[P_IOA_Attrib]=r1
r1= [P_IOA_Buffer]
r2= r4+Bit
r2= [r2]
r1= r1&r2
r3 = [bp+4]
cmp r3,0
je AZeroBuffer
r2= r4+One
r2= [r2]
r1= r1|r2
[P_IOA_Buffer]=r1
AZeroBuffer:
[P_IOA_Buffer]=r1
r1= [P_IOA_Buffer]
r2= r4+Bit
r2= [r2]
r1= r1&r2
r3 = [bp+4]
cmp r3,0
je AZeroData
r2= r4+One
r2= [r2]
r1= r1|r2
[P_IOA_Data]=r1
AZeroData:
[P_IOA_Data]=r1
pop bp from [sp]
retf;
.ENDP
.public _Set_IOB_Bit
.public Set_IOB_Bit
_Set_IOB_Bit: .PROC
Set_IOB_Bit:
push bp to [sp];
bp = sp + 3
r4 = [bp+1]
r1= [P_IOB_Dir]
r2= r4+Bit
r2= [r2]
r1= r1&r2
r3 = [bp+2]
cmp r3,0
je BZeroDir
r2= r4+One
r2= [r2]
r1= r1|r2
[P_IOB_Dir]=r1
BZeroDir:
[P_IOB_Dir]=r1
r1= [P_IOB_Attrib]
r2= r4+Bit
r2= [r2]
r1= r1&r2
r3 = [bp+3]
cmp r3,0
je BZeroAttrib
r2= r4+One
r2= [r2]
r1= r1|r2
[P_IOB_Attrib]=r1
BZeroAttrib:
[P_IOB_Attrib]=r1
r1= [P_IOB_Buffer]
r2= r4+Bit
r2= [r2]
r1= r1&r2
r3 = [bp+4]
cmp r3,0
je BZeroBuffer
r2= r4+One
r2= [r2]
r1= r1|r2
[P_IOB_Buffer]=r1
BZeroBuffer:
[P_IOB_Buffer]=r1
r1= [P_IOB_Buffer]
r2= r4+Bit
r2= [r2]
r1= r1&r2
r3 = [bp+4]
cmp r3,0
je BZeroData
r2= r4+One
r2= [r2]
r1= r1|r2
[P_IOB_Data]=r1
BZeroData:
[P_IOB_Data]=r1
pop bp from [sp]
retf;
.ENDP
.PUBLIC _Get_IOA_Bit
.PUBLIC Get_IOA_Bit
_Get_IOA_Bit:.PROC
Get_IOA_Bit:
push bp to [sp];
bp = sp + 3
r3 = [bp+2]
cmp r3,0
je AGetBufferBit
r4 = [bp+1]
r1= [P_IOA_Data]
r2= r4+Bit
r2= [r2]
r1= r1|r2
cmp r1,r2
je AReturnData0
r1=1
pop bp from [sp]
retf;
AReturnData0:
r1=0
pop bp from [sp]
retf;
AGetBufferBit:
r4 = [bp+1]
r1= [P_IOA_Buffer]
r2= r4+Bit
r2= [r2]
r1= r1|r2
cmp r1,r2
je AReturnBuffer0
r1=1
pop bp from [sp]
retf;
AReturnBuffer0:
r1=0
pop bp from [sp]
retf;
.ENDP
.PUBLIC _Get_IOB_Bit
.PUBLIC Get_IOB_Bit
_Get_IOB_Bit:.PROC
Get_IOB_Bit:
push bp to [sp];
bp = sp + 3
r3 = [bp+2]
cmp r3,0
je BGetBufferBit
r4 = [bp+1]
r1= [P_IOB_Data]
r2= r4+Bit
r2= [r2]
r1= r1|r2
cmp r1,r2
je BReturnData0
r1=1
pop bp from [sp]
retf;
BReturnData0:
r1=0
pop bp from [sp]
retf;
BGetBufferBit:
r4 = [bp+1]
r1= [P_IOB_Buffer]
r2= r4+Bit
r2= [r2]
r1= r1|r2
cmp r1,r2
je BReturnBuffer0
r1=1
pop bp from [sp]
retf;
BReturnBuffer0:
r1=0
pop bp from [sp]
retf;
.ENDP
.public _Set_IOA0_Dir0
.public Set_IOA0_Dir0
_Set_IOA0_Dir0: .PROC
Set_IOA0_Dir0:
push r1,r5 to [sp];
r1= [P_IOA_Dir]
r2= 0xfffe
r1= r1&r2
[P_IOA_Dir]=r1
pop r1,r5 from [sp]
retf;
.ENDP
.public _Set_IOA0_Dir1
.public Set_IOA0_Dir1
_Set_IOA0_Dir1: .PROC
Set_IOA0_Dir1:
push r1,r5 to [sp];
r1= [P_IOA_Dir]
r2= 0xfffe
r1= r1&r2
r2= 0x0001
r1=r1|r2
[P_IOA_Dir]=r1
pop r1,r5 from [sp]
retf;
.ENDP
.public _Set_IOA1_Dir0
.public Set_IOA1_Dir0
_Set_IOA1_Dir0: .PROC
Set_IOA1_Dir0:
push r1,r5 to [sp];
r1= [P_IOA_Dir]
r2= 0xfffd
r1= r1&r2
[P_IOA_Dir]=r1
pop r1,r5 from [sp]
retf;
.ENDP
.public _Set_IOA1_Dir1
.public Set_IOA1_Dir1
_Set_IOA1_Dir1: .PROC
Set_IOA1_Dir1:
push r1,r5 to [sp];
r1= [P_IOA_Dir]
r2= 0xfffd
r1= r1&r2
r2= 0x0002
r1=r1|r2
[P_IOA_Dir]=r1
pop r1,r5 from [sp]
retf;
.ENDP
.public _Set_IOA2_Dir0
.public Set_IOA2_Dir0
_Set_IOA2_Dir0: .PROC
Set_IOA2_Dir0:
push r1,r5 to [sp];
r1= [P_IOA_Dir]
r2= 0xfffb
r1= r1&r2
[P_IOA_Dir]=r1
pop r1,r5 from [sp]
retf;
.ENDP
.public _Set_IOA2_Dir1
.public Set_IOA2_Dir1
_Set_IOA2_Dir1: .PROC
Set_IOA2_Dir1:
push r1,r5 to [sp];
r1= [P_IOA_Dir]
r2= 0xfffb
r1= r1&r2
r2= 0x0004
r1=r1|r2
[P_IOA_Dir]=r1
pop r1,r5 from [sp]
retf;
.ENDP
.public _Set_IOA3_Dir0
.public Set_IOA3_Dir0
_Set_IOA3_Dir0: .PROC
Set_IOA3_Dir0:
push r1,r5 to [sp];
r1= [P_IOA_Dir]
r2= 0xfff7
r1= r1&r2
[P_IOA_Dir]=r1
pop r1,r5 from [sp]
retf;
.ENDP
.public _Set_IOA3_Dir1
.public Set_IOA3_Dir1
_Set_IOA3_Dir1: .PROC
Set_IOA3_Dir1:
push r1,r5 to [sp];
r1= [P_IOA_Dir]
r2= 0xfff7
r1= r1&r2
r2= 0x0008
r1=r1|r2
[P_IOA_Dir]=r1
pop r1,r5 from [sp]
retf;
.ENDP
.public _Set_IOA4_Dir0
.public Set_IOA4_Dir0
_Set_IOA4_Dir0: .PROC
Set_IOA4_Dir0:
push r1,r5 to [sp];
r1= [P_IOA_Dir]
r2= 0xffef
r1= r1&r2
[P_IOA_Dir]=r1
pop r1,r5 from [sp]
retf;
.ENDP
.public _Set_IOA4_Dir1
.public Set_IOA4_Dir1
_Set_IOA4_Dir1: .PROC
Set_IOA4_Dir1:
push r1,r5 to [sp];
r1= [P_IOA_Dir]
r2= 0xffef
r1= r1&r2
r2= 0x0010
r1=r1|r2
[P_IOA_Dir]=r1
pop r1,r5 from [sp]
retf;
.ENDP
.public _Set_IOA5_Dir0
.public Set_IOA5_Dir0
_Set_IOA5_Dir0: .PROC
Set_IOA5_Dir0:
push r1,r5 to [sp];
r1= [P_IOA_Dir]
r2= 0xffdf
r1= r1&r2
[P_IOA_Dir]=r1
pop r1,r5 from [sp]
retf;
.ENDP
.public _Set_IOA5_Dir1
.public Set_IOA5_Dir1
_Set_IOA5_Dir1: .PROC
Set_IOA5_Dir1:
push r1,r5 to [sp];
r1= [P_IOA_Dir]
r2= 0xffdf
r1= r1&r2
r2= 0x0020
r1=r1|r2
[P_IOA_Dir]=r1
pop r1,r5 from [sp]
retf;
.ENDP
.public _Set_IOA6_Dir0
.public Set_IOA6_Dir0
_Set_IOA6_Dir0: .PROC
Set_IOA6_Dir0:
push r1,r5 to [sp];
r1= [P_IOA_Dir]
r2= 0xffbf
r1= r1&r2
[P_IOA_Dir]=r1
pop r1,r5 from [sp]
retf;
.ENDP
.public _Set_IOA6_Dir1
.public Set_IOA6_Dir1
_Set_IOA6_Dir1: .PROC
Set_IOA6_Dir1:
push r1,r5 to [sp];
r1= [P_IOA_Dir]
r2= 0xffbf
r1= r1&r2
r2= 0x0040
r1=r1|r2
[P_IOA_Dir]=r1
pop r1,r5 from [sp]
retf;
.ENDP
.public _Set_IOA7_Dir0
.public Set_IOA7_Dir0
_Set_IOA7_Dir0: .PROC
Set_IOA7_Dir0:
push r1,r5 to [sp];
r1= [P_IOA_Dir]
r2= 0xff7f
r1= r1&r2
[P_IOA_Dir]=r1
pop r1,r5 from [sp]
retf;
.ENDP
.public _Set_IOA7_Dir1
.public Set_IOA7_Dir1
_Set_IOA7_Dir1: .PROC
Set_IOA7_Dir1:
push r1,r5 to [sp];
r1= [P_IOA_Dir]
r2= 0xff7f
r1= r1&r2
r2= 0x0080
r1=r1|r2
[P_IOA_Dir]=r1
pop r1,r5 from [sp]
retf;
.ENDP
.public _Set_IOA8_Dir0
.public Set_IOA8_Dir0
_Set_IOA8_Dir0: .PROC
Set_IOA8_Dir0:
push r1,r5 to [sp];
r1= [P_IOA_Dir]
r2= 0xfeff
r1= r1&r2
[P_IOA_Dir]=r1
pop r1,r5 from [sp]
retf;
.ENDP
.public _Set_IOA8_Dir1
.public Set_IOA8_Dir1
_Set_IOA8_Dir1: .PROC
Set_IOA8_Dir1:
push r1,r5 to [sp];
r1= [P_IOA_Dir]
r2= 0xfeff
r1= r1&r2
r2= 0x0100
r1=r1|r2
[P_IOA_Dir]=r1
pop r1,r5 from [sp]
retf;
.ENDP
.public _Set_IOA9_Dir0
.public Set_IOA9_Dir0
_Set_IOA9_Dir0: .PROC
Set_IOA9_Dir0:
push r1,r5 to [sp];
r1= [P_IOA_Dir]
r2= 0xfdff
r1= r1&r2
[P_IOA_Dir]=r1
pop r1,r5 from [sp]
retf;
.ENDP
.public _Set_IOA9_Dir1
.public Set_IOA9_Dir1
_Set_IOA9_Dir1: .PROC
Set_IOA9_Dir1:
push r1,r5 to [sp];
r1= [P_IOA_Dir]
r2= 0xfdff
r1= r1&r2
r2= 0x0200
r1=r1|r2
[P_IOA_Dir]=r1
pop r1,r5 from [sp]
retf;
.ENDP
.public _Set_IOA10_Dir0
.public Set_IOA10_Dir0
_Set_IOA10_Dir0: .PROC
Set_IOA10_Dir0:
push r1,r5 to [sp];
r1= [P_IOA_Dir]
r2= 0xfbff
r1= r1&r2
[P_IOA_Dir]=r1
pop r1,r5 from [sp]
retf;
.ENDP
.public _Set_IOA10_Dir1
.public Set_IOA10_Dir1
_Set_IOA10_Dir1: .PROC
Set_IOA10_Dir1:
push r1,r5 to [sp];
r1= [P_IOA_Dir]
r2= 0xfbff
r1= r1&r2
r2= 0x0400
r1=r1|r2
[P_IOA_Dir]=r1
pop r1,r5 from [sp]
retf;
.ENDP
.public _Set_IOA11_Dir0
.public Set_IOA11_Dir0
_Set_IOA11_Dir0: .PROC
Set_IOA11_Dir0:
push r1,r5 to [sp];
r1= [P_IOA_Dir]
r2= 0xf7ff
r1= r1&r2
[P_IOA_Dir]=r1
pop r1,r5 from [sp]
retf;
.ENDP
.public _Set_IOA11_Dir1
.public Set_IOA11_Dir1
_Set_IOA11_Dir1: .PROC
Set_IOA11_Dir1:
push r1,r5 to [sp];
r1= [P_IOA_Dir]
r2= 0xf7ff
r1= r1&r2
r2= 0x0800
r1=r1|r2
[P_IOA_Dir]=r1
pop r1,r5 from [sp]
retf;
.ENDP
.public _Set_IOA12_Dir0
.public Set_IOA12_Dir0
_Set_IOA12_Dir0: .PROC
Set_IOA12_Dir0:
push r1,r5 to [sp];
r1= [P_IOA_Dir]
r2= 0xefff
r1= r1&r2
[P_IOA_Dir]=r1
pop r1,r5 from [sp]
retf;
.ENDP
.public _Set_IOA12_Dir1
.public Set_IOA12_Dir1
_Set_IOA12_Dir1: .PROC
Set_IOA12_Dir1:
push r1,r5 to [sp];
r1= [P_IOA_Dir]
r2= 0xefff
r1= r1&r2
r2= 0x1000
r1=r1|r2
[P_IOA_Dir]=r1
pop r1,r5 from [sp]
retf;
.ENDP
.public _Set_IOA13_Dir0
.public Set_IOA13_Dir0
_Set_IOA13_Dir0: .PROC
Set_IOA13_Dir0:
push r1,r5 to [sp];
r1= [P_IOA_Dir]
r2= 0xdfff
r1= r1&r2
[P_IOA_Dir]=r1
pop r1,r5 from [sp]
retf;
.ENDP
.public _Set_IOA13_Dir1
.public Set_IOA13_Dir1
_Set_IOA13_Dir1: .PROC
Set_IOA13_Dir1:
push r1,r5 to [sp];
r1= [P_IOA_Dir]
r2= 0xdfff
r1= r1&r2
r2= 0x2000
r1=r1|r2
[P_IOA_Dir]=r1
pop r1,r5 from [sp]
retf;
.ENDP
.public _Set_IOA14_Dir0
.public Set_IOA14_Dir0
_Set_IOA14_Dir0: .PROC
Set_IOA14_Dir0:
push r1,r5 to [sp];
r1= [P_IOA_Dir]
r2= 0xbfff
r1= r1&r2
[P_IOA_Dir]=r1
pop r1,r5 from [sp]
retf;
.ENDP
.public _Set_IOA14_Dir1
.public Set_IOA14_Dir1
_Set_IOA14_Dir1: .PROC
Set_IOA14_Dir1:
push r1,r5 to [sp];
r1= [P_IOA_Dir]
r2= 0xbfff
r1= r1&r2
r2= 0x4000
r1=r1|r2
[P_IOA_Dir]=r1
pop r1,r5 from [sp]
retf;
.ENDP
.public _Set_IOA15_Dir0
.public Set_IOA15_Dir0
_Set_IOA15_Dir0: .PROC
Set_IOA15_Dir0:
push r1,r5 to [sp];
r1= [P_IOA_Dir]
r2= 0x7fff
r1= r1&r2
[P_IOA_Dir]=r1
pop r1,r5 from [sp]
retf;
.ENDP
.public _Set_IOA15_Dir1
.public Set_IOA15_Dir1
_Set_IOA15_Dir1: .PROC
Set_IOA15_Dir1:
push r1,r5 to [sp];
r1= [P_IOA_Dir]
r2= 0x7fff
r1= r1&r2
r2= 0x8000
r1=r1|r2
[P_IOA_Dir]=r1
pop r1,r5 from [sp]
retf;
.ENDP
.public _Set_IOA0_Attrib0
.public Set_IOA0_Attrib0
_Set_IOA0_Attrib0: .PROC
Set_IOA0_Attrib0:
push r1,r5 to [sp];
r1= [P_IOA_Attrib]
r2= 0xfffe
r1= r1&r2
[P_IOA_Attrib]=r1
pop r1,r5 from [sp]
retf;
.ENDP
.public _Set_IOA0_Attrib1
.public Set_IOA0_Attrib1
_Set_IOA0_Attrib1: .PROC
Set_IOA0_Attrib1:
push r1,r5 to [sp];
r1= [P_IOA_Attrib]
r2= 0xfffe
r1= r1&r2
r2= 0x0001
r1=r1|r2
[P_IOA_Attrib]=r1
pop r1,r5 from [sp]
retf;
.ENDP
.public _Set_IOA1_Attrib0
.public Set_IOA1_Attrib0
_Set_IOA1_Attrib0: .PROC
Set_IOA1_Attrib0:
push r1,r5 to [sp];
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -