RISC-V 中的旋转位

2024-01-26

嘿,我对 RISC-V 还算陌生。

我的练习题之一是:

将 0x0000000000000123 的值右移 4 位。预期结果为 0x3000000000000012,即所有十六进制数字向右移动一位,而最右边的一位移动到前面*

到目前为止,我了解了一些关于逻辑运算的知识:andi, or, and xori。在我之前的练习中我学到了add, addi, sub, slli, srli, srai.

我从以下开始:

addi x6, 0x, 0x123

然而,我被困在这里了。我的教科书并没有真正正确地描述事物,所以非常感谢任何帮助!


这就是我最终所做的:

addi x30, x0, 0x123
andi x29, x30, 0x00f //masking all, but the right most hexadecimal digit
slli x6, x29, 60 //shifting this digit all the way to the left (rotating)
srli x7, x30, 4 //shifting the original value 4 bits right
add x5, x6, x7 //adding the two regs
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

RISC-V 中的旋转位 的相关文章

  • 按位运算如何提高 Asm.js 的性能?

    在 Asm js 定义的第一行有一个基于 Asm js 的代码示例 它解释了按位运算有助于获得更快的 JS 代码 HEAP32 p gt gt 2 0 or x y 0 我的问题是 这个操作如何提高性能 在 Asm js 或 Emscrip
  • 按位右展开算法

    本来这篇文章要求逆绵羊和山羊操作 但我意识到这超出了我的实际需要 所以我编辑了标题 因为我只需要一个右展开算法 http programming sirrida de bit perm html c e 这更简单 我在下面描述的示例仍然具有
  • GDB 中断命令不会在命令文件中执行

    我有一个调试脚本 它执行以下操作 设置两个断点 让我们称呼他们吧start and end断点 启动后 脚本将继续执行 直到start命中断点 once start命中断点 我执行单步执行 直到end命中断点 这是我的命令文件 end br
  • 计算长数中设置的位数

    这个问题已得到解答here https stackoverflow com questions 34116205 count number of set bits in a long number 我的疑问是 以下方法 1 有效 但它的变体
  • 按位 - 如何检查一个二进制数是否包含另一个二进制数?

    A 110000000 384 Blue Red B 011000010 194 Green Black Red A B C 010000000 128 Red 我如何检查 B 是否包含 A 中的所有位以及其他位 在上面的情况下 我想得到
  • 快速、无分支的 unsigned int 绝对差

    我有一个程序 它花费大部分时间计算 RGB 值之间的欧几里德距离 无符号 8 位的 3 元组 Word8 我需要一个快速 无分支的 unsigned int 绝对差函数 这样 unsigned difference Word8 gt Wor
  • 如何更改32位寄存器的特定位而不更改其他位?

    我想直接使用寄存器的物理地址来操作寄存器的某些位 但是我找不到方法来做到这一点 我看到一些关于设置位掩码的帖子 但我发现它们太令人困惑了 我的寄存器物理地址是 0x4A10005C 我想操纵它的 18 16 位之间的位 我想设置0x3在那些
  • 将 int 位转换为 float 位

    我正在创建一个缓冲区 该缓冲区将在横幅中读 写 在其中我可以完全消除 TCP 分段带来的问题 我遇到的唯一问题是浮点变量 除了浮点之外 其他一切都工作正常 我找不到任何有关如何将 int32 位转换为浮点数的信息 将 float 转换为 i
  • 检查标志位java

    我的标志位有问题 我有一个int保存标志的变量 首先 我为该变量设置了一些标志 稍后我需要检查该变量中设置了多少个标志 但我不知道该怎么做 要检查是否设置了位值 int value VALUE TO CHECK OTHER VALUE TO
  • 令人困惑的 PHP 按位 NOT 行为

    在 PHP 中 如果我运行以下简单程序 number 9 var dump number 我的输出是 int 10 这让我很困惑 我thought 是按位NOT操作员 所以我期待类似的事情 if binary 9 is 0000000000
  • 如何在 O(1) 时间内找到二进制数中 1 的个数?

    我知道以前曾问过这个问题 但我正在查看列出的这个特定解决方案here https stackoverflow com a 8871435 1418853 int BitCount unsigned int u unsigned int uC
  • 零/符号扩展是无操作的,为什么要为每种大小类型提供指令呢?

    对于 x86 和 x64 编译器生成类似的零 符号扩展 MOVSX 和 MOVZX 扩展本身并不是免费的 但允许处理器执行无序魔法加速 但在 RISC V 上 因此 无符号和有符号 32 位整数之间的转换是无操作 从有符号 32 位整数到有
  • 为什么 golang 左移 64 位不会溢出?

    我正在看围棋之旅 https tour golang org basics 11我对 basic types go 示例中的某些内容感到困惑 MaxInt uint64 1 lt lt 64 1 在无符号 64 位整数中向左移动 1 64
  • 如何在使用按位运算添加两个整数时添加无限循环的代码修复

    这是原件question https stackoverflow com questions 39113479 infinite loop while adding two integers using bitwise operations
  • C# 中反转 1 位

    我有 1 位byte 始终处于最低顺序位置 我想反转 即给定 00000001 我想要得到 00000000 而对于 00000000 我想要 00000001 我是这样解决的 bit gt 0 0 1 我很好奇还能怎么做 怎么样 bit
  • 检查位掩码的特定位

    我正在与Bitmasks in python 据我所知 这些是整数数组 当它们解压缩为二进制格式时 它们会告诉您数组中给定元素的 32 位中的哪一个被设置 1 我想知道检查数组的任何元素是否设置了 4 个特定位的最快方法 我不关心其余的 我
  • 如何找到第一个设置位的索引

    是否有按位解决方案来查找仅设置一个位的掩码中第一个设置位的索引 例如对于 8 则为 3 对于 16 gt 4 依此类推 请不要循环 我能想到的最佳解决方案是创建位到索引的映射 function firstBit x return Math
  • 计算无符号长整型序列中的公共位

    我正在寻找比下面更快的算法 给定一个 64 位无符号整数序列 返回该序列中每个 64 位被设置的次数计数 Example 4608 000000000000000000000000000000000000000000000000000100
  • (x % 64) == (x & 63) 背后的基本原理是什么? [复制]

    这个问题在这里已经有答案了 可能的重复 按位与代替模运算符 https stackoverflow com questions 3072665 bitwise and in place of modulus operator 有人可以解释使
  • 设置字节中的特定位

    我正在尝试设置 Java 字节变量中的位 它确实提供了适当的方法 例如 setBit i 有谁知道我如何才能实现这一点 我可以按位迭代给定的字节 if my byte 1 lt lt i 0 但是我不能将此位置设置为 1 或 0 可以吗 使

随机推荐

  • 在 Mac 上使用 Python 控制浏览器

    我正在寻找一种使用 Python 以编程方式控制 Mac 上的浏览 器 即 Firefox 或 Safari 或 Chrome iumor Opera 但不是 IE 的方法 我需要的操作包括以下链接 检查页面中是否存在元素以及提交表单 您会
  • 如果用户在卸载后立即再次安装应用程序,GCM 是否会删除旧的注册 ID?

    我了解到 当 GCM 无法发送下一个推送通知时 GCM 会将注册 ID 标记为删除 但就我而言 我的用户发生了以下情况 Scenario 1 我的用户安装了该应用程序 并且他的设备已向 GCM 注册 2 同一用户立即卸载并再次安装该应用程序
  • Django:在模板中显示当前区域设置

    我需要将当前区域设置嵌入到 Django 模板的输出中 准确地说 作为 URL 的一部分 我知道我可以访问当前的language as LANGUAGE CODE if I load i18n 但有没有类似的方法来访问当前的locale 我
  • 如何测试角度装饰器功能

    我在 Angular 中有一个装饰器 它将扩展 log 服务的功能 我想测试它 但我没有找到实现此目的的方法 这是我的装饰器的存根 angular module myApp config function provide provide d
  • 如何在 PHP 中删除字符串的一部分? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 如何删除字符串的一部分 示例字符串 REGISTER 11223344 here 我怎样才能删除 11223344 从上面的示例字符串 如
  • 使用 Retrofit 和 Realm 纠正 RxJava 中的流程

    我正在结合 RxJava 和 Retrofit 来实现网络 API 并使用 Realm 作为数据库 我几乎可以正常工作 但我想知道这是否是正确的方法和事件流程 所以 这里是RetrofitApiManager public class Re
  • (xs : Vect n elem) -> Vect (n * 2) elem

    这本书使用 Idris 进行类型驱动开发 https www manning com books type driven development with idris提出这个练习 定义一个适合签名的可能方法 two xs Vect n el
  • 如何在没有嵌入式 tomcat 的情况下启动 Spring Boot 应用程序?

    我有一个使用 jhipster 生成的 Spring Boot 应用程序 它工作正常 但是 我还需要为一些后台批处理作业创建第二个应用程序 并且该应用程序使用第一个应用程序的大部分 Spring 服务 我所做的是创建第二个主类 它启动一个
  • 在 Visual Studio 中使用 Catch2 进行单元测试的最佳实践

    我是 C 单元测试的新手 想获得一些关于这方面的建议 我使用 Visual Studio 2019 进行开发 选择 Catch2 作为我的测试库 我还安装了 Catch2 的测试适配器 我在 GitHub 上阅读了 Catch2 和 Cat
  • 在 Cordova ios 4.0.0+ 中使用 Stripe Checkout

    我一直在尝试让 Stripe checkout 与 Cordova iOs 4 2 0 一起使用 但没有成功 适用的最后一个 Cordova iOs 版本是 3 9 2 为了测试 我制作了一个空的 hello world cordova 应
  • Google API:“invalid_grant”,但代码没有改变

    我在 Google API 身份验证方面遇到以下问题 PHP 致命错误 未捕获异常 Google Auth Exception 消息 刷新 OAuth2 令牌时出错 消息 错误 无效授权 在 home bot bot vendor goog
  • 混合 PCM 音频样本

    我有一个关于混合多个 PCM 样本的简单问题 我读到混合多个音频 PCM 样本的最佳方法是取每帧样本的平均值 因此 如果我在除以 5 之前将 5 个 16 位样本相加 显然很有可能它的值会大于 16 位 Short 所能容纳的值 因此 当将
  • 路由在 kubernetes 中无法使用 calico 工作

    I have kubernetes v1 6 0 由 kubeadm v1 6 1 设置 官方设置的 calicoyaml http docs projectcalico org v2 1 getting started kubernete
  • 如何在没有“未经检查”警告的情况下转换为(已知)泛型类型?

    我有这两个接口 public interface Event default void dispatch EventBus getInstance dispatch this public interface EventListener
  • NERDTree 自动加载特定目录

    我在 Windows 中使用 gvim 默认情况下 nerdtree 默认加载 C 驱动器 我想将其更改为 E 驱动器 如何实现这一点 每当我尝试使用 NERDTree 命令启动 NERDTree 时 都会收到此错误E492 Not an
  • 在内存中存储张量流模型

    我正在编写的程序涉及在运行时在模型之间进行切换 我当前正在使用 Saver 从磁盘保存 加载模型 如下所示 https www tensorflow org api docs python state ops saving and rest
  • VS Xamarin无法生成IPA文件

    我曾经将配置设置为 Release iPhone Remote Device 但是远程设备不再显示 只剩下本地设备 有谁知道有相关的设置吗 多谢 更新到 Visual Studio 16 11 3 远程设备 选项已恢复 看发行说明 http
  • 谷歌地图 API 风格的地图与卫星水

    我正在使用谷歌地图 API V3 创建一个样式化的地图 其中我使用自定义颜色 我想知道是否可以在使用陆地上的自定义样式的同时使用水域的卫星图像 IE 我希望水是卫星图像 而土地是自定义的纯色 现在我可以为土地和水提供自定义颜色 但我想知道是
  • 如何限制子类修改抽象类中方法的范围?

    如何限制抽象类的实现类将方法的范围从 protected 修改为 public 例如 假设我有一个抽象类 package com rao test public abstract class AbstractTEClass protecte
  • RISC-V 中的旋转位

    嘿 我对 RISC V 还算陌生 我的练习题之一是 将 0x0000000000000123 的值右移 4 位 预期结果为 0x3000000000000012 即所有十六进制数字向右移动一位 而最右边的一位移动到前面 到目前为止 我了解了