- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在为 C 程序编写一个汇编宏,并且对此很陌生,我陷入了一些困境。我正在尝试编写一个宏,用于将数据从通用寄存器移动到专用寄存器。
我的问题是,我发现将数据从 GPR 移动到 SPR 的语法采用恒定的 SPR 值,而我想使用存储在另一个寄存器中的变量。
# SPR is constant, rA is the value to be written
mtspr SPR, rA
我正在寻找看起来像这样的东西:
# rA contains the number of the SPR, and rB the value to be moved.
AWESOMEmtspr rA, rB
有没有这样的宏可用的原因,我该如何自己制作它?
提前非常感谢。
---- 编辑: ----现在看来,我的 C 代码中有一个巨大的 switch case,可以跳转到正确的 mtspr 部分。我有二十几个部分用于读取和编写特定的 SPR:s,每个部分看起来完全相同,但有一个常数值不同。
最佳答案
不能这样做的原因是指令架构不接受寄存器间接作为寄存器参数的寻址模式。老实说,我从未见过这样的机器架构,因为寄存器的数量通常相当小,因此寄存器被编码为指令本身的一部分。如果您确实不喜欢现有的解决方案,您可以尝试自己合成指令(获取基本操作码,查看寄存器说明符的位置以及适当值中的“或”),然后执行它。根据您的操作系统和编译器,这可能是不可能的(自修改代码通常是禁忌)。
如果用汇编语言编写跳转表,是否会使代码更简洁?也许传入 SPR 说明符(假设它是一个从零开始的整数,或者可以强制为 1),将其向左移动以获得跳转表中的偏移量,然后跳转到表中,这将是一个序列
MTPSR PSRx, val
RET
MTPSR PSRx+1, val
RET
我不知道什么对你来说算“更干净”,只是想我会把它扔掉。请注意,您可能必须用 NOP 填充才能使所有内容对齐,我没有 PowerPC 手册,因此我不知道指令大小或对齐要求是什么。
关于assembly - PowerPC 转向可变 SPR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3236791/
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
如何让我的节点始终朝着它所面对的方向前进? float tilt = _motionManager.accelerometerData.acceleration.x; [_player runActi
我继承了一个基于 Java、基于 Web 的 7 年前的产品,其中包含大约 75 万行代码。正如预期的那样,考虑到它的年龄,它不是基于 Maven 的结构,. Maven 用于构建和发布应用程序。但是
既然新版本的 eclipse 已经发布了,我应该立即转向吗?如果我的插件在 Galileo 中工作,它也能在 indigo 中工作吗? 最佳答案 如果不尝试或研究特定插件提供商关于 Indigo 兼容
我有一个使用 html、css 和 jQuery 制作的静态应用程序。我现在将其导入到 Angular 2 中,但遇到了日期问题: // GET DATE let d = new Date(); le
我在 C# 中为我的 unity 项目创建了一个植绒算法。我试着关注 this example ,但问题是把所有东西放在一起,我无法推断。以下代码是我希望拥有一个领导者跟随植绒系统的一部分。 我在基本
我有一张这样的 table Index | FeatureType | FeatureExists 1 | BR | 0 1 | EI
我有一个拥有大约 60,000 名付费客户的网站,其中 3000 名使用 Windows XP + IE 8。我想要一个可以为我的所有客户提供服务的证书(或多证书解决方案)。问题是 SHA-1 已被弃
我正在尝试找出如何以不同的方式执行我的 JavaScript 回调。 我目前的回调风格,将回调传递给函数,函数调用回调。例如: 函数调用 doSomething(function(data){
我有一个适用于 Android 2.1 的应用程序,我想为 Android 2.2+ 的设备添加移动到 SD 的支持。 我添加了代码: 但是如果我让我的项目保持在sdk level 7以上,我会出
此代码附在相机上: transform.position += Input.GetAxis("Vertical") * transform.forward * mod; transform.posit
jQuery 是 javaScript 的框架。但是,我能够很好地使用 javaScript 进行编码。我不知道如何在 jQuery 中(重新)编码它! 从头开始学习 jQuery 是唯一的方法还是我
我将一些旧代码从另一个库移至 jQuery,并在此过程中破坏了一些其他代码。我认为 jQuery 实现其 .html 函数的方式让我很伤心。 以下部分是使用以下语法通过 AJAX 调用和成功函数生成的
我在网上搜索了一些不错的代码,突然间我碰到了一个,但是它已经在 Eclipse 中工作了,因为我没有 Eclipse(而且我也不打算安装它)我可以在我的 VS10 上正确编译它。问题是所有链接器引用都
我是 Scrum 团队的一名测试人员,试图自动化我们的测试回归集。 我们的前端是用 Java Angular 开发的,我们使用 Tosca 测试套件来自动化我们的测试集。我遇到的问题如下: 使用 To
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 8 年前。 Improve this qu
SVG 图标与字体图标相比有一些优势:它们可以缩放以适应可变大小的容器元素,并且理论上您可以更改各个路径的颜色。我也喜欢我可以在 Inkscape 中轻松制作它们的事实:P 但我如何在 CSS 文件中
关于将 iOS 应用程序迁移到 Swift 3.0 的过程。我终于摆脱了(所有)语法错误。 不过,我似乎还有一个很大的问题。 以下是我在构建项目时在 Xcode 中得到的最终错误消息: 这里太长了,所
自从我开始编码以来,我就是一名 .NET 开发人员。我想学习 Win32 编程。需要关于从哪里开始的建议。学习 Win32 编程的最佳资源/书籍是什么。我知道一点“大学 C++”。 最佳答案 毫无疑问
在windows上用了10多年,如何迁移到*nix平台?哪种口味更容易处理,让我更舒服,然后也许我可以切换到更标准的 *nix 口味?我已经推迟了一段时间了。帮助我进行额外的推送。 最佳答案 Linu
我是一名优秀的程序员,十分优秀!