spim相关内容
我是学习 MIPS 汇编代码的新手,我们得到了第一个编码任务.当我运行我的程序时出现错误(它应该是我们必须编写的另一个函数的测试器)说 "spim: (parser) 标签在文件/home/jlr247/215_A2_work/jlr247-a2-A.s 的第 13 行第二次定义主要的:^" 我的代码是: .data.align 4_arrA: .space 400_arrB: .s
..
我正在做一个简单的停车场程序,它接受用户的输入,并根据输入分支到一个标签. 问题是,如果用户输入的数据类型不同于整数(如“a"或任何字母),程序总是会突然结束 以下是我的代码(与输入部分相关): li $v0,5 #系统调用以获取用户输入系统调用里 $t1,2beq $v0,1,park # 如果输入为 1,则转到代码的“park"部分beq $v0,2,exit # 如果输入为
..
作为第一次使用 MIPS 的我似乎很困惑.我有一个同学说那里XSPIM是大端.但是,在 Linux 中它是小端字节序.如果 MIPS 可以是小端或大端.有没有办法在 XSPIM 中找出它在您的机器中是按小端还是大端运行? 解决方案 SPIM 采用运行它的机器的字节序.(http://www.dsi.unive.it/~arcb/LAB/spim.htm#Byte%20Order) 这
..
我正在尝试在 mips(使用 spim 模拟器)中提出一个基本的“如果是,则执行此操作,如果否则退出"算法.然而,无论是否给出 yes 或 no(在本例中为 y 或 n),bne 总是分支.我对 mips 很陌生,所以我可能遗漏了一些大的东西……或者我不知道的小东西.这是我所拥有的: .data欢迎:.asciiz "Hello World!\n"开始:.asciiz "\n输入一个数学运算符:
..
在SPIM上运行已编译的程序集文件时遇到很多麻烦.基本上,我想编写一个c ++文件,然后生成一个.s文件,可以在SPIM中打开它而不会出现错误.这意味着程序集必须使用MIPS I指令(某些MIPS II)在MIPS32 ABI中.我该怎么做呢?现在,我正在使用g ++,但是尝试在SPIM中运行该文件时出现严重错误.我正在使用MAC OSx 10.6.3,并且正在Linux机器上进行远程编译.我可以
..
我试图使用sbrk进行动态内存分配.但是,作为SPIM和MIPS的新手,我无法做到这一点.我为它绘制了一个粗略的代码. . data var: .word 25 .text main: li $v0, 9 la $v0, var lw $a0, var syscall #
..
我试图将MIPS寄存器中的无符号整数值作为ASCII文本打印到控制台. 换句话说,让我们假设$ a0中包含"0x4ab3c823".我想打印出"4ab3c823"以在xSPIM中进行控制台. 这是我的尝试.我一直在获取十进制值,而不是ASCII.这只是整个程序的一部分,因此我将其余部分剪掉. .data printspace: .space 8 .text printHex:
..
即使未加载程序,QtSPIM MIPS汇编器也已经显示了几行代码,例如可以在我认为这是加载程序所必需的,但是我会对准确的解释非常感兴趣,以了解所有细节. 解决方案 QtSPIM程序由两部分组成:异常处理程序和用户程序. 默认的异常处理程序包括一个简短的用户模式启动代码序列(加载在0x00400000以及位于0x80000180的内核内存.ktext中的实际异常处理程序, 在加载
..
我是使用SPIM MIPS模拟器的菜鸟. 当我尝试将26个单词的数组初始化为0时,标题X出现了26次错误.我已将问题隔离为存储字操作sw $t0, 0($s3),但不知道我在做什么错. 代码: .data theArray: .space 104 theArraySz: .word 26 .text .globl main main: move $t0,
..
我试图通过将函数压入堆栈来编程一个函数以使用除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
..
li $s5, 2 add $a0, $s5, $0 li $v0, 4 syscall 为什么系统输出在spim中为(null)? 解决方案 看起来您正在尝试打印int,但是您提供的系统调用代码代表“打印字符串". 由于没有名为2的标签(因此,没有从标签2的地址开始的字符串),控制台将打印出(null). 尝试 li $a0, 2 #integer to be pr
..
我目前正在上汇编课程,并且在执行以下作业时遇到麻烦. 编写一个程序(在适当的提示下)读取20个整数的序列并将其存储在数组中,然后调用以下三个函数并以可读格式打印结果. 这三个功能是: smallestLargest :计算数组中的最小和最大值. 可整除:计算数组中可被4整除的整数的数量 SumProduct::计算整数之和和. 我编写了汇编代码(如下)以尝试解决此问题,但是除了数
..
我是汇编语言的新手,我对乘法很困惑. 我在这里阅读快速教程: http://logos.cs.uic.edu/366/notes/mips%20quick%20tutorial.htm 它说在我使用mult $t0, $t1之后,结果存储在Hi和Lo中,我知道这些是mult和div的特殊寄存器,但是如何访问它们? 让我说我做mult $t0, $t1,其中$t0和$t1都是2.如
..
确定.asciiz字符串的大小时,我应该考虑 考虑终止符吗? 例如: .data string: .asciiz "Hello" “字符串"的大小是5还是6(字节)? 谢谢. 解决方案 如果您询问该字符串存储在内存中的字节数为6字节 如果您要问一个计算字符串长度的函数(例如strlen C函数)应该返回什么,则应该为5
..
如何在MIPS中将整数读入局部变量?是否有可能?问题要求我使用将整数变量分配为局部变量的概念. #我的教科书中的一个问题.顺便说一句,不是功课! 先谢谢您! :D 解决方案 li $v0, 5 syscall move $t0, $v0 该值现在在$ t0中.这将从控制台读取整数.
..
我正在尝试使用一些小型编译器,同时尝试在此处学习一些MIPS.这是我的问题: MIPS的li指令(立即加载)会像这样 li $5,100 这会将100加载到寄存器5中. 但是,我现在需要将浮点数加载到寄存器中,并且正在努力寻找一种方法来做...因为$ 5,2.5的li无效. 有人有什么建议吗? 我正在C语言中工作,我想我可以以某种方式获取正在使用的float的整数
..
我正在尝试计算(a * c)-(b/d),到目前为止,我的汇编代码是: .data A: .word 5 B: .word 6 C: .word 3 D: .word 2 .text lw $t0, A lw $t1, C mul $t0, $t0, $t1 lw $t1, B lw $t2, D div $t1, $t1, $t2 sub $t0, $t0, $t1 li $v0,
..
我写在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
..