+ -
当前位置:首页 → 问答吧 → 求助ARM指令问题,不胜感激

求助ARM指令问题,不胜感激

时间:2008-11-16

来源:互联网

我刚开始学ARM汇编,在ADS上试指令来理解,像BLX
1 AREA ||.TEST||,CODE,READONLY
ENTRY
start
mov r0,#6
BLX t16
t16
    mov r1,r0
    END
出现在BLX处instruction not supported on targeted cpu错误,为什么
2 AREA ||.TEST||,CODE,READONLY
ENTRY
start
mov r0,#8
bx r0
t16
NEG R1,R0
mov r0,#1
end
说NEG R1,R0不知道是什么代码,可是BX跳到的地方可以用THUMB呀
3
LDR R1,<add>
如果add不是字对齐的,从内存中取的数据要循环右移,是什么意思,能举个例子吗
4 在网上看了相关知识有些疑问
使用SWI指令时,通常使用以下两种方法进行传递参数,SWI 异常中断处理程序就可以提供相关的服务,这两种方法均是用户软件协定.SWI异常中断处理程序要通过读取引起软中断的SWI指令,以取得24位立即数.
(1) 指令中的24位立即数指定了用户请求的服务类型,参数通过通用寄存器传递.
 mov r0,#34 ;设置子功能号位34
SWI 12 ;调用12号软中断
(2) 指令中的24位立即数被忽略,用户请求的服务类型有寄存器RO的值决定,参数通过其他的通用寄存器传递.
 mov r0,#12 ;调用12号软中断
 mov r1,#34 ;设置子功能号位34
 SWI  0
问题1:ARM 软中断号和子功能号是什么,哪能查功能表
2:SWI怎么知道用哪种方式传递参数,它的中断服务程序在哪执行(是跳到0x00000008 小端,oxffff0008 大端吗)
      

作者: ops2008   发布时间: 2008-11-16

BLX或许是个伪指令而已      

作者: AIKO_sex   发布时间: 2008-11-17