spim相关内容

为什么 QtSPIM 告诉我“第二次定义标签"?

我是学习 MIPS 汇编代码的新手,我们得到了第一个编码任务.当我运行我的程序时出现错误(它应该是我们必须编写的另一个函数的测试器)说 "spim: (parser) 标签在文件/home/jlr247/215_A2_work/jlr247-a2-A.s 的第 13 行第二次定义主要的:^" 我的代码是: .data.align 4_arrA: .space 400_arrB: .s ..
发布时间:2021-06-02 22:19:28 其他开发

处理非数字用户输入到 MARS 读整数系统调用?

我正在做一个简单的停车场程序,它接受用户的输入,并根据输入分支到一个标签. 问题是,如果用户输入的数据类型不同于整数(如“a"或任何字母),程序总是会突然结束 以下是我的代码(与输入部分相关): li $v0,5 #系统调用以获取用户输入系统调用里 $t1,2beq $v0,1,park # 如果输入为 1,则转到代码的“park"部分beq $v0,2,exit # 如果输入为 ..
发布时间:2021-06-02 22:18:56 其他开发

MIPS XSPIM 不同的字节顺序混乱

作为第一次使用 MIPS 的我似乎很困惑.我有一个同学说那里XSPIM是大端.但是,在 Linux 中它是小端字节序.如果 MIPS 可以是小端或大端.有没有办法在 XSPIM 中找出它在您的机器中是按小端还是大端运行? 解决方案 SPIM 采用运行它的机器的字节序.(http://www.dsi.unive.it/~arcb/LAB/spim.htm#Byte%20Order) 这 ..
发布时间:2021-06-02 22:18:50 其他开发

如何在mips中比较预存字符串和用户输入字符串

我正在尝试在 mips(使用 spim 模拟器)中提出一个基本的“如果是,则执行此操作,如果否则退出"算法.然而,无论是否给出 yes 或 no(在本例中为 y 或 n),bne 总是分支.我对 mips 很陌生,所以我可能遗漏了一些大的东西……或者我不知道的小东西.这是我所拥有的: .data欢迎:.asciiz "Hello World!\n"开始:.asciiz "\n输入一个数学运算符: ..
发布时间:2021-06-02 22:18:02 其他开发

将C ++代码转换为SPIM的程序集

在SPIM上运行已编译的程序集文件时遇到很多麻烦.基本上,我想编写一个c ++文件,然后生成一个.s文件,可以在SPIM中打开它而不会出现错误.这意味着程序集必须使用MIPS I指令(某些MIPS II)在MIPS32 ABI中.我该怎么做呢?现在,我正在使用g ++,但是尝试在SPIM中运行该文件时出现严重错误.我正在使用MAC OSx 10.6.3,并且正在Linux机器上进行远程编译.我可以 ..
发布时间:2021-04-23 20:01:22 C/C++开发

使用sbrk的MIPS动态内存分配

我试图使用sbrk进行动态内存分配.但是,作为SPIM和MIPS的新手,我无法做到这一点.我为它绘制了一个粗略的代码. . data var: .word 25 .text main: li $v0, 9 la $v0, var lw $a0, var syscall # ..
发布时间:2020-07-08 19:43:23 其他开发

打印MIPS注册内容

我试图将MIPS寄存器中的无符号整数值作为ASCII文本打印到控制台. 换句话说,让我们假设$ a0中包含"0x4ab3c823".我想打印出"4ab3c823"以在xSPIM中进行控制台. 这是我的尝试.我一直在获取十进制值,而不是ASCII.这只是整个程序的一部分,因此我将其余部分剪掉. .data printspace: .space 8 .text printHex: ..
发布时间:2020-05-09 23:11:08 其他开发

QtSPIM:无需加载程序即可显示的代码说明

即使未加载程序,QtSPIM MIPS汇编器也已经显示了几行代码,例如可以在我认为这是加载程序所必需的,但是我会对准确的解释非常感兴趣,以了解所有细节. 解决方案 QtSPIM程序由两部分组成:异常处理程序和用户程序. 默认的异常处理程序包括一个简短的用户模式启动代码序列(加载在0x00400000以及位于0x80000180的内核内存.ktext中的实际异常处理程序, 在加载 ..
发布时间:2020-05-09 23:09:17 其他开发

MIPS“未对齐地址,例外5";错误

我是使用SPIM MIPS模拟器的菜鸟. 当我尝试将26个单词的数组初始化为0时,标题X出现了26次错误.我已将问题隔离为存储字操作sw $t0, 0($s3),但不知道我在做什么错. 代码: .data theArray: .space 104 theArraySz: .word 26 .text .globl main main: move $t0, ..
发布时间:2020-05-09 23:08:20 其他开发

使用多个mips参数> 4

我试图通过将函数压入堆栈来编程一个函数以使用除4以外的其他参数(因为我的mips版本仅支持$ a0- $ a3),但是我的代码不正确.这是我的主要代码段中的代码: li $t0,40 #temp value for our 5th arg. addi $sp, $sp, -4 #decrement stack pointer by 4 sw $t0, 0($sp) #save the va ..
发布时间:2020-05-09 23:07:44 其他开发

Mips输出系统调用

li $s5, 2 add $a0, $s5, $0 li $v0, 4 syscall 为什么系统输出在spim中为(null)? 解决方案 看起来您正在尝试打印int,但是您提供的系统调用代码代表“打印字符串". 由于没有名为2的标签(因此,没有从标签2的地址开始的字符串),控制台将打印出(null). 尝试 li $a0, 2 #integer to be pr ..
发布时间:2020-05-09 23:06:44 其他开发

关于编写汇编以调用数组上的函数的MIPS问题

我目前正在上汇编课程,并且在执行以下作业时遇到麻烦. 编写一个程序(在适当的提示下)读取20个整数的序列并将其存储在数组中,然后调用以下三个函数并以可读格式打印结果. 这三个功能是: smallestLargest :计算数组中的最小和最大值. 可整除:计算数组中可被4整除的整数的数量 SumProduct::计算整数之和和. 我编写了汇编代码(如下)以尝试解决此问题,但是除了数 ..
发布时间:2020-05-09 23:06:15 其他开发

从多重技巧中获得结果

我是汇编语言的新手,我对乘法很困惑. 我在这里阅读快速教程: http://logos.cs.uic.edu/366/notes/mips%20quick%20tutorial.htm 它说在我使用mult $t0, $t1之后,结果存储在Hi和Lo中,我知道这些是mult和div的特殊寄存器,但是如何访问它们? 让我说我做mult $t0, $t1,其中$t0和$t1都是2.如 ..
发布时间:2020-05-09 23:05:31 其他开发

MIPS:.asciiz的大小?

确定.asciiz字符串的大小时,我应该考虑 考虑终止符吗? 例如: .data string: .asciiz "Hello" “字符串"的大小是5还是6(字节)? 谢谢. 解决方案 如果您询问该字符串存储在内存中的字节数为6字节 如果您要问一个计算字符串长度的函数(例如strlen C函数)应该返回什么,则应该为5 ..
发布时间:2020-05-09 22:56:08 其他开发

在MIPS中将整数读入局部变量

如何在MIPS中将整数读入局部变量?是否有可能?问题要求我使用将整数变量分配为局部变量的概念. #我的教科书中的一个问题.顺便说一句,不是功课! 先谢谢您! :D 解决方案 li $v0, 5 syscall move $t0, $v0 该值现在在$ t0中.这将从控制台读取整数. ..
发布时间:2020-05-09 22:55:51 其他开发

MIPS(或SPIM):加载浮点数

我正在尝试使用一些小型编译器,同时尝试在此处学习一些MIPS.这是我的问题: MIPS的li指令(立即加载)会像这样 li $5,100 这会将100加载到寄存器5中. 但是,我现在需要将浮点数加载到寄存器中,并且正在努力寻找一种方法来做...因为$ 5,2.5的li无效. 有人有什么建议吗? 我正在C语言中工作,我想我可以以某种方式获取正在使用的float的整数 ..
发布时间:2020-05-09 22:51:58 其他开发

在MIPS的HI和LO寄存器存储值

我写在MIPS某些code和我来那里的要求是存储结果,暂时在 HI 和 LO 特殊寄存器(均为8个字节宽)。这些指令是在我手上: DIVU S,T&LO LT; - S DIV吨;喜< - S模Ť multu S,T高/低< - S *吨; 因此​​, DIVU 专卖店在 LO在 HI 和/分工导致code>,而 multu 保存乘法导致 LO (下8个字节)和 HI ..
发布时间:2016-07-18 20:57:39 .NET Framework