Chinaunix首页 | 论坛 | 博客
  • 博客访问: 162436
  • 博文数量: 41
  • 博客积分: 647
  • 博客等级: 上士
  • 技术积分: 366
  • 用 户 组: 普通用户
  • 注册时间: 2011-08-29 14:13
文章分类

全部博文(41)

文章存档

2013年(11)

2012年(1)

2011年(29)

分类: LINUX

2011-11-21 15:42:15

 字(Word):在ARM体系结构中,字的长度为32位,而在8/16位处理器体系结构中,字的长度一般为16位,请读者在阅读时注意区分。

半字(Half-Word):在ARM体系结构中,半字的长度为16位,与8/16位处理器体系结构中字的长度一致。

字节(Byte):在ARM体系结构和8/16位处理器体系结构中,字节的长度均为8位。

 

从编程的角度看,ARM微处理器的工作状态一般有两种,并可在两种状态之间切换:

第一种为ARM状态,此时处理器执行32位的字对齐的ARM指令;

第二种为Thumb状态,此时处理器执行16位的、半字对齐的Thumb指令。

 

ARM指令集和Thumb指令集均有切换处理器状态的指令,并可在两种工作状态之间切换,但ARM微处理器在开始执行代码时,应该处于ARM状态。

进入Thumb状态:当操作数寄存器的状态位(位0)为1时,可以采用执行BX指令的方法,使微处理器从ARM状态切换到Thumb状态。此外,当处理器处于Thumb状态时发生异常(如IRQFIQUndefAbortSWI等),则异常处理返回时,自动切换到Thumb状态。

进入ARM状态:当操作数寄存器的状态位为0时,执行BX指令时可以使微处理器从Thumb状态切换到ARM状态。此外,在处理器进行异常处理时,把PC指针放入异常模式链接寄存器中,并从异常向量地址开始执行程序,也可以使处理器切换到ARM状态。

 

  

 

 

 

 

 

阅读(1631) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~