如何为 Risc-V(汇编语言)编写旋转操作 我们有像 8086 中那样的命令吗?

2023-12-31

我以前使用过8086的汇编语言,8086中的旋转操作只是一个命令。但我在 Risc-V 汇编语言中找不到旋转操作的特定关键字。


看起来扩展“B”最终应该定义这样的指令。

在那之前你必须使用左移和右移来组合它。

这是 MIPS32R2 rotrv 指令的等效指令(按变量计数向右循环):

rotrv:
    subu    neg_count, zero, count
    srlv    tmp1, src, count
    sllv    tmp2, src, neg_count
    or      dst, tmp1, tmp2

你可以在 riscv 上做同样的事情。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何为 Risc-V(汇编语言)编写旋转操作 我们有像 8086 中那样的命令吗? 的相关文章

  • 气体:内存引用太多

    编译时指令如下 movl 4 ebp 8 ebp I got 内存引用过多 它出什么问题了 括号之前的数字是字节偏移量 这会导致发生内存引用 并且不能有两个movl 您需要先将值暂时移至寄存器 movl 4 ebp ecx movl ecx
  • 了解汇编语言中的 cmpb 和循环

    我有一个函数 string length 它具有以下汇编代码 0x08048e90 lt 0 gt push ebp 0x08048e91 lt 1 gt mov esp ebp 0x08048e93 lt 3 gt mov 0x8 ebp
  • 使用 GCC 生成可读的程序集?

    我想知道如何使用GCC http en wikipedia org wiki GNU Compiler Collection在我的 C 源文件中转储机器代码的助记符版本 这样我就可以看到我的代码被编译成什么 你可以使用 Java 来做到这一
  • 英特尔 JCC 勘误表 - 用于缓解的前缀有什么影响?

    Intel 推荐 https www intel com content dam support us en documents processors mitigations jump conditional code erratum pd
  • 为什么将 char 传递给函数会改变它在 c 中的值?

    我目前正在关注本作业簿 http www cs bham ac uk exr lectures opsys 10 11 lectures os dev pdf关于构建操作系统 我的目的是写一个64位内核 我已经在文本模式下加载 内核 代码并
  • 在 AT&T x86 程序集中查找转义字符

    问题一 我有以下汇编代码 其目的是循环输入字符串 并计算它遇到的转义字符 的数量 globl sprinter data escape string string num escape long 0 num characters long
  • GCC 内联 asm NOP 循环在编译时未展开

    走出我通常的 VC 领域 进入 GCC 的世界 通过 MINGW32 尝试创建一个主要由 NOP 组成的 Windows PE ala for i 0 i lt 1000 i asm nop 但要么我使用了错误的语法 要么编译器正在通过它们
  • MIPS 汇编不支持“.set noat”吗?

    目前 我正在学习GNU as 并在 info as 中找到了很多有用的信息 我发现 set noat 在MIPS指定的代码中使用 但是当在 info as 中搜索该指令时 我在节点 alpha指令 中找到了它的解释 但在 MIPS Depe
  • 了解带有 pc 偏移的 Cortex-M 组件 LDR

    我正在查看这段 C 代码的反汇编代码 define GPIO PORTF DATA R volatile unsigned long 0x400253FC int main void Initialization code while 1
  • 如何在 x86 汇编中编写自修改代码

    我正在考虑为我最近开发的一个业余爱好虚拟机编写一个 JIT 编译器 我了解一些汇编语言 我主要是一名 C 程序员 我可以阅读大多数汇编语言并参考我不理解的操作码 并编写一些简单的程序 但是我很难理解这几个示例我在网上找到的自我修改代码 这是
  • Linux 内核中是否使用了扩展指令集(SSE、MMX)?

    好吧 它们带来 至少应该带来 性能的巨大提升 不是吗 所以 我还没有看到任何 Linux 内核源代码 但很想问 它们是否以某种方式被使用 在这种情况下 对于没有此类指令的系统 必须有一些特殊的 代码上限 SSE 和 MMX 指令集在音频 视
  • 本机代码、机器代码和汇编代码有什么区别?

    我对 NET 语言上下文中的机器代码和本机代码感到困惑 它们之间有什么区别 它们是一样的吗 这些术语确实有点令人困惑 因为它们有时使用不一致 机器代码 这是定义最明确的一种 它是使用字节码指令的代码 您的处理器 执行实际工作的物理金属部件
  • 为什么每次在 GDB 中构建和反汇编函数时都会得到相同的地址?

    每次反汇编函数时 为什么总是得到相同的指令地址和常量地址 例如 执行以下命令后 gcc o hello hello c ggdb gdb hello gdb disassemble main 转储代码将是 当我退出 gdb 并重新反汇编 m
  • 汇编:使用数据段寄存器(DS)

    目前我正在学习 x86 汇编 因为我喜欢微控制器编程 所以我熟悉汇编 目前我一直在到处寻找这个问题的答案 但似乎找不到它 DS寄存器 我知道它应该指向我程序中的全局数据 但我不知道知道它到底是如何工作的 我正在使用 NASM 在大多数简单的
  • 调用/返回/jmp等后x86代码执行?

    我希望这个问题不会太愚蠢 因为它看起来似乎很明显 当我对缓冲区溢出进行一些研究时 我偶然发现了一个简单的问题 调用 返回 跳转后转到新指令地址后 CPU是否会执行该地址处的OP代码 然后将一个字节移动到下一个地址并执行下一个OP代码 依此类
  • 为什么 x86-64 上的 GCC 在函数内插入 NOP?

    给定以下 C 函数 void go char data char name 64 strcpy name data x86 64 上的 GCC 5 和 6 编译 普通gcc c g o其次是objdump 这到 00000000000000
  • 在 x86 汇编语言中获取文件大小的简单方法

    假设我已经在汇编中打开了一个文件 并且在寄存器 eax 中有该文件的文件句柄 我将如何获取文件的大小 以便为其分配足够的缓冲区空间 我在这里研究了另一个讨论 建议使用sys fstat 28 系统调用来获取文件统计信息但无法实现它 My a
  • 调用 printf 系统子例程在汇编代码中输出整数错误[重复]

    这个问题在这里已经有答案了 来回 在windows7控制台窗口中运行gcc s2 asm 然后生成一个exe文件 运行a exe 然后崩溃 为什么 s2 asm 代码由以下源代码生成 int m m 1 iprint m s2 asm请参考
  • 在 OllyDbg 和 Assembler 中,EBP+8 是什么意思?

    我正在学习 OllyDbg 中的汇编和调试技巧 以便学习如何使用未记录的函数 现在我遇到以下问题 我有以下代码部分 来自 OllyDbg MOV EDI EDI PUSH EBP MOV EBP ESP MOV EAX DWORD PTR
  • Nasm 点状标签

    我对 TASM 很熟悉 但对 NASM 不太了解 我读过 NASM 允许使用本地标签 这些标签在名称前用点表示 例如 代码 loop some code jmp loop 定义一个名为 loop的局部标号 引用的地址在后面的jmp指令中使用

随机推荐

  • Minecraft 服务器的世界边界修剪脚本

    我正在尝试创建一个脚本 每天凌晨 5 点修剪 Minecraft 服务器的世界 到目前为止 它运行命令 wb NAME TRIM 其中 NAME 是世界的名称 然后运行命令 wb TRIM CONNECT 以初始化修剪过程 bin bash
  • 我可以在 firestore 中查询嵌套文档值吗?

    我想在 firestore 中搜索以下数据 收藏 gt 文档 gt date month 10 year 2017 var ref db collection collection doc document ref where date m
  • AWS Athena 对于 api 来说太慢了?

    计划是从 aws 数据交换获取数据 将其移动到 s3 存储桶 然后通过 aws athena 查询数据 api 一切正常 只是感觉有点慢 无论数据集还是查询 athena 响应时间都不能低于 2 秒 对于 API 来说 这已经太多了 我检查
  • Jooq批量记录插入

    我目前正在尝试批量插入许多记录 2000 而 Jooq 的batchInsert 没有执行我想要的操作 我将 POJO 转换为 UpdatableRecords 然后执行 batchInsert 它为每条记录执行插入 因此 Jooq 为每个
  • 从“int”到“const char*”的无效转换[重复]

    这个问题在这里已经有答案了 我在用着gcc在代码块上 我想编写一个使用记录数组的函数 但是我不断收到错误 invalid conversion from int to const char 代码 include
  • Pandas:获取去年同一天的值

    我正在寻找一种方法 如何获取前一年同一天的值 F e 我们有 2014 年 1 月 1 日的值 我想创建一个新列 其中包含这一天的值 但来自一年前 表的示例 我想获取 Previos Year 列 Date Ticks Previos Ye
  • 如何在训练期间每个时期结束时调用测试集?我正在使用张量流

    我正在使用 Tensorflow Keras 开发一个 CNN 模型 其中我将数据集分为训练集 验证集和测试集 我需要在每个时期结束时调用测试集以及训练集和验证集来评估模型性能 下面是我跟踪训练集和验证集的代码 result dic epo
  • 如何注入特定的缓存池?

    在我的 Symfony 5 应用程序中 我想针对不同的任务以及不同的环境使用不同的缓存 例如我的配置如下所示 framework cache pools cache auth adapter cache adapter redis prov
  • 将 nginx.conf 添加到 Kubernetes 集群

    我怎样才能通过nginx conf配置文件到 Kubernetes 集群内运行的 nginx 实例 您可以创建一个 ConfigMap 对象 然后将值作为文件安装在您需要的位置 apiVersion v1 kind ConfigMap me
  • 说明:register_shutdown_function [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 什么是register shutdo
  • 我已经被 async/await 宠坏了!现在正在努力解决明确的任务延续问题

    编辑 接受后 它可能不会立即显而易见 但 Servy 的答案是正确的 不需要自定义实现Unwrap在 monodroid 下 在我的评论中我说它不存在 但它确实存在 End edit 我正在编写一堆使用我们的 RESTful Web 服务的
  • Pytesseract - 使用用户模式

    我正在尝试将 tesseract 的用户模式与 pytesseract 一起使用 但似乎无法使该命令正常工作 这看起来应该相当简单 但文档很少 我使用的是 tesseract 3 05 01 这样做是行不通的 pytesseract ima
  • 在 Vim 中更改大小写

    Vim 中是否有命令可以更改所选文本的大小写 Visual select the text http vimdoc sourceforge net htmldoc visual html visual use then U for uppe
  • Python程序遍历目录并读取文件信息

    我刚刚开始使用 Python 但已经发现它比 Bash shell 脚本更加高效 我正在尝试编写一个 Python 脚本 该脚本将遍历从我启动脚本的目录分支的每个目录 并且对于它遇到的每个文件 加载此类的实例 class FileInfo
  • 我在颤振中遇到空安全问题

    我在 Flutter 中遇到空安全问题 我想将数据放入其中水平数据表 https pub dev packages horizontal data table在 Flutter 中 我用StreamBuilder但是当我在小部件内调用它时
  • Boost.Python.ArgumentError:python str 未转换为 std::string

    我收到一个错误 我无法理解尝试通过 Boost Python 包装一个相当简单的 C 类的意义 一 班级 include
  • 使用指令以驼峰命名法设置元素的属性值

    我正在尝试从这样的指令向 angularJs 元素添加属性 element attr startOffset val 但是当我检查该元素时 添加的属性是 startoffset 其中 o 不是大写字母 有什么方法可以向元素添加属性并保持单词
  • Django ORM原始删除查询不删除记录

    我在用raw sql为了方便我的查询以保持数据库最小化 我正在删除额外的记录 通过这个查询 d is from a loop and has values res MyModel objects raw DELETE FROM mydb m
  • JQuery Ajax 投票

    我正在用这个JQuery Ajax 投票系统指南 http ad1987 blogspot com 2009 02 reddit style voting with php mysql and html作为一个粗略的参考 但我对此的安全性有
  • 如何为 Risc-V(汇编语言)编写旋转操作 我们有像 8086 中那样的命令吗?

    我以前使用过8086的汇编语言 8086中的旋转操作只是一个命令 但我在 Risc V 汇编语言中找不到旋转操作的特定关键字 看起来扩展 B 最终应该定义这样的指令 在那之前你必须使用左移和右移来组合它 这是 MIPS32R2 rotrv