assembly - MIPS:如何操作存储在程序参数中的字符串?
问题描述
所以基本上程序的输入是程序参数部分中的 2 个单独的字符串。它们可以是 0x...(十六进制)或 0b...(二进制)。我到目前为止的代码是:
li $v0, 36
lw $t1, ($a1)
lb $t2, 2($t1)
syscall
li $v0, 36
lw $t3, 4($a1)
lb $t4, 2($t3)
syscall
' li $v0, 36
s 只是打印来检查我是否得到了价值。
主要问题是$t1
并且$t3
具有正确的内存地址。我可以看到在$a1
的内存地址中为字符串位置存储了两个单独的内存地址。$t1
并$t3
包含那些,而$t2
应该$t4
转移并阅读第二个字符。
出于某种原因,无论程序参数的输入是什么,它总是打印 2。如果我将系统调用更改为 34,它将打印0x00000002
,如果我将其更改为 11 以打印一个字符,像往常一样,它将打印一个框。我只需要确定它是十六进制的 x 还是二进制的 b ,所以我可以相应地编辑输入。任何帮助都是极好的。
编辑:即使我在 2 班或 1 班时执行 syscall 11,它也会打印一个框。像 [] 而不是实际字符。
解决方案
推荐阅读
- c - 如何在 C 内核中创建和显示自定义字符?
- amazon-web-services - 将名称服务器从 AWS 指向标准主机
- javascript - 如何根据一天中的时间更改标题
- angular - 我如何将电话号码格式应用于角材料表中的单元格
- kendo-ui - kendoui 分页 - 在更改事件中识别“最后一个寻呼机”点击
- android - 如何在没有 IdlingResource 的情况下在 Espresso 中等待异步任务
- twitter-bootstrap - 如何在 bootstrao-vue 表中显示 git 日志数据?
- mongodb - 将集合值存储到变量
- node.js - 处理 .gzip 中的 API 响应,其中包含 XML 文件
- javascript - 如何在具有多级下拉子菜单的 Bootstrap v4 中实现导航栏下拉悬停?