Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

MIPS: Size of .asciiz?

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

For example:

.data
string: .asciiz "Hello"

The size of "string" is 5 or 6 (byte) ?

like image 531
Ivan Gandacov Avatar asked Oct 19 '22 06:10

Ivan Gandacov


2 Answers

if you are asking about how many bytes in memory the string is stored in then it's 6 bytes

if you are asking about what should be returned by a function that count the string length (strlen C function for example) it should be 5

like image 54
Robert Avatar answered Oct 21 '22 04:10

Robert


This particular asciiz string requires 6 bytes of storage.

In programming situations, you will measure the string size to be 5. As in strlen().

When using this string, very likely, your loop will be testing for NULL conditions, and will run for 5 iterations.

When copying, storing this string, your code will likely loop 5 times, and then (outside of loop), add an extra NULL '\0' character at the end, to maintain NULL termination. Therefore the destination storage space must be 1 more than strlen().

like image 44
Paxym Avatar answered Oct 21 '22 05:10

Paxym