问题标签 [rars-simulator]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
riscv - RISC-V 教育十六进制代码列表
我想将我的教育用途模拟器从 Y86 更改为 RISC-V。我喜欢 Y86 组合的 hexacode+listing 文件,比如
RISC-V 有类似的东西吗?
assembly - RISC-V 汇编语言程序将华氏温度转换为摄氏温度
将华氏温度值转换为摄氏温度的汇编语言程序。要实现的公式是 = ( − 32) × 5⁄9。所需的数据段:
- F_temp(字)
- C_temp(字)
- 值 32(字节)
- 值 5(字节)
- 值 9(字节)
- 提示输入(字符串)
- 输出消息(字符串)
堆栈用于将华氏值传递给子程序,并将计算出的摄氏值返回给主程序。为此将实施动态堆栈分配。华氏温度和计算出的摄氏温度值都将存储在数据段中定义的分配内存位置中。
到目前为止,我所拥有的是这段代码。当我运行程序时它说
它应该要求用户输入华氏温度。但它没有这样做。此外,在用户输入数字后,它应该将其转换为摄氏度并显示结果。
assembly - Rars1_5 "存储地址未与字边界对齐"
因此,正如您从标题中看到的那样,我面临一个问题,我使用sw
命令将“虚拟”数据初始化为 0,这样我就可以存储其他字母。这是我的代码,我也使用过sb
,但出现“超出范围”错误。
我在 main 之前使用.align 2
,有人能告诉我为什么我会收到这个错误吗?
string - 如何摆脱 RISC-V 中的“\n”?
我的任务是创建一个程序,该程序将读取文件的名称,然后将其内部复制到其他文件,该文件的名称也从输入中读取。我自己编写了程序,但它似乎什么也没做。
进一步实验,我发现,在读取第一个字符串时,程序还会在其中保存一个'\n'
字符,这显然会导致搜索目标文件时出现一些问题。我想出了一个我不完全喜欢的解决方案,这就是为什么我在这里征求对代码和整体进一步改进的意见,也许吧?
我只固定了负责将文件名写入缓冲区的部分,直到'\n'
出现。
system-calls - 是否应该在发出环境调用之前保存临时寄存器?
在以下 RISC-V 汇编代码中:
在使用之前是否应该将任何临时 (t) 寄存器保存到堆栈中ecall
?使用ecall
时,会发生异常,内核模式开启,代码从异常处理程序中执行。一些信息在异常发生时会保存下来,比如EPC
and CAUSE
,但是临时寄存器呢?出于安全原因,环境调用被认为不像过程,但它们看起来像。在这种情况下,过程调用约定是否仍然适用?
assembly - 可以告诉我在程序集(riscv32)中做错了什么,它错误地打印了警告。我正在使用 rars 模拟器
我的代码有问题,它只是打印“方向无效”,并且矩阵信息是正确的,我的输入是这个 .word 3 1 1 1 0 5 2 2 0 1 6 4。
以下是该程序应如何工作的说明。
敌舰被放置在一个名为“ships”的字符串中,该字符串存在于区域数据 (.data) 中,必须在游戏开始时由 insert_ships 函数读取。弦船具有以下模式。在插入的第一行中告知船舶的数量。以下每一行都有一艘船。指定船只的行有 4 个值,用空格分隔,如下所示:第一个值是船的布局,0 表示水平船,1 表示垂直船;第二个值是船的长度;第三个值是船舶的起跑线;第四个值是船的起始列。观察示例: 3 1 5 1 1 0 5 2 2 0 1 6 4
船舶的定位高于结果如下定位:
插入船只的功能必须验证船只定位的有效性,在以下情况下会生成错误消息:
- 船只的位置无效。示例:0 3 11 7
- 船舶根据矩阵的维度进行外推。示例:0 4 2 7
- 重叠发生在船上。示例 0 4 2 2 和 1 3 0 3
现在是完整的代码,它有什么问题?
image - Risc-V:如何正确读取位图图像并将其显示在 rars 位图显示器中?
我正在使用 Rars Risc-V 模拟器,我必须从我的计算机中读取 24 位位图图像并将其显示在 rars 中。我所做的是使用 risc-v 系统调用打开图像,然后我尝试使用读取调用来读取它。
但是这样做我得到了这个结果:
.
有谁知道如何正确地做到这一点?