ARM9蜂鸣器汇编实验

参照飞凌FL2440的官方汇编程序,按自己的习惯写了一下。程序如下:


AREA SAMPLE,CODE,READONLY;声明代码段
 
 ENTRY  ;入口
 
 LDR  R1,=0x56000018  ;GPBUP  B口上拉禁止
 LDR  R2,=0xFFF
 STR  R2,[R1]
 
 LDR  R1,=0x56000010  ;GPBCON B0口输出
 LDR  R2,=0xFFFFD     ;不要写错位
 STR  R2,[R1]
 
 LDR  R1,=0x56000014  ;GPBDAT B0输出低
 LDR  R2,=0xFFE
 STR  R2,[R1]
 
;B端口初始化完毕
 
 LDR  R1,=0x56000058   ;GPFUP   F口上拉禁止
 MOV  R2,#0xFF    ;MOV是单字节指令
 STR  R2,[R1]
 
 LDR  R1,=0x56000050   ;GPFCON  F0,2,3,4口为输入
 LDR  R2,=0xFC0C
 STR  R2,[R1]
 
 ;LDR  R1,=0x56000054   ;GPFDA   F0,2,3,4 置0
 ;LDR  R2,=0xE2    ;when set input,this operation can not work
 ;STR  R2,[R1]
 
;F端口初始化完毕

 
 
START  //标号要顶格写
  
 LDR  R1,=0x56000014    ;R1->GPBDAT  ->代表指向,R1存放地址值,不是指向地址的内容
 LDR  R2,=0x56000054    ;R2->GPFDAT
;设定寄存器指向      ;can not set the place out of START,if not ,can not link to processor

 LDR  R3,[R1]     ;取出地址中的值
 LDR  R4,[R2]     ;取出地址中的值
 ORR  R4,R4,#0xE2    ;must have ,other then,it will buzzer all the time,清空与按键相关的位
      
 CMP  R4,#0xFF
 BEQ  BuzzerDown
 B    BuzzerUp
 
BuzzerUp
 
 LDR  R3,=0xFFF
 STR  R3,[R1]
 B    START
 
BuzzerDown

 LDR  R3,=0xFFE
 STR  R3,[R1] 
 B    START
 
 END

自己还在百度中收集了一些条件转移指令

条件转移指令所依据的转移条件主要有:全零(Z)、正负号(N)、进位(C)、溢出(V)及它们的组合等。主要条件转移指令有:


BEQ 等于零转移


BNEQ 不等于零转移


BLS 小于转移


BGT 大于转移


BLEQ 小于等于转移,或不大于转移


BGEQ 大于等于转移,或不小于转移


BLSU 不带符号小于转移


BGTU 不带符号大于转移


BLEQU 不带符号小于等于转移,或不带符号不大于转移


BGEQU 不带符号大于等于转移,或不带符号不小于转移


BCC 没有进位转移


BCS 有进位转移


BVC 没有溢出转移


BVS 有溢出转移

还发现一个问题,工程目录名太长,codewarrior有时候不能打开工程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值