正在加载
请稍等

菜单

红楼飞雪 梦

15526773247

文章

Home android 嵌入式开发 arm汇编 ThumbEE 指令
Home android 嵌入式开发 arm汇编 ThumbEE 指令

arm汇编 ThumbEE 指令

android 嵌入式开发 by

仅当通过使用 –thumbx 命令行选项或 THUMBX 指令将汇编器切换为  ThumbEE  状态 后,才可使用除 ENTERX 和 LEAVEX 外的其他  ThumbEE  指令。

一、 ENTERX  和  LEAVEX

在  Thumb  状态和  ThumbEE  状态间切换。

语法

ENTERX
LEAVEX

 

用法

ENTERX 可将  Thumb  状态更改为  ThumbEE  状态,但对  ThumbEE  状态则不起作 用。

LEAVEX 可将  ThumbEE  状态更改为  Thumb  状态,但对  Thumb  状态则不起作用。

请不要在  IT  块中使用 ENTERX 或 LEAVEX 。

体系结构

ARM  指令集中没有这些指令。

这些  32  位  Thumb  和  Thumb 2EE  指令可在  Thumb 2EE  的支持下用于  ARMv7  中。

这些指令没有  16  位  Thumb 2  版本

二、CHKA

CHKA (检查数组)可比较两个寄存器中的无符号值。

如果第一个寄存器中的值小于或等于第二个寄存器中的值,则会将  pc  复制到 lr ,并跳转到  IndexCheck  处理程序。

语法

CHKA  Rn ,  Rm

 

其中:

 Rn  存放数组的大小值。 不要使用  r15 。
 Rm  存放数组索引。 不要使用  r13  或  r15 。

体系结构

此指令在  ARM  状态下不可用。

此  16  位  ThumbEE  指令需要  Thumb 2EE  的支持。

且仅可用于  ARMv7  中。

三、 HB 、 HBL 、 HBLP  和  HBP

处理程序跳转,跳转到指定处理程序。

此指令可将返回地址存储到  lr ,也可将参数传递到处理程序,也可同时执行这 两个操作,您可以选择特定的操作。

语法

HB{L} # HandlerID 
HB{L}P # immed , # HandlerID

 

其中:

 L  是一个可选的后缀。 如果选择 L ,则指令会将返回地址保存到  lr  中。
P
 是一个可选的后缀。 如果存在 P ,则指令会将 immed 的值传递给  r8  中的处理程序。
immed  是一个立即数。 如果存在 L ,则 immed 必须在范围  0-31  内,否则 immed 必须在范围  0-7  内。
 HandlerID  是要调用的处理程序的索引编号。 如果存在 P ,则 HandlerID 必须在 0-31  范围内,否则 HandlerID 必须在  0-255  范围内。

体系结构

这些指令在  ARM  状态下无效。

这些  16  位  ThumbEE  指令需要  Thumb-2EE  的支持,且仅可用于  ThumbEE  状态 下的  ARMv7 。

 

 

29 2015-08

 

我要 分享

 

 

本文 作者

 

相关 文章