ARM汇编指令集——数据处理指令(如何从底层直接操纵CPU)

本文深入探讨ARM处理器的数据处理指令,包括数据搬移、算术运算、逻辑运算、移位运算和比较测试等。通过实例解析了如mov、mvn、add、sub、mul、and、orr、cmp等指令的底层运作机制,同时阐述了CPSR寄存器在运算过程中的作用,如标志位N、Z、C和V的更新。
摘要由CSDN通过智能技术生成

【预备知识】
ARM处理器的工作模式:
在这里插入图片描述

Cortex-A寄存器组织概要:
在这里插入图片描述

指令:
编译完成后作为一条指令存放在内存单元中,在CPU执行时完成一定的操作。

(1) 数据搬移指令:mov、mvn
在这里插入图片描述

_start:
    mov r0, #1 @;搬移有效数
    mov r1, r0 @;寄存器之间数据搬移
	.end

备注:
立即数:0-255之间的数
有效数:
1、本身就在0-255之间的数
2、循环右移偶数位能够得到0-255之间的数
3、能够通过按位取反得到0-255之间的数
4、能够通过按位取反,取反后的值通过循环右移偶数位得到0-255之间的数

底层现象
在这里插入图片描述
运行程序之后的现象:把1放入r0中,再把r0中的数放入r1中。程序计数器(PC)的作用是存放处理器要读取的下一条指令的地址,一条指令占四个字节,故此时执行了两条指令,pc的值为8。

 _start:
  mvn r1, #0xff000000
  	.end  

底层现象:
在这里插入图片描述
运行程序之后的现象:将目标数取反放入r1,pc置4.

(2)算术运算:add、adc、sub、sbc、rsb、rsc、mul、mla

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值