常用ARMv4指令集与汇编.doc


文档分类:资格/认证考试 | 页数:约101页 举报非法文档有奖
1/101
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/101
文档列表 文档介绍
.
I / 101
常用ARM v4指令集及汇编
.
前言
零零散散用了大概一周的时间,在《常用ARM指令集及汇编》〔20XX12月1日的基础上,大致学****了一遍ARM指令集和汇编,看的过程当中更正了一些错误的地方,并结合其令124
预定义的寄存器和协处理器名124
通用寄存器124
程序状态寄存器124
浮点数寄存器124
协处理器及协处理器寄存器125
八、内置变量列表125
九、伪指令列表126
十、指令条件码列表128
十一、CPSR和SPSR分配图129
VI / 101
.
ARM v4指令集及汇编
ARM 处理器是基于精简指令集计算机〔RISC原理设计的,指令集和相关译码机制较为简单,具有 32 位 ARM 指令集和 16 位 Thumb 指令集。ARM 指令集效率高,但是代码密度低,而 Thumb 指令集具有更好的代码密度,却仍然保持 ARM 的大多数性能上的优势,它是 ARM 指令集的子集,主要用于编译器设计。所有 ARM 指令都是可以有条件执行的,而 Thumb 指令仅有一条指令具备条件执行功能。ARM 程序和 Thumb 程序可相互调用,相互之间的状态切换开销几乎为零。
一、ARM处理器寻址方式
寻址方式是根据指令中给出的地址码字段来实现寻找真实操作数地址的方式,ARM 处理器有 9 种基本寻址方式。
寄存器寻址
操作数的值在寄存器中,指令中的地址码字段指出的是寄存器编号,指令执行时直接取出寄存器值操作。
寄存器寻址指令举例如下:
MOV R1,R2 ;R2 -> R1
SUB R0,R1,R2 ;R1 - R2->R0
立即寻址
立即寻址指令中的操作码字段后面的地址码部分就是操作数本身,也就是说,数据就包含在指令当中,取出指令也就取出了可以立即使用的操作数〔立即数。
立即寻址指令举例如下:
SUBS R0,R0,#1 ;R0–1 ->R0
MOV R0,#0xff00 ;0xff00 ->R0
立即数要以"#"为前缀,表示 16 进制数值时以"0x"表示。
1 / 101
.
寄存器偏移寻址
寄存器偏移寻址是 ARM 指令集特有的寻址方式,当第 2 操作数是寄存器偏移方式时,第2个寄存器操作数在与第1个操作数结合之前,选择进行移位操作。
寄存器偏移寻址方式指令举例如下:
MOV R0,R2,LSL #3 ;R2 的值左移 3 位,结果放入 R0,即 R0 = R2 * 8
ANDS R1,R1,R2,LSL R3 ;R2 的值左移 R3 位,然后和 R1 相与操作,结果放入 R1
可采用的移位操作如下:
LSL:逻辑左移〔Logical Shift Left,寄存器中字的低端空出的位补 0。
LSR:逻辑右移〔Logical Shift Right,寄存器中字的高端空出的位补 0。
ASR:算术右移〔Arithmetic Shift Right,移位过程中保持符号位不变,即如果源操作数为正数,则字的高端空出的位补 0,否则补 1。
ROR:循环右移〔Rotate Right,由字的低端移出的位填入字的高端空出的位。
RRX:带扩展的循环右移〔Rotate Right extended by 1place,操作数右移一位,高端空出的位用原 C 标志值填充。
各移位操作如下图所示:
寄存器间接寻址
寄存器间接寻址指令中的地址码给出的是一个通用寄存器编号,所需要的操作数保存在寄存器指定地址的存储单元中,即寄存器为操作数的地址指针。
寄存器间接寻址指令举例如下:
LDR R1,[R2] ;将 R2 中的数值作为地址,取出此地址中的数据保存在 R1 中
SWP R1,R1,[R2];将如中的数值作为地址,取出此地址中的数值与 R1 中的值交换
基址寻址
基址寻址是将基址寄存器的内容与指令中给出的偏移量相加,形成操作数的有效地址,基址寻址用于访问基址附近的存储单元,常用于查表,数组操作,功能部件寄存器访问等。
基址寻址指令举例如下:
LDR R2,[R3,#0x0F] ;将R3中的数值加0x0F作为地址,将该地址保存在R2中
STR R1,[R0,#-2] ;将R0中的数值减2作为地址,把R1中的内容保存到此地址
2 / 101
.
多寄存器寻址
多寄存器寻址就是一次可以传送几个寄存器值,允许一条指令传送 16 个寄存器的任何子集或所有寄存器。
多寄存器寻址指令举例如下:
LDMIA R1!,{R2-R7,R12} ;将[ R1] 单元中的数据读出到 R2-R7,R12,R1自动加 1
STMIA R0!,{R3-R6,R10} ;将R3-R

常用ARMv4指令集与汇编 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数101
  • 收藏数0 收藏
  • 顶次数0
  • 上传人hnet653
  • 文件大小784 KB
  • 时间2022-02-25