mips相关内容

如何计算跳转目标地址和分支目标地址?

我是汇编语言的新手.我正在阅读 MIPS 架构,但我坚持使用跳转目标地址和分支目标地址以及如何计算每个> 其中. 解决方案 (在下面的图表和文字中,PC是分支指令本身的地址.PC+4code>是分支指令本身的结束,也是分支延迟槽的开始.绝对跳转图中除外.) 1.分行地址计算 在 MIPS 中,分支指令只有 16 位偏移量来确定下一条指令.我们需要一个寄存器添加到这个 16 位值 ..
发布时间:2021-11-30 11:14:37 其他开发

64 位应用程序的内存布局

64-bit OS 指的是通用寄存器的位宽.它能够一次处理 64 位(数据 + 操作). 我们知道,为了让 64 位系统真正有用,程序员需要编写 64 位应用程序. 但是,我想知道 32 位应用程序和 64 位应用程序之间的区别是什么?我不是在问编译 64 位应用程序需要进行哪些配置更改;相反,我想知道两个应用程序在内存中的结构差异. 例如,Linux 上的 C 程序在内存中通常 ..
发布时间:2021-11-25 06:35:19 C#

如何在 x86 平台上运行 MIPS 二进制文件?

有没有办法在 Linux x86/x86-x64 机器上运行 MIPS 二进制文件?我有一些 Enigma2 机顶盒(也基于 Linux)的应用程序,我想在 x86/x86-64 机器上运行.这些插件仅适用于 MIPS 处理器. 解决方案 关键字是 "emulator".最著名的模拟器是 qemu,它几乎可以模拟任何架构,但也有很多 MIPS您可以在 Linux-MIPS wiki 中找到 ..
发布时间:2021-11-25 06:16:01 C#

MIPS 中的二维数组

我在网上和这个网站上搜索过,我找不到在 MIPS 中实现二维数组的好例子.我希望能够看到一个示例,说明如何遍历数组以将数据放置在特定索引处以及如何打印出如下所示的数组. 例如一个 5x5 数组,其中 $ 将是每个索引中的数据. a b c d e1 $ $ $ $ $2 $ $ $ $ $3 $ $ $ $ $4 $ $ $ $ $5 $ $ $ $ $ 解决方案 您可以根据一维数组 ..
发布时间:2021-11-18 04:14:22 其他开发

是否可以在线程之间共享寄存器?

我知道当操作系统/硬件在不同线程的执行之间切换时,它会管理存储/恢复每个线程的上下文,但是我不知道很多细节.我的问题是:是否有任何寄存器可用于在线程之间共享信息?在 x86 中?米普?手臂?等等,.linux?窗户? 非常感谢任何有关如何做到这一点的建议. 解决方案 你的问题乍一看似乎很有道理.其他人试图直接回答这个问题.首先我们有两个相当模糊的概念, 主题 注册 如果 ..
发布时间:2021-11-17 22:02:56 其他开发

适用于 ARM、MIPS、x86 的 Android os.arch 输出?

为了识别Android设备的平台,java系统属性“os.arch"似乎就足够了: Log.i("mytag", "os.arch:" + System.getProperty("os.arch")); 大多数 ARM 设备响应:os.arch: armv7l x86 模拟器响应:os.arch: i686 真实 Intel 和 MIPS 设备的输出是什么? x86 Andr ..
发布时间:2021-11-17 21:50:55 其他开发

预取指令

似乎预取使用的一般逻辑是可以添加预取,前提是代码忙于处理,直到预取指令完成其操作.但是,似乎如果使用过多的预取指令,那么它会影响系统的性能.我发现我们首先需要没有预取指令的工作代码.稍后我们需要在代码的各个位置进行预取指令的各种组合,并进行分析以确定由于预取而实际上可以改进的代码位置.有没有更好的方法来确定应该使用预取指令的确切位置? 解决方案 在大多数情况下,预取指令几乎没有好处,甚至在 ..
发布时间:2021-11-17 21:45:41 其他开发

Android模拟器系统镜像和AMD处理器

我使用 AMD FX X6 6300 型处理器.(它支持虚拟化,我的 BIOS 设置为 ON) 我安装了“Intel x86 Emulator Accelerator".当我尝试运行英特尔加速器设置时,我发现该设置无法安装.(错误是虚拟化) SDK 管理器具有以下系统映像选项: 安卓 4.2.2 Intel x86 Atom 系统映像 ARM EABI v7a 系统映像 MIP ..
发布时间:2021-11-17 21:40:17 其他开发

有效地将 CPU 寄存器中的所有位设置为 1

要清除所有位,您经常会在 XOR eax, eax 中看到异或.反面也有这样的把戏吗? 我能想到的就是用额外的指令反转零. 解决方案 对于大多数具有固定宽度指令的体系结构,答案可能是符号扩展或反转的单指令mov立即,或 mov lo/high 对.例如在 ARM 上,mvn r0, #0(不移动).看到的gcc ASM输出用于x86,ARM,ARM64,和MIPS,在 Godbolt ..
发布时间:2021-11-17 21:37:10 其他开发

$ra 注册被调用者保存还是调用者保存在 mips 中?

我读过保留的寄存器是调用者保存的,非保留的寄存器是被调用者保存的.但在我看来,$ra,一个保留的寄存器,是调用者保存的,因为调用者保存了它必须返回的地址.任何人都可以解释我缺少什么吗? 解决方案 我读过保留的寄存器是调用者保存的,未保留的寄存器是被调用者保存的. 这可能不是最好的陈述方式,而且可能是造成混乱的根源.这是一个更好的方法: 一个函数(即被调用者)必须保留 $s0 ..
发布时间:2021-11-17 01:57:17 其他开发

递归函数如何在 MIPS 中工作?

我是 MIPS 的新手(当我开始为我的大学学习 MIPS 汇编时),我在理解 MIPS 中递归函数的工作原理方面遇到了问题. 例如,我有这个程序(用 C 语言)用 MIPS 编写: int fact (int n){如果 (n 有人可以用这个或另一个递归函数的例子帮助我并解释它是如何工作的吗? 解决方案 我想分享的第一件事是,将其转换为 MIPS 的复杂性来自于单纯的函数调用, ..
发布时间:2021-07-05 19:19:26 其他开发

如何在 MIPS 中删除换行符?

所以我正忙于编写一个 MIPS 程序,它将接受一个输入字符串,然后打印该字符串的所有可能的唯一排列.(也就是如果这个词是 LoOp,LoOp 和 LOop 是一样的). 为了做到这一点,我知道我不需要在输入字符串的末尾有换行符,但我不知道要确保它没有被添加.这是我目前所拥有的: .data新队:.asciiz "\n"用户提示:.asciiz "输入不超过 20 个字母的单词:\n"单词: ..
发布时间:2021-06-07 19:59:05 其他开发

MIPS32 上 32 位整数数组的 64 位平方和

我必须在 Mips 程序集中计算数组的平方和.我正在寻找对我的代码的反馈.下面发布的代码只是一个开始,没有考虑可能的溢出情况.但是,我只是想确保这个基本代码块按预期工作 #计算平方和的函数## 输入:# $a0: 数组在内存中的地址 (*a)# $a1: 数组大小 (n)## 输出:# $v0: 结果的低 32 字节# $v1: 结果的高 32 字节## 如果数组为空,则函数返回零.#平方和:环 ..
发布时间:2021-06-02 22:21:18 其他开发

如何将存储的字符串与输入的字符串进行比较-MIPS

我正在编写一个程序,询问用户他们的温度,然后获取该输入并转换和输出所有四个温度.我需要帮助让我的用户输入读入,以便它可以在我的分支中工作,beq.我无法将输入 'f' 识别为等于存储的版本. .datatemptype: .asciiz "输入温度类型,即 f, c, k, r: "tempdegree: .asciiz "\n 输入度数:"空间:.space 2tempx: .asciiz “ ..
发布时间:2021-06-02 22:21:14 其他开发

有一个整数并在 MIPS 中打印出十六进制

如果我有一个整数,将整数打印为十六进制的代码行是什么?我知道您使用 34 作为命令,但我不确定其余部分 解决方案 您所指的“34"是 mars 模拟器中“以十六进制打印整数"的系统调用号. 系统调用参考是:http://courses.missouristate.edu/kenvollmar/mars/help/syscallhelp.html 假设您的号码在寄存器中,例如 $ ..
发布时间:2021-06-02 22:21:09 其他开发

如何计算 MIPS 中奇数正整数的总和?

如何计算 MIPS 中奇数正整数的总和?我家里有一个 MIPS 模拟器,我用来预订来帮助验证我的工作.我的大学有一个计算机实验室,其硬件由外部公司提供.我认为这个想法是大学通过课程向学生“拉皮条".对我来说,部分问题是我想验证我的代码是否正常工作,而在学校使用董事会时,但在家验证代码似乎更容易.无论如何,我认为代码应该是这样的: andi $t8, $s0, 1 #value from $s0 ..
发布时间:2021-06-02 22:21:06 其他开发

la 指令在 MIPS 中是如何翻译的?

我知道 MIPS 中的 la 分解为 lui 和 ori 但这些指令的参数是什么? 我在这里查看了这个问题 MIPS 伪指令,替换但结果lui 总是使用 4097? 考虑以下事项: .data_a: .space 4.文本主要: la $s0,_a 翻译成这个了吗? lui $at,4097原 $s0,$at,0 谢谢! 解决方案 4097 十进制是 0x1001.这 ..
发布时间:2021-06-02 22:21:03 其他开发

从 C 到 MIPS 的 mips 上的数组?

B[8] = A[i-j]; 在尝试将上述 C 表达式转换为 MIPS 时如何使用数组?我想的是这样的: lw $t0, 16 ($s7)子 $t1, $s3, $s4lw $t2, $t1 ($s6) 考虑到 $s6 持有 A$s7 --- B$s3----我和 $s4 -- j 但我不确定如何进行计算以实际获得 A [i-j] 有什么建议吗? 解决方案 好吧,首先,16 ..
发布时间:2021-06-02 22:20:59 其他开发

在 MIPS 中编写迭代

我正在用 MIPS 编写这个程序来计算 2 的幂,然后将顺序幂求和为 0.例如,如果我像下面的代码一样将 4 放入 $a0 中,我希望它计算(4^2)+(3^2)+(2^2)+(1^2) 应该是 15.它应该在它达到零之前停止.这是我目前写的内容 主要:addi $a0, $zero, 4 #put k in $a0 在这种情况下addi $a1, $zero, 0 #在当前总和中输入0addi ..
发布时间:2021-06-02 22:20:56 其他开发