ARM伪指令

一。ARM机器码
反汇编工具:arm-linux-objdump -D -S start.elf
查看手册ARM Architechture Reference Manual的指令集那一章The Arm Instruction Set
ARM机器码是一个32位的整数,8个段
1.condition段:条件,4位
2.保留位:2位,00
3.shift operand:是立即数还是寄存器
4.opcode:1101
5.S位:1位,0,是否影响CPSR寄存器
6.Rn:4位,0000
7.Rd:4位,0000,标明通用寄存器的编号
8.shift operand:

以MOV这个指令为例:

二。定义类伪指令
1.伪指令的定义
伪指令本身并没有对应的机器码。只在编译的时候起作用,或者转化为其他的实际指令来运行。
2.伪指令

.data
hello:
.ascii “hello world”
bh:
.byte 0x1
ADD:
.word 0xff
.text
.global _start
_start:

.equ:定义一个宏
.align:字节对齐

三。操作类伪指令
1.nop:空操作
2.ldr
可以是通用指令也可以是伪指令,通用指令立即数前面#,伪指令立即数前面=
ldr r0, =0x1ff

四。协处理器访问指令
1.什么是协处理器
减轻核的负担,执行特定处理任务
ARM支持16个协处理器,其中重要的是CP15
2.CP15的作用?
系统控制协处理器,提供额外寄存器,达到控制MMU,保护系统,时钟模式
3.如何访问CP15
通过16组寄存器
指令:mcr和 mrc
mcr:通用寄存器的值移动到协处理器里面
mrc:协处理器的值移动到通用寄存器里面

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值