📄 led_asm.s
字号:
GPFCON EQU 0x56000050
GPFDAT EQU 0x56000054
GPFUP EQU 0x56000058
EXPORT LEDTEST
AREA testasm,CODE,READONLY
CODE32
LEDTEST
;设置GPF4-GPF7为output
ldr r0,=GPFCON
ldr r1,[r0]
bic r1,r1,#0xff00
orr r1,r1,#0x5500
str r1,[r0]
;禁止GPF4-GPF7端口的上拉电阻
ldr r0,=GPFUP
ldr r1,[r0]
orr r1,r1,#0xf0
str r1,[r0]
;将数据端口F的数据寄存器的地址附给寄存器r2
ldr r2,=GPFDAT
ledon
ldr r3,[r2]
bic r3,r3,#0x80
str r3,[r2] ;GPF7 output 0,灯亮
ldr r0,=0x1fffff
adr r4,delay1+1
bx r4 ;调用延迟子程序
ledoff
ldr r3,[r2]
orr r3,r3,#0x80
str r3,[r2] ;GPF7 output 1
ldr r0,=0x1fffff
adr r4,delay2+1
bx r4 ;调用延迟子程序
AREA testasm,CODE,READONLY
CODE16
delay1
sub r0,r0,#1 ;r0=r0-1
cmp r0,#0x0 ;将r0的值与0相比较
bne delay1 ;比较的结果不为0(r0不为0),继续调用delay1,否则执行下一条语句
ldr r1,=ledoff ;返回
bx r1
delay2
sub r0,r0,#1 ;r0=r0-1
cmp r0,#0x0 ;将r0的值与0相比较
bne delay2 ;比较的结果不为0(r0不为0),继续调用delay2,否则执行下一条语句
ldr r1,=ledon ;返回
bx r1
END ;程序结束符
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -