QtSpim在读取字符串后削减了2个初始字符

生活银94

我已经尝试使用QtSpim 9.1.16和9.1.17,它们全部“剪切”了输入字符串的前2个字符,将它们设置为0x0,其他ASCII字符正确地保存到了缓冲区中。这是我的摘录,即使我在互联网上找到的其他代码也能得到相同的结果:

.data               # ROM area
    str_input:  .asciiz "Digita la stringa che vuoi controllare (max 10 caratteri): "

.data               # RAM area
    buffer:     .space 11

.text
.globl main
    main:   li $v0, 4
            la $a0, str_input
            syscall             # syscall to print user message
            #------
            la $a0, buffer
            li $a1, 11
            li $v0, 8
            syscall

例如,如果我输入“ 12345”,那就是内存转储:

User data segment [10000000]..[10040000]
[10000000]..[1000ffff]  00000000
[10010000]    69676944  6c206174  74732061  676e6972    D i g i t a   l a   s t r i n g 
[10010010]    68632061  75762065  6320696f  72746e6f    a   c h e   v u o i   c o n t r 
[10010020]    616c6c6f  28206572  2078616d  63203031    o l l a r e   ( m a x   1 0   c 
[10010030]    74617261  69726574  00203a29  3433000a    a r a t t e r i ) :   . . . 3 4 
[10010040]    00000035  00000000  00000000  00000000    5 . . . . . . . . . . . . . . . 
[10010050]..[1003ffff]  00000000

我是否缺少有关QtSpim的信息?

克雷格·埃斯蒂(Craig Estey)

根据我的最高评价,我添加了一个syscall 4来回显缓冲区内容,并添加了syscall 10来退出程序。

spim可能很古怪(例如,“掉在世界的边缘”)。也就是说,如果程序未正确终止。

当我添加了两个系统调用时,我为程序提供了一个“软着陆区”,用于单步执行,而“完整运行”模式则不需要。因此,我无意中掺入了该程序,从而掩盖了spim模拟器的错误。

当我恢复到您的确切程序时,便能够重现您的问题。如果文本段中的最后一条指令是单步执行中的非退出系统调用,这似乎spim很奇怪

nop在您的syscall 11之后添加[even] a可解决此问题。


我都用过,但是我更喜欢marshttp : //courses.missouristate.edu/KenVollmar/MARS/更好地组织了调试/单步,诊断消息,设置bkpt,数据视图-YMMV。

我以前已经下载并破解了两个模拟器的源代码。我一直在做一些清理工作,并添加了一些功能。我不是原始作者,但是我对代码有些熟悉。

我必须挂钩gdbspim,看看发生了什么。但是,我已经可以说,步骤和在QtSpim中运行的代码路径有些不同

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

读取整数后C无法读取字符串

来自分类Dev

如何在读取字符串中使用minibuffer-exit-hook

来自分类Dev

元素正在读取字符串数组,但无法进行比较

来自分类Dev

读取字符串后加载xml文件

来自分类Dev

awk削减字符串

来自分类Dev

使用TCL从文件读取字符串后从字符串中删除空格

来自分类Dev

从串行端口读取字符串并存储到2个不同的数组中

来自分类Dev

读取字符串,直到换行

来自分类Dev

Lua读取字符串的开头

来自分类Dev

从文件C ++读取字符串

来自分类Dev

在Haskell中读取字符串

来自分类Dev

使用sscanf读取字符串

来自分类Dev

在C ++中读取字符串

来自分类Dev

从用户读取字符串

来自分类Dev

从BufferReader读取字符串

来自分类Dev

在Haskell中读取字符串

来自分类Dev

在C ++中读取字符串

来自分类Dev

JOptionPane不读取字符串

来自分类Dev

从文件中读取字符串

来自分类Dev

从指针数组读取字符串

来自分类Dev

从 csv 读取字符串值

来自分类Dev

读取字符串IP地址以存储在2D字符串数组中

来自分类Dev

仅在找到需要的部分后才能读取字符串中的字符?[Python]

来自分类Dev

在符号后获取字符串

来自分类Dev

使用awk提取字符串的2个部分

来自分类Dev

如何在2个字符串之间获取字符串

来自分类Dev

-读取字符串字符时出错

来自分类Dev

在C中逐字符读取字符串

来自分类Dev

ifstream错误从字符串中读取字符