4.B、BL、BX指令的区别有哪些? 答:
(1)B——跳转指令;BL——带返回的连接跳转指令;BX——带状态切换的跳转指令
(2)B 指令是最简单的跳转指令。
一旦遇到一个 B 指令,ARM 处理器将立即跳转到给定的目标地址,从那里继续执行;BL 是另一个跳转指令,但跳转之前,会在寄存器R14 中保存PC 的当前内容,因此,可以通过将R14 的内容重新加载到PC 中,来返回到跳转指令之后的那个指令处执行。该指令是实现子程序调用的一个基本但常用的手段;BX使程序跳转到指令中指定的参数Rm指定的地址执行程序,Rm的第0位复制到CPSR中T位,bit[31:1]移入PC。若Rm 的 bit[0] 为 1, 则跳转时自动将 CPSR 中的标志T置位,即把目标地址的代码解释为 Thumb 代码;若 Rm 的bit[0]为0,则跳转时自动将 CPRS 中的标志 T 复位,即把目标地址的代码解释为 ARM 代码。
7、写一个程序,如果R0的值大于0x50,则将R1的值减去0x10,并把结果送给R0。 解:
CMP R0,#0x50 BLGT CHYY CHYY SUB R0,R1,#0x10
8、 编写一段ARM汇编程序,实现数据块复制,将R0指向的8个字的连续数据保存到R1指向的一段连续的内存单元中。 解: MOV SI ,R0 MOV DI,RI MOV CX,8 LOP: MOV AL,[SI] MOV [DI],AL ADD SI,2 ; ADD DI,2 LOOP LOP
相关推荐: