这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » ADR,R0,THUMB,CODE ADR R0,THUMB_CODE+1 一句

共2条 1/1 1 跳转至

ADR,R0,THUMB,CODE ADR R0,THUMB_CODE+1 一句中为什么要加一

院士
2006-09-17 18:14:16     打赏
ADR,R0,THUMB,CODE ADR R0,THUMB_CODE+1 一句中为什么要加一



关键词: THUMB     CODE+1     一句     为什么    

院士
2006-12-22 22:43:00     打赏
2楼
问 ; 文件名:TEST8.S
; 功能:使用BX指令切换处理器状态
; 说明:使用ARMulate软件仿真调试
            AREA    Example8,CODE,READONLY    
            ENTRY            
            CODE32    
ARM_CODE    ADR        R0,THUMB_CODE+1
            BX        R0                    ; 跳转并切换处理器状态

            CODE16
THUMB_CODE
            MOV        R0,#10                ; R0 = 10
            MOV        R1,#20                ; R1 = 20
            ADD        R0,R1                ; R0 = R0+R1
            B        .
            END
1: re:这是内核所要求的。
地址THUMB_CODE+1,还是指向MOV        R0,#10  2: 指令的解释ARM_CODE    ADR        R0,THUMB_CODE+1
            BX        R0                    ; 跳转并切换处理器状态
bx指令想要切换到thumb状态,必须使r0[0]==1,所以要加1
可以参考ARM architecture reference的相关解释

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]