mars-simulator相关内容
我正在尝试执行一个非常简单的程序,但不断收到错误:Invalid language element lw $t0, 0($a0) #load integer from $a0->$t0 beq $t0, 1, 1dimensional #branch if $t0=1 1dimensional: do something 我不明白为什么会出现此错误。
..
我正在学习火星上的MIPS,根据以下代码,我感到困惑。因为当我将输入的字符串加载到保留空间时,即使没有终止符,代码也能正常输出。这是为什么呢? 我认为每个字符串都需要一个终止符,以便输入缓冲区知道何时停止。 有没有一张是自动填的还是.?提前谢谢您。 代码为: # Filename: mips3.asm # Author: me # Program to read a string from
..
我刚开始使用MIPS,我找不到如何打开我保存的文件。我在Downloads文件夹下保存了一个.asm文件,但是当我尝试在MARS中打开文件并导航到同一个Downloads文件夹时,该.asm文件没有出现。 我正在MacOS上使用MARS。 推荐答案 我想我必须允许访问JAR文件的查找器目录。Mac最初不允许mars访问我的任何目录。
..
如何从索引位于寄存器中的地址加载和存储字?在汇编中MIPS 示例: lw $t0, $a0($t1) and sw $t0,$a0($t1) 这些说明只是我要做的(不正确) 谢谢 推荐答案 尝试执行此操作,而不是仅使用lw语句: add $a0 $a0 $t1 lw $t0 0($a0) sub $a0 $a0 $t1 仅当您要将$a0还原为原始值时,才需要
..
我有以下代码,但我不断收到算术溢出错误。我试图解决的问题是将两个31位数字相乘,并将结果存储在$T2$T3中,然后打印出正确的结果。似乎我已经编写了两个要相乘的数字的代码,最终结果是一个31位的数字。 我很乐意缩小我觉得出错的范围,但我真的看不出需要在哪里进行更改以及需要进行哪些更改。 # program to multiply two 31 bit binary numbers (A
..
我正在尝试释放动态分配的堆内存空间 我尝试运行这段简单的代码,但一直收到相同的错误: 请求(-40)为负堆数量(Syscall 9) .text li $v0,9 li $a0,40 syscall li $v0,9 li $a0,-40 syscall 有人能帮我理解为什么它不工作吗? 是否有其他释放空间的方法? 推荐答案 MARS不支持带有负参数的sbrk,
..
我是MIPS汇编语言编程的初学者,我想知道读入数字后如何打印数字的第一位。 .data number_1: .word .text #read in first number li $v0, 5 syscall sw $v0, number_1 #print first digit li $v0, 1 lw $a0, number_1 syscall #end program li
..
我正在编写一个程序,询问用户他们的温度,然后获取该输入并转换和输出所有四个温度.我需要帮助让我的用户输入读入,以便它可以在我的分支中工作,beq.我无法将输入 'f' 识别为等于存储的版本. .datatemptype: .asciiz "输入温度类型,即 f, c, k, r: "tempdegree: .asciiz "\n 输入度数:"空间:.space 2tempx: .asciiz “
..
如果我有一个整数,将整数打印为十六进制的代码行是什么?我知道您使用 34 作为命令,但我不确定其余部分 解决方案 您所指的“34"是 mars 模拟器中“以十六进制打印整数"的系统调用号. 系统调用参考是:http://courses.missouristate.edu/kenvollmar/mars/help/syscallhelp.html 假设您的号码在寄存器中,例如 $
..
好的,我尝试清除 MARS(mips 汇编程序)的默认提示 i/o,并且真诚地,不知道如何做到这一点.在程序运行期间,我可以使用哪些代码或系统调用来刷新屏幕? 编辑:抱歉信息不全.我说的是 MARS 中存在的“模拟 MIPS 控制台输出/输入".我的问题是是否可以在程序运行期间清除此控制台以及任何代码实现. 解决方案 有两种基本方法可以做到这一点,但它们都涉及捕获 clear 命令的
..
我正在做一个简单的停车场程序,它接受用户的输入,并根据输入分支到一个标签. 问题是,如果用户输入的数据类型不同于整数(如“a"或任何字母),程序总是会突然结束 以下是我的代码(与输入部分相关): li $v0,5 #系统调用以获取用户输入系统调用里 $t1,2beq $v0,1,park # 如果输入为 1,则转到代码的“park"部分beq $v0,2,exit # 如果输入为
..
你如何在 MIPS 中接受一个浮点数的输入?我试过使用: li.s $f0, 6系统调用 但我一直发现线路有错误. 解决方案 li $v0, 6 系统调用 //读取的浮点值会在$f0寄存器中
..
如果在 MARS 中的 MIPS 汇编语言程序的末尾放置 jr $ra,您将收到一条错误消息: 无效的程序计数器值:0x00000000 以下示例 1 失败: .datatheMsg: .asciiz "Hello World\n";.文本.globl 主主要: li $v0, 4la $a0, theMsg系统调用jr $ra 以下示例 2 有效: .datatheMsg: .
..
我有以下数据段 .dataa: .byte 0x11.align 1b: .word 0x22334455 假设地址“a"为 0x10010000,那么 b 处的字的预期地址为 0x10010002,但 MARS 将字存储在 0x10010004,忽略显式的“.align"指令.顺便说一句,我使用 MARS MIPS 模拟器(MacBook Pro 上的 4.5 版)来组装上述代码. 因
..
执行以汇编语言编写的程序时,计算CPU执行的指令总数的最快方法是什么?对于小型程序,可以手动执行此操作,但是对于大型程序?我使用Mars4在汇编中编写. 解决方案 单击工具-> 指令计数器-> 连接到MIPS .然后运行您的程序.
..
我正在努力寻找一种有效的方法,以使用syscall 8来检查用户是否输入了只有数字(0〜9)的有效输入 输入为4个字节长(1个字), 我需要检查每个字节(字符)是否为数字, 我想尝试运行一个循环,并检查其ascii值是否低于48("0" ascii decimel值), 或高于57("9" ascii分度值), 这是一种有效的方法吗? 如果是这样,那么在MIPS中实现这种i
..
我到处搜寻了,我收集了管道或其他东西.我检查了其他程序,似乎有一个单周期&多周期:单周期和多周期MIPS的时钟周期 我该如何区分哪个周期的差异. 例如,这将是几个时钟周期: li $a0, 0 # $a0 = 0 li $t0, 10 # Initialize loop counter to 10 Loop: add $a0, $a0, $t0 addi $t0, $t0,
..
.text emitchar: lui $t0,0xffff polling: lw $t1,8($t0) andi $t1,$t1,0x0001 beq $t1,$zero,polling sw $a0,0xc($t0) .data 有人告诉我这是怎么做的,但是当我运行带有显示器和键盘的模拟器时,屏幕上仍然没有输出.我在做什么错了? 解决方案 启动代码
..
我有一个作业,其中我必须解释有关以下MIPS汇编代码的一些事情: .data x: .word 4711 y: .word 10 z: .word 0x0A91 e: .word 0 .text .globl main main: lw $2, x lw $3, y lw $4, z add $2, $2, $3 sub $3, $2, $4 sw $3, e li $2, 10 sysc
..
我使用“编译器资源管理器"将c ++转换为MIPS 但由于%hi和%lo ,它在MARS中无法正常运行 我知道我应该更改零件,但是我不知道如何更改... 请帮助 $L5: lui $2,%hi($LC1) lwc1 $f0,%lo($LC1+4)($2) lwc1 $f1,%lo($LC1)($2)
..