📄 asm.s
字号:
;汇编指令实验
;定义端口B寄存器预定义
rPCONB EQU 0x56000010
rPDATB EQU 0x56000014
rPUPB EQU 0x56000018 ;禁止PORT B上拉
AREA Init,CODE,READONLY ;该伪指令定义了一个代码段,段名为Init,属性只读
ENTRY ;程序的入口点标识
ResetEntry
;下面这三条语句,主要是用来设置I/O口GPB7为输出属性
ldr r0,=rPCONB ;将寄存器rPCONBE的地址存放到寄存器r0中
ldr r1,=0x154000
str r1,[r0] ;将r1中的数据存放到寄存器rPCONB中
;下面这三条语句,主要是禁止GPB端口的上拉电阻
ldr r0,=rPUPB
ldr r1,=0xffff
str r1,[r0]
ldr r2,=rPDATB ;将数据端口E的数据寄存器的地址附给寄存器r2
ledloop
mov r4, #0x2
ldr r1,=0x700
str r1,[r2] ;使GPE7输出高电平,D9灯会灭
bl delay ;调用延迟子程序
ldr r1,=0x680
str r1,[r2]
bl delay
ldr r1,=0x580
str r1,[r2]
bl delay
ldr r1,=0x380
str r1,[r2]
bl delay
;b ledloop
b ledloop ;不断的循环,D9将不停的闪烁
;下面是延迟子程序
delay
ldr r3,=0xffffff ;设置延迟的时间
delay1
sub r3,r3,#1 ;r3=r3-1
cmp r3,#0x0 ;将r3的值与0相比较
bne delay1 ;比较的结果不为0(r3不为0),继续调用delay1,否则执行下一条语句
mov pc,lr ;返回
END ;程序结束符
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -