MIPS:.asciiz 的大小?

MIPS: Size of .asciiz?

When determining the size of .asciiz string, should I take into consideration the terminating character ?

例如:

.data
string: .asciiz "Hello"

“字符串”的大小是 5 还是 6(字节)?

如果你问的是字符串在内存中存储了多少字节,那么它是 6 个字节

如果你问的是计算字符串长度的函数(例如 strlen C 函数)应该返回什么,它应该是 5

这个特定的 asciiz 字符串需要 6 个字节的存储空间。

在编程情况下,您将测量字符串大小为 5。如 strlen()

使用此字符串时,您的循环很可能会测试 NULL 条件,并将 运行 进行 5 次迭代。

复制、存储此字符串时,您的代码可能会循环 5 次,然后(在循环外)在末尾添加一个额外的 NULL '\0' 字符,以保持 NULL 终止。因此目标存储 space 必须比 strlen().

多 1

ascii的每个字符都是1个字节。如果你写 hello 它是 5 byte

同意 Robert 的观点,在这种情况下,内存中的字节总数为 6。然而,正如 Paxym 所解释的那样,在高级语言中,它会将字符串 'size' 测量为 5。