📄 setiobit.asm
字号:
.INCLUDE hardware.inc
.DATA
Bit: .DW 0xfffe,0xfffd,0xfffb,0xfff7,0xffef,0xffdf,0xffbf,0xff7f
.DW 0xfeff,0xfdff,0xfbff,0xf7ff,0xefff,0xdfff,0xbfff,0x7fff;
One: .DW 0x0001,0x0002,0x0004,0x0008,0x0010,0x0020,0x0040,0x0080
.DW 0x0100,0x0200,0x0400,0x0800,0x1000,0x2000,0x4000,0x8000;
.CODE
.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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -