下载此文档

arm指令系统.ppt


文档分类:IT计算机 | 页数:约40页 举报非法文档有奖
1/40
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/40 下载此文档
文档列表 文档介绍
ARM指令系统
陈虎博士
Tommychen74@
31984767
内容简介
数据操作指令
比较指令
转移指令
存储器访问指令
参考文献:
【1】ARM Corp. , ARM 7 TDMI Data Sheet, 1995
【2】杜春雷,ARM体系结构与编程,清华大学出版社,2003年
数据操作指令
<opcode>{<cond>}{S} <Rd>,<Rn>,<shift_operand>
opcode:指令操作码
cond:指令执行条件
S:是否影响CPSR寄存器
Rd:目的寄存器号
Rn:第一源寄存器号
Shift_operand:第二操作数
ADDEQ R0, R1, R2
;当Z=1时执行R1+R2->R0
数据指令操作码
MOV, MVN(仅一个源操作数)
ADD, ADC : 加法(是否带进位)
SUB, SBC : 减法(是否带进位)
RSB, RSC : 反向减法(是否带进位)
MUL, MLA : 乘法(是否带累加)
AND, ORR, EOR
BIC : 位清除
LSL, LSR : 逻辑左移/右移
ASL, ASR : 算术左移/右移
ROR : 循环右移
RRX : 带进位C的循环右移
第二操作数
Shift_operand:=#<imm>
|<Rm>
|<Rm>, <shf> #<shf_imm>
|<Rm>, <shf> # <Rs>
Shf:=LSL | LSR | ASR | ROR
Add R0, R1, R1, LSL #3
;R0=R1+R1<<3
SUB R1, R6, R6, LSR R4
;R1=R6-R6>>R4
指令举例
将R2的高8位数据传送到R3的低8位中:
MOV R0, R2, LSR #24
ORR R3, R0, R3, LSL #8
R2
0
0
0
右移24位
R0
R3
0
R3
左移8位
OR
R3
指令举例
64位加法。R1:R0,R3:R2中分别存放两个64位数据,求两者之和
ADDS R0, R0, R2
;低32位数据相加,设置进位C
ADC R1, R1, R3
;高32位数据带进位相加,R1:R0为结果
指令举例
R0
C
D
A
B
EOR R1, R0, R0, ROR #16
BIC R1, R1, #0xFF0000
MOV R0, R0, ROR #8
EOR R0, R0, R1, LSR #8
R1
C^A
D^B
A^C
B^D
R1
C^A
D^B
A^C
0
R0
B
C
D
A
R0
B
A
D
C
将R0中的数据进行Little Endian和Big Endian
互相转换
比较指令
CMP : 两个源操作数相减;
CMN : 两个源操作数相加;
TST : 按位与;
TEQ : 按位异或
仅仅影响NZCV标志。
条件执行

arm指令系统 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数40
  • 收藏数0 收藏
  • 顶次数0
  • 上传人zhufutaobao
  • 文件大小635 KB
  • 时间2018-07-06