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) ?
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
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()
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With