Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Assembly 如果保留字符串';s空间作为MIPS32程序集中的.space?_Assembly_Mips_Mips32 - Fatal编程技术网

Assembly 如果保留字符串';s空间作为MIPS32程序集中的.space?

Assembly 如果保留字符串';s空间作为MIPS32程序集中的.space?,assembly,mips,mips32,Assembly,Mips,Mips32,我正在尝试保留空间,以便使用.space在其中存储字符串: .data myString: .space 16 我从老师那里得到了一个示例代码,它说我必须以空值(0)开始字符串,我不明白为什么,为什么需要这样做 提前谢谢 如果您的代码在读取缓冲区之前就明确写入了缓冲区,那么缓冲区中的内容并不重要。否则,它以0开头并不重要,因此如果作为隐式长度以0结尾的字符串读取,则它是空字符串 但您已经在这样做了:。空格用零填充。以下内容将在内存中以完全相同的16字节零结束: myString: .b

我正在尝试保留空间,以便使用.space在其中存储字符串:

.data
  myString: .space 16
我从老师那里得到了一个示例代码,它说我必须以空值(0)开始字符串,我不明白为什么,为什么需要这样做


提前谢谢

如果您的代码在读取缓冲区之前就明确写入了缓冲区,那么缓冲区中的内容并不重要。否则,它以0开头并不重要,因此如果作为隐式长度以0结尾的字符串读取,则它是空字符串

但您已经在这样做了:
。空格用零填充。以下内容将在内存中以完全相同的16字节零结束:

myString:
  .byte 0
  .space 15
如果您想在源代码中特别明确,在开始时有一个0,那么这是值得考虑的。(例如,如果您将此地址传递给在第一次写入之前读取它的对象)。即使如此,如果你知道
.space
的功能,它仍然只是一堆乱七八糟的东西。在
.space
上发表评论就足够了


我不知道你在哪里能找到像MARS这样的经典MIPS汇编程序的文档,
.space
用零填充,但是对于像GNU
as
这样的Unix汇编器来说,情况就是这样的,它与经典的MIPS汇编器基本兼容:

如果您的代码在读取缓冲区之前就明确写入了缓冲区,那么缓冲区中的内容并不重要。否则,它以0开头并不重要,因此如果作为隐式长度以0结尾的字符串读取,则它是空字符串

但您已经在这样做了:
。空格用零填充。以下内容将在内存中以完全相同的16字节零结束:

myString:
  .byte 0
  .space 15
如果您想在源代码中特别明确,在开始时有一个0,那么这是值得考虑的。(例如,如果您将此地址传递给在第一次写入之前读取它的对象)。即使如此,如果你知道
.space
的功能,它仍然只是一堆乱七八糟的东西。在
.space
上发表评论就足够了


我不确定您在哪里可以找到像MARS这样的经典MIPS汇编器的文档,
.space
用零填充,但对于像GNU
as这样的Unix汇编器来说,这是明确的,它主要与经典MIPS汇编器兼容:

需要什么
.space
已经用零填充,以防您关心从静态初始化值中读取字节,而不是以后存储的字节。@PeterCordes我的老师说的是字符串中的第一个字符必须是空值(0),但是我没有真正看到其中的逻辑。是的,这里面没有逻辑,除非您的代码在存储字符串之前想要读取它,所以它读取为空字符串。但正如我所说,您已经通过
.space
满足了这个需求<代码>字节0
.space 15
将在内存中以相同的16字节零结束。需要什么
.space
已经用零填充,以防您关心从静态初始化值中读取字节,而不是以后存储的字节。@PeterCordes我的老师说的是字符串中的第一个字符必须是空值(0),但是我没有真正看到其中的逻辑。是的,这里面没有逻辑,除非您的代码在存储字符串之前想要读取它,所以它读取为空字符串。但正如我所说,您已经通过
.space
满足了这个需求<代码>字节0
.space 15
将在内存中以相同的16字节零结束。