mips相关内容

轮询I / O(MIPS)

我正在尝试在MIPS中编写一个程序,该程序使用轮询从键盘读取字符,然后使用内置的键盘和显示MMIO模拟器显示它。不幸的是,我无法理解所使用的寄存器和控制位背后的概念,但一直试图从在线示例中找出它。 这就是我所拥有的到目前为止写的: .data .text .globl main main: .eqv RCR 0xffff0000#接收器控制寄存器(就绪位) . ..
发布时间:2018-08-24 17:46:52 其他开发

以mips读取和打印整数

我的程序假设读取一个整数并将其打印回用户,但无论输入什么,每次只打印268501230。任何帮助将不胜感激。 .data prompt2:.asciiz“请输入值:” array1:.space 40 array2:。space 40 buffer:.space 4 .text main: #Prints the prompt2字符串 li $ v0,4 ..
发布时间:2018-08-06 20:42:43 其他开发

使用系统调用生成随机数

我正在尝试生成一个0-99(含)的随机整数,但是在使用42系统调用时,我很难找到它存储值的位置。 到目前为止,我有: li $ a1,100 li $ v0,42 系统调用 我不确定生成的值存储在哪里,所以我可以使用它。 / p> 解决方案 来自系统调用帮助页面: $ a0 是伪随机数生成器ID, $ a1 是上限,返回的随机数也将包含在 $ a0 中。 ..
发布时间:2018-08-06 20:05:09 其他开发

MIPS汇编 - 从具有十六进制值的文件读取

这里是我的问题。 我想使用MIPS汇编从txt / dat文件读取数据。问题是文件中的每个文件都是十六进制的,例如0x54ebcda7。当我尝试读取并将其加载到寄存器中时,MARS模拟器用ascii值读取它。我不想要这个,需要那个十六进制数的“实际值”?我该怎么做? 解决方案 我只是想说明如何在C中完成这项工作,这应该很简单足够让你转换成MIPS汇编: //假设文件中的数据已 ..
发布时间:2018-06-07 17:06:50 其他开发

在MIPS中将十六进制字符转换为十进制等效

如何获取单个ASCII字符并将其转换为MIP中的十进制等值线? 我是否必须具有某些条件才能从中减去一定量ascii代码使它成为十进制表示形式? 解决方案 这是Pax写的一个简单实现(它假定十六进制数字 - A到F总是大写) 文件hextodec.c #include / * *将ASCII字符转换为其十进制等值。 *错误时返回-1。 ..
发布时间:2018-06-07 17:03:52 其他开发

更改哪个libc.so被链接?

我试图在我的路由器上为MIPSEL进行交叉编译。我在汇编中得到了一些东西,但现在我转向尝试编译基本的C代码。 目前只有简单的hello world c代码,并且使用mipsel-linux-gnu-gcc编译器,该编译器适用于汇编。 编译器命令: mipsel-linux-gnu-gcc - L / home / uname / devel / extr / squashfs ..
发布时间:2018-04-21 11:21:27 其他开发

GCC MIPS-32调用约定/堆栈帧定义

对于MIPS-32处理器体系结构,似乎没有明确的标准化堆栈帧和C语言调用约定(注册表使用等)。也就是说,它似乎完全取决于汇编/编译器工具链来定义自己的堆栈帧和调用约定。我一直在努力寻找关于GCC编译器用于MIPS-32指令集的约定的明确参考。我特别在Cygwin上使用GCC交叉编译器,该编译器针对在eCos开源内核的嵌入式环境中使用的MIPS-32内核。 任何引用定义关于这个领域的GCC f ..
发布时间:2018-04-20 17:16:35 其他开发

无帧指针获取调用堆栈

我正在尝试获取调用堆栈回溯。不能包含“execinfo.h”因此不能使用 int backtrace(void ** buffer,int size); 。 另外,尝试使用 __ builtin_return_address(),但是按照: http://codingrelic.geekhold.com/2009/05/pre-mortem-backtracing.html ...在某些体 ..
发布时间:2018-04-20 16:27:53 其他开发

错误“gnu / stubs-32.h:没有这样的文件或目录”同时编译Nachos源代码

我试图在笔记本电脑上安装Nachos,笔记本电脑上安装了Ubuntu 11.04。 代码是用C编写的,所以构建它我假设我需要交叉编译器。这是我的问题所在。我使用命令 wget http://mll.csie.ntu.edu下载了MIPS交叉编译器的源代码。 tw / course / os_f08 / assignment / mips-decstation.linux-xgcc.g ..
发布时间:2018-04-20 15:44:10 其他开发

MIPS中的函数(过程)

我是MIPS语言的新成员,我不明白MIPS汇编语言中的函数(过程)是如何工作的。这里是但我会指定我的问题: 什么: jal jr li> $ ra 语言和重要的东西 $ $我们如何在创建函数或(过程)时使用它们? b $ b 解决方案 首先,您可能需要检查这个快速MIPS参考。它真的帮助了我。第二,解释 jal , jr 以及 $ b code> $ RA 。 jal ..
发布时间:2018-04-17 11:22:55 其他开发

浮点加法与浮点乘法的相对速度是多少?

几十年前,写数字代码是值得的,以避免使用乘法和除法,而是使用加法和减法。一个很好的例子是使用转发差异来评估多项式曲线,而不是直接计算多项式。 这是否仍然如此,或者现代计算机体系结构提前到*,/不再比+, - ? b $ b 具体而言,我对运行在现代典型x86芯片上的编译C / C ++代码感兴趣,这些代码有大量的板上浮点硬件,而不是试图在软件中执行FP的小型微代码。我意识到流水线和其他架 ..
发布时间:2017-12-19 22:43:17 其他开发

用MIPS汇编读取文件

我试图编写一个程序,读取一个.dat文件中对应于LED模拟器中显示的不同颜色的字符。 x = off,R = red等。我的问题是,我不知道我在做什么错误打开.dat文件。我环顾四周,尽我所能想到,但每次组装和运行,我得到一个在$ v0 -1表示一个错误。这是我打开/阅读/关闭文件的代码: .data fin:.asciiz“maze1.dat “#输入文件名 缓冲区:.asciiz” ..
发布时间:2017-11-03 19:15:11 其他开发

计算机原理 - MIPS流水线的一个疑问

在使用张晨曦编写的MIPS模拟器模拟流水线工作(定向已关闭)时,有一个疑问,如图所示: 为什么红框中的IF在第8个时钟周期才进行呢? 个人认为第5个时钟周期就可以进行了,虽然结果和第8个时钟周期一样,但是处理器是不是实际上应该第5个时钟周期就尝试进行呢? ..
发布时间:2017-09-06 10:19:12 其他开发

在MIPS中将整数转换为双精度

我想划分两个值,分别位于 $ tn 中。 值得到双重结果,但函数 div 只返回该分区的整数部分,任何人都可以帮助? 我需要转换 $ t1 和 $ t2 到 $ f0 和 $ f2 ? 我该怎么做? li $ t1,2 li $ t2,5 div $ f0,$ t2,$ t1 这给我一个错误,因为它期望一个 $ tn 值不是一个 $ fn 值 ..
发布时间:2017-07-11 23:28:31 其他开发语言

编译C为Mips架构

我已经看到了几种方法来做到这一点(到目前为止,我没有尝试过一对夫妇,但我想隔离这一个为了方便) 一个方法做这个威盛gcc和我喜欢​​这只是继续打墙。 我使用debian7并且可以使用任何其他的味道(我的时间是希望避免qemu casue我想要一个更小的规模。) 我在这里找到这个例子。 http://moozing.wordpress.com/2011/04/05/cross-c ..
发布时间:2016-12-23 14:32:53 其他开发

编译基于MIPS的代码库工具链的参数?

我在我的WIN 7机器上安装codesourcery交叉编译工具链为mips32架构。我想先为基于MIPS32的路由器编译一个简单的“阶乘”二进制。从互联网上的一点搜索,我发现它是基于MIPS32大端序。 #cat / proc / cpuinfo 系统类型:96338W2 处理器:0 cpu型号:BCM6338 V1.0 BogoMIPS:239.20 等待指令:no 微 ..
发布时间:2016-12-22 13:35:56 其他开发

C / C ++到MIPS组装

我知道要编译到汇编,我应该使用 -S 选项与 gcc 或 g ++ ,但是如何获得MIPS程序集? 我尝试了 g ++ -march = mips2 dll.c 给出错误 dll.c:1:0:error:bad value(mips2)for -march = switch 我看到一个建议是编译命令 mips_gcc 我找不到如何安装该编 ..
发布时间:2016-12-22 12:00:34 其他开发

MIPS如何比较从输入中获取的字符?

我的程序询问用户他/她正在考虑的号码是否在列表中。用户输入y或n。如何检查用户是否在汇编中输入y或n?如果等于121(对于'y'的十进制ASCII码)或分支,如果值等于110(对于'n' $ b的十进制ASCII码),则将用户输入放入寄存器和分支就足够了 $ b 提前感谢 解决方案 可以使用系统调用代码读取字符系统调用代码12,那么字符(二进制ASCII代码)将被存储在$ v0中,然后 ..
发布时间:2016-12-21 15:03:34 其他开发

如何在c ++中实现AND和OR操作

我有一个任务,即iam应该在C ++中实现MIPS处理器,并且MIPS指令之一是“AND”,而“OR”则MIPS指令表示为和$ s1,$ s2, $ s3 这意味着 $ s1 = $ s2(和)$ s3 $ s2和$ s3 寄存器表示为位,,,我如何使用c ++执行“AND”和“OR”操作 解决方案 p>在C ++中有二进制,逻辑和和或操作符。 int a,b = 1; in ..
发布时间:2016-10-30 16:36:12 C/C++开发