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

ARM base instruction -- umaddl

Unsigned Multiply-Add Long multiplies two 32-bit register values, adds a 64-bit register value, and writes the result to the 64-bit destination register.

将两个32位寄存器值相乘,添加一个64位寄存器值,并将结果写入64位目标寄存器。


64-bit variant
UMADDL <Xd>, <Wn>, <Wm>, <Xa>

Decode for this encoding
 integer d = UInt(Rd); 
 integer n = UInt(Rn); 
 integer m = UInt(Rm); 
 integer a = UInt(Ra); 

Operation
 bits(32) operand1 = X[n]; 
 bits(32) operand2 = X[m]; 
 bits(64) operand3 = X[a]; 
  
 integer result; 
  
 result = Int(operand3, TRUE) + (Int(operand1, TRUE) * Int(operand2, TRUE)); 
  
 X[d] = result<63:0>; 


  40a150:    9101c260     add    x0, x19, #0x70
  40a154:    52800301     mov    w1, #0x18                      // #24
  40a158:    52800019     mov    w25, #0x0                       // #0
  40a15c:    9ba10294     umaddl    x20, w20, w1, x0
 


http://www.kler.cn/a/377335.html

相关文章:

  • SMTP代理
  • Linux篇(常见入门命令)
  • [SWPUCTF 2021 新生赛]fakebase
  • Windows安装多个NodeJS版本
  • CSRF与SSRF
  • QML —— QML调用C++两种方法(附完整测试源码)
  • Kafka 判断一个节点是否还活着有那两个条件?
  • 【代码随想录Day58】图论Part09
  • C/C++语言基础--C++模板与元编程系列三(变量模板、constexpr、萃取等…………)
  • Cpp::set map 的理解与使用(22)
  • Redis常见面试题总结(上)
  • yt-dlp下载视频
  • mac 安装tomcat
  • 从0开始学统计-数据类别与测量层次
  • Python软体中使用Pandas库读取数据并绘制柱状图的实用指南
  • 谷粒商城のsentinelzipkin
  • Blender进阶:着色器节点
  • 02- 模块化编程-002 DS1302数码显示时间与日期
  • 【AI开源项目】FastGPT- 快速部署FastGPT以及使用知识库的两种方式!
  • 探索无线网IP地址:定义、修改方法及实践指南
  • 搭建Apache web服务器实例
  • 「C/C++」C++11 之<thread>多线程编程
  • 二、基础语法
  • Java实战项目-基于微信小程序的养老院管理系统
  • 【读书笔记/深入理解K8S】集群网络
  • 超越百万年薪--应届毕业生程序员Ocaml职位235万年薪