历史上的今天
今天是:2025年02月16日(星期日)
2018年02月16日 | ARM伪指令地址读取:ADR ADRL LDR
2018-02-16 来源:eefocus
1、ADR伪指令--- 小范围的地址读取
ADR伪指令将基于PC相对偏移的地址值或基于寄存器相对偏移的地址值读取到寄存器中。在汇编编译器编译源程序时,ADR伪指令被编译器替换成一条合适的指令。通常,编译器用一条ADD指令或SUB指令来实现该ADR伪指令的功能,若不能用一条指令实现,则产生错误,编译失败。
ADR伪指令格式 :ADR{cond} register, exp
地址表达式expr的取值范围:
当地址值是字节对齐时,其取指范围为: +255 ~ 255B;
当地址值是字对齐时,其取指范围为: -1020 ~ 1020B;
2、ADRL伪指令----中等范围的地址读取
ADRL伪指令将基于PC相对偏移的地址值或基于寄存器相对偏移的地址值读取到寄存器中,比ADR伪指令可以读取更大范围的地址。在汇编编译器编译源程序时,ADRL伪指令被编译器替换成两条合适的指令。若不能用两条指令实现,则产生错误,编译失败。
ADRL伪指令格式:ADRL{cond} register, expr
地址表达式expr的取值范围:
当地址值是字节对齐时,其取指范围为: -64K~64K;
当地址值是字对齐时,其取指范围为: -256K~256K;
3、LDR伪指令-----大范围的地址读取
LDR伪指令用于加载32位的立即数或一个地址值到指定寄存器。在汇编编译源程序时,LDR伪指令被编译器替换成一条合适的指令。若加载的常数未超出MOV或MVN的范围,则使用MOV或MVN指令代替该LDR伪指令,否则汇编器将常量放入文字池,并使用一条程序相对偏移的LDR指令从文字池读出常量。
史海拾趣
|
使用altera cycloneIII, 外接20M晶振,接内部一个1:1的PLL(PLL输入20M, 输出也是20M), 在许多引脚上都感应出40M的脉冲波形,是什么原因啊? … 查看全部问答> |
|
我用的是2450,要在某些时刻屏蔽外部中断0,5~13一共10个外部中断中的部分中断。 我想可能有两种方法吧(不知道是不是): 1.对中断寄存器操作; 2.调用API 对于第一种方法,我参考了一下三星的使用手册,知道关键是操作INTMASK寄存 ...… 查看全部问答> |
|
各位高手,在shell中用spy可以查看各个任务以及总的cpu利用率,并用一个表列出结果,现在我只想取出空闲率这个数据,请问该怎样实现呢?… 查看全部问答> |
|
#include #define uchar unsigned char #define uint unsigned long int #define RS RB4 #define E RE2 #define UPKEY RB1 #define DOWNKEY RB2 #define CLRKEY RB5 uchar table[]=\" 000:000:000 ...… 查看全部问答> |
|
由于项目需要监测一些模拟量所以要用到ADC,这两天试了试LM3S8962的ADC功能,有一些收获,不敢独享和拿出来和大家分享。 ADC用于将连续变化的模拟电压转换成 ...… 查看全部问答> |
|
有没有兄弟遇到过相同的问题啊,jtag电路是和开发板上的一样,加了27欧电阻,TMS加了上拉电阻,其他信号线没上拉,h-jtag可以识别开发板的内核ID,但是无法识别自己做的板子的。后来在其他信号线上也加了上拉,还是无法识别。外部16M晶振起振,引脚 ...… 查看全部问答> |
|
如题,9B96的EPI模块能用于访问并行接口的AD吗? EPI模块为什么要强调地址总线,还有EPI时钟,这些好像不是为AD这样的东西准备的吧,那是不是说EPI模块就不能用于访问并行接口的AD呢? 完全不懂,请大家不要见笑,多多指教我哦……… 查看全部问答> |
|
2600-PCT-x/4200-PCT-x参数曲线跟踪仪配置(三) 1. 用于提取参数的测试方法。仅列出典型MOSFET,其他器件使用的方法类似。 2. 2657A型高功率系统数字源表仪器。 3. 2636A型数字源表或4210型源测量单元(SMU)仪器。 4. 2651A型高功率系统数字源表仪器或者可选择双2651A型 ...… 查看全部问答> |




