MIPS $gp 寄存器

2023-12-22

使用有危险吗$gp注册来存储一个值?我想我的问题是真正的功能是什么$gp它是否以某种方式在幕后被调用,以便如果我使用它,事情可能会变得非常非常错误?


好吧,$gp 寄存器指向全局区域。习俗 http://en.wikipedia.org/wiki/MIPS_architecture#Compiler_register_usage表示您应该在编写函数时存储它(请参阅.cprestore)。

如果您需要使用它(老实说,不明白为什么),请记住以下事项:

1)始终将其存储在“已保存”中 堆栈的寄存器区域。

2)始终将该值加载到 $gp 中 当销毁堆栈时。

3)不要使用它。 (我无法访问全局范围)

另外,我不确定,但你可以忘记 PIC 代码。

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

MIPS $gp 寄存器 的相关文章

  • MIPS 递归斐波那契数列

    我在 MIPS 中递归处理堆栈时遇到问题 我明白了这个概念 但我的程序没有按照我的意思做出反应 我的目标是将用户输入作为 n 并打印 n 处的斐波那契数 到目前为止我所拥有的如下 我相当确定问题出在 fib 函数中数字的实际计算中 感谢您的
  • 轮询 I/O (MIPS)

    我正在尝试在 MIPS 中编写一个程序 该程序使用轮询从键盘读取字符 然后使用内置键盘和显示器 MMIO 模拟器显示它 不幸的是 我无法理解所使用的寄存器和控制位背后的概念 但一直试图从在线示例中找出答案 这是我到目前为止所写的内容 dat
  • sra(算术右移)与 srl(逻辑右移)

    请看一下这两段伪汇编代码 1 li t0 53 sll t1 t0 2 srl t2 t0 2 sra t3 t0 2 print t1 print t2 print t3 2 li t0 53 sll t1 t0 2 srl t2 t0
  • 如何在 MIPS 汇编中找到没有除法或模运算符的余数

    我想找到一种方法来知道一个整数是除以3还是7而不使用除法 因为它在MIPS汇编中非常慢 我做了很多研究但一无所获 有一种方法描述为格兰隆德和蒙哥马利 https gmplib org tege divcnst pldi94 pdf需要 奇
  • 如何编写多个条件if else语句mips

    我会像编写将 C 转换为 mips 汇编的逻辑 OR 语句一样编写逻辑 AND 语句吗 else if i x j y printf c 219 这就是我放的 bne reg1 t3 draw219 i x bne reg2 t4 draw
  • 针对 MIPS 的 Microsoft Visual Studio 2010 编译

    我试图弄清楚如何在 Visual Studio 中编译一个简单的 hello world 但适用于 MIPS 处理器 遵循 MS 上发布的指南website http msdn microsoft com en us library ms2
  • MIPS 浮点:swc1 与 s.s

    我正在做一些涉及的工作MIPS汇编 我不断遇到这四个浮点加载 存储伪指令 l s l d s s s d 我在网上找到了一些文档 发现有四个 实际 指令似乎可以做同样的事情 lwc1 ldc1 swc1 and sdc1 我唯一的问题是 有
  • 需要帮助向 MIPS 单周期数据路径添加更多功能

    I am trying to add jal functionality to the following but I am stuck with how does it work I know that it stores the old
  • func 在 R-Format 指令集中意味着什么?

    I am very new to Assembly language I was reading about MIPS architecture and I am stuck with the last field of the Regis
  • 简单 mips 中的无限循环

    我正在尝试了解 ra 所以我想要的输出是 mainfunction1main 通过 main 调用 function1 function1 返回到 main 然后 main 完成 但由于某种原因 我得到一个无限循环 打印 mainfunct
  • 提示用户输入汇编 ci20 seg 错误

    我目前正在 ci20 机器上开发一个小程序 提示用户输入整数值 然后将该值打印到屏幕上 我当前的代码 data prompt asciiz Please enter an integer message asciiz nValue ente
  • MIPS 中的影子寄存器是什么以及它们如何使用?

    当我了解 MIPS 架构时 我遇到了影子寄存器 据说它们是通用寄存器的副本 我无法理解以下内容 何时使用影子寄存器 MIPS 影子寄存器用于减少处理中断时的寄存器加载 存储开销 分配了影子寄存器组的中断不需要保存任何现有上下文来提供空闲寄存
  • C 到 MIPS - 函数和数组

    我正在尝试将以下 C 代码转换为 MIPS 程序集 数组的基地址存储在 a0中 变量索引存储在 a1中 变量 x 存储在 t0 中 void ld array char array int index x array index 当索引是一
  • 阿迪和苏比之间到底是什么“关系”?

    我应该回答这个问题 经过一番研究后发现 add 和 sub 具有相同的操作码 仅在功能领域有所不同 这是答案还是其他什么 Update Nios II CPU 手册中提供了它 subi subtract immediate Operatio
  • I 类型指令的 MIPS 周期数 (addi)

    So on https en wikipedia org wiki Cycles per instruction https en wikipedia org wiki Cycles per instruction它说 对于多周期MIPS
  • 将 C 转换为 MIPS - 嵌套数组

    我正在学习 MIPS 汇编语言 在书中看到了这个例子 对我来说这似乎是不正确的 如果是的话 这将不是我在本书中发现的第一个错误 变量f and g被分配寄存器 s0 and s1分别是数组的基地址A and B are s6 and s7分
  • 计算数字的二进制表示形式中 1 的数量的最佳方法。 (MIPS)

    我需要计算二进制数中 1 的数量 比如说 5 所以 00001001 将是 2 或 n 2 我正在使用 MIPS 最好的方法来做到这一点 最好的方法是count them 您可以检查是否设置了最低有效位 a1 by and用一个来代替它 如
  • MIPS 获取地址未在字边界上对齐,使用了 .align 4,仍然无法执行

    有任何想法吗 为什么我得到 0x00400020 处的运行时异常 获取地址未在字边界 0x00000007 上对齐 问题行是 lw s1 0 a1 copy arg2 数组大小 data align 4 added this didnt w
  • 裸机交叉编译器输入

    裸机交叉编译器的输入限制是什么 比如它不编译带有指针或 malloc 的程序 或者任何需要比底层硬件更多的东西 以及如何才能找到这些限制 我还想问 我为目标 mips 构建了一个交叉编译器 我需要使用这个交叉编译器创建一个 mips 可执行
  • 将以下机器语言代码(0x2237FFF1)翻译成MIPS汇编

    到目前为止我已经翻译了这段代码 但我不明白的是如何计算 计算 16 位立即地址的数量 0x2237FFF1 转为二进制 0010 0010 0011 0111 1111 1111 1111 0001 现在我正在读取操作码 001000 并知

随机推荐

  • finditem() 找不到菜单,并出现 NullPointerException

    我在更改选项菜单上的某些属性时陷入困境onCreateOptionsMenu 看起来 findItem 返回 null 即使我很确定对菜单项的引用是正确的 我的代码如下所示 Override public boolean onCreateO
  • 构建 Angular CLI 时出错

    我在尝试构建 Angular 2 项目时遇到问题 当我打电话时ng build 构建器正在将路由路径验证为模块 并表示它不存在 错误无法从 C Users bruno martins git disciples ui src app app
  • 为什么即使在我调用 Thread.currentThread().interrupt() 之后,thread.isInterrupted() 仍返回 false

    当我运行这个测试时 为什么sleepThread isInterrupted 总是返回 false 我必须执行Thread currentThread interrupt 当捕获一个时设置中断标志InterruptedException T
  • React - 表单提交后清除输入值

    我遇到了一个相当愚蠢的问题 我正在创建我的第一个 React 应用程序 并且遇到了一个小问题 在提交表单后我无法清除我的输入值 尝试用谷歌搜索这个问题 在这里找到了一些类似的线程 但我无法解决这个问题 我不想更改组件 应用程序的状态 只是将
  • 加载多个.dta 文件

    我有一个包含超过 500 个 dta 文件的文件夹 我想将其中一些文件加载 到单个 R 对象中 我的 dta 文件有一个由四个部分组成的通用名称 两个字母 四个数字 y dta 例如 名称可以是 de2015y dta 或 fr2008y
  • 急切执行:梯度计算

    我想知道为什么这个非常简单的梯度计算不能正常工作 它实际上是生成一个 None None 向量 显然 这不是期望的输出 import tensorflow as tf tf enable eager execution a tf const
  • 如何从应用程序内部检测 JVM 垃圾收集周期?

    我只是想知道是否有一种方法可以从正在 gc 的代码 JVM 中检测垃圾收集周期 时机不起作用 因此 事件发生在实际周期之前还是之后并不重要 在周期期间发生事件似乎不太可能 而且也可能很危险 具体取决于所使用的 GC 实现 我能找到的只是可以
  • shuffle阶段和combiner阶段有什么区别?

    我对 MapReduce 框架很困惑 我从不同的来源读到了这方面的内容 感到很困惑 顺便说一句 这是我对 MapReduce 作业的想法 1 Map gt emit
  • SQL:查询的默认排序依据是什么?

    没有时查询的默认顺序是什么ORDER BY用来 不存在这样的命令 取自没有 ORDER BY 子句的 SELECTS 的默认排序顺序是什么 http forums mysql com read php 21 239471 239688 ms
  • 如何使 waitForWebPageToLoad 在编码的 ui 测试中工作?

    首先 我是编码 ui 测试的初学者 我的代码技能很差 但我正在努力学习 现在我正在 Visual Studio 中手工编写一些测试用例 C 记录选项对我来说还不够 但我无法得到waitForWebPageToLoad上班 例如下面的例子 我
  • 在 ViewPager 滑动时显示/隐藏 FloatingActionButton

    我的活动有 3 个选项卡 每个选项卡页面都是一个显示 RecyclerView 的片段 其中一个片段中有 FloatingActionButton 我正在片段的布局中实现此按钮 我还在片段的右下角将其设为静态 片段布局 Coordinato
  • 使用八度无头

    是否有可能使用 Octave 无头 像这样的东西 octave lt 5 4 gt result txt Using octave silent eval 5 4 gt result txt 你会得到 ans 9 in result txt
  • 是否可以在CSS中设置img标签的src属性?

    是否可以设置srcCSS 中的属性值 大多数情况下 我们这样使用它 img src pathTo myImage jpg 我希望它是这样的 img class myClass myClass some src property url pa
  • Newtonsoft.Json.DeserializeObject 抛出什么异常?

    Newtonsoft Json DeserializeObject 抛出什么异常 我想处理他们 http james newtonking com json help topic html M Newtonsoft Json JsonCon
  • GIT:根文件夹中存在 CRA 应用程序,我如何正确推送到 git?

    我对 git 很陌生 这可能是一个愚蠢的问题 但我真的不知道如何解决这个问题 我一直在努力寻找答案 但我找不到 我试图使用 React js 和 Node js 创建我的项目 我创建了从 npx create react app clien
  • 存储用户设置 - 使用“标志”或“位”而不是一堆布尔值有什么问题吗?

    我正在为我的 MVC 应用程序设计用户设置 现在我有大约 20 个用户可以切换的布尔设置 由于每个用户总是拥有每个设置 因此我正在考虑将每个设置存储为用户表中的布尔值 尽管随着应用程序需求的增长 这会变得笨拙 第一个问题 在这种情况下 表上
  • Swift-删除推送通知徽章号码?

    我试图快速删除图标徽章 但 PFInstallation 似乎不再起作用 我该怎么做呢 您可以通过将应用程序徽章图标设置为 0 来 删除 它 斯威夫特 UIApplication sharedApplication applicationI
  • 我可以在 emberjs 中为视图提供显示动画吗

    这是使用 emberjs 路由器的示例http jsbin com agameq edit http jsbin com agameq edit 现在我想要一些显示动画 例如当路线更改时淡入或淡出 我应该怎么办 Every View在 em
  • 选择 Apache Hive 中是否存在表

    我有一个配置单元查询 其格式如下 select from table1 left join select from table2 on some condition The table2根据环境的不同 可能不存在 因此 如果仅存在 tabl
  • MIPS $gp 寄存器

    使用有危险吗 gp注册来存储一个值 我想我的问题是真正的功能是什么 gp它是否以某种方式在幕后被调用 以便如果我使用它 事情可能会变得非常非常错误 好吧 gp 寄存器指向全局区域 习俗 http en wikipedia org wiki