assembly - 在MIPS和XSPIM转换中,字符串

  显示原文与译文双语对照的内容

给出一个字符串,当我在给定这个字符串的"长号"计算器中插入这个字符串时


0x4c 0x6f 0x6e 0x67 0x4e 0x75 0x6d 0x62 0x65 0x72 0x73


1001100110111111011101100111 1001110111010111011011100010110010111100101110011

这是我第一次使用 MIPS,我找不到指导如何使用这个指南。

所以,我给了 32位,但看起来"长号"更多的是 32位? 那么让我们假设"长号"在内存中。

如果我想打印"长号",该如何工作?

我对地址和数据总线,如果它不止一个字节,如何打印,因为它不仅仅是一个地址。

我知道如果只有一个字节,如何传输数据。 如果我被搞糊涂了。

时间: 作者:

我认为问题是理解数据如何实际存储在内存中,而不是使用高级语言的抽象方式。 从你对字符串如何存储在内存中的困惑来看,我认为你应该从。

在你使用MIPS的级别上,没有"字符串" ( 仅 Zuul ) 。 没有真正的"int"或者"浮点数",你可以用它来思考它们,。 只有位( 1/0 ) 以标准方式组合在一起,用来组合使用的数据类型。 因为教授将告诉你,我们使用 8位的组,我们称为"字节"。

你的字符串中的每个字符都可以用字节表示。 看一下 http://www.asciitable.com/插件,看看如何完成这个标准。 所以'l'由一串对应于十六进制值 0 x4c的位表示,它只是小数值 76.

值存储在内存中的单个字节中。 下一个字母(''。以十六进制值 0 x6f表示) 存储在下一个顺序字节中。 下一个字母存储在下一个字节中,所有的路径都通过。 如果必须提供该连串字节的名称,则可以能将它称为字符"字符串"。 : )

如 @Michael 所说,你需要知道零终止的ASCII字符串( 也称为ASCIIZ字符串) 在末尾有一个附加字符。 字符由十六进制值 0 x00 ( 普通 old ) 表示,你将看到它被引用为''。

还有一件事,你需要找到更好的ASCII-to-Hex翻译工具。 你使用的那个没有正确处理"空间"字符。 空格对应于ASCII字符 0 icalendar ( 十进制 32 ) 。 如果你忘记了,你的字符串是"longnumbers"。 如果尝试在其中放置 0 x00,则字符串将在"长"之后结束。

作者:
...