当前位置: 首页 > news >正文

ARM指令集--数据处理指令

数据处理指令:数学运算,逻辑运算

立即数

立即数的本质

就是包含在指令当中的数,属于指令的一部分

立即数的优点:取指的时候就可以将其读取到CPU,不用单独去内存读取,速度快

立即数的缺点:不能是任意的32位的数字,有局限性
MOV R0,#0x12345678         无法执行
MOV RO,   #0x12                 可以执行

MVN             机器码为   E3E开头

MOV             机器码为   E3A开头

特殊的MOV R0,0xFFFFFFFF   等价于 MVN R0 ,0x00000000 

数据运算指令的格式


《操作码》《目标寄存器》《第一操作寄存器》《第二操作数》

操作码:                                       表示执行哪种操作

目标寄存器:                                  用于存储运算的结果

操作寄存器:                                  存储第一个参与运算的数据 (只能写寄存器)

第二操作数:                            第二个参与运算的数据(可以是寄存器也可以是立即数)

加法指令

乘法指令只能是两个寄存器相乘,不能用立即数

位清零指令 BIC指令

例,把R2的后四位清0,放入寄存器R1中。因为0xF后四位为1

第二操作位的哪一位为1,就将第一操作寄存器的哪一位清零,然后将结果放入到目标寄存器内

数据指令的扩展

数据运算指令对条件位 (N、Z、C、V)的影响默认情况下数据运算不会对条件位产生影响,
当在指令后加后缀”s”后可以影响。

两个64位的数据做加法运算

改善后:

C为CPSR中的条件代码值

减法运算

一个字节(byte)由8个二进制位(bite)组成

1个十六进制数对应4位二进制数

2个十六进制数对应1个字节

http://www.lryc.cn/news/162245.html

相关文章:

  • Excel embed into a webpage
  • uniapp点击事件在小程序中无法传参
  • ssprompt:一个LLM Prompt分发管理工具
  • 修复 ChatGPT 发生错误的问题
  • 《热题100》字符串、双指针、贪心算法篇
  • 大数据组件Sqoop-安装与验证
  • 运算符重载(个人学习笔记黑马学习)
  • 2023.9.6 Redis 的基本介绍
  • 2023-09-08力扣每日一题
  • adb-linux 调试桥
  • 入门人工智能 —— 使用 Python 进行文件读写,并完成日志记录功能(4)
  • 使用Caffeine实现帖子的缓存来优化网站的运行速度
  • Webpack5 搭建Vue项目(进阶版)
  • 论文阅读:Distortion-Free Wide-Angle Portraits on Camera Phones
  • 力扣每日一题---207. 课程表
  • 在Kubernetes环境中有关Nginx Ingress与API Gateway的连接问题
  • c语言练习44:深入理解strstr
  • 渗透测试漏洞原理之---【业务安全】
  • CentOS查看CPU、内存、网络流量和磁盘 I/O
  • 无人机航线规划
  • react中受控组件与非受控组件
  • 【网络教程】如何解决Docker删除镜像和容器后磁盘空间未释放的问题
  • Python中的进度条显示方案
  • 2023-09-05力扣每日一题
  • ODC现已开源:与开发者共创企业级的数据库协同开发工具
  • 生成克隆钓鱼网站与对win7进行后渗透操作
  • Ubuntu18中NVIDIA,cuda,cudnn,pytorch安装
  • MATLAB中M文件编写
  • 企业数字化神经网络
  • C++this指针