¿Cómo se almacenan una cadena y números en la memoria en NASM?

NASM es para la arquitectura Intel x86, con orden de bytes little endian.

Los sistemas big-endian son sistemas en los que el byte más significativo de la palabra se almacena en la dirección más pequeña dada y el byte menos significativo se almacena en el más grande. En contraste, los pequeños sistemas endian son aquellos en los que el byte menos significativo se almacena en la dirección más pequeña.

Espero que su pregunta sea respondida directamente con esta información.

Referencias

Ensamblador Netwide
http://en.wikipedia.org/wiki/Netwide_Assembler

x86
http://en.wikipedia.org/wiki/Intel_x86

Endianness
http://en.wikipedia.org/wiki/Endianness

Ejemplo de cálculo:

En la ubicación de memoria X, si intenta almacenar el hex 1234, entonces en el byte X, será 34, y en el byte (X + 1) será 12.

Del mismo modo, en la ubicación de memoria Y, si intenta almacenar el hexadecimal ABCD, entonces en el byte Y, será CD, y en el byte (Y + 1) será AB.

Si desea agregar X + Y, byte por byte, luego agregue los bytes en la ubicación X e Y (34 + CD) para obtener el hex 01 con 1 acarreo. Ahora agregue los bytes en la ubicación (X + 1) e (Y + 1) con el carry, (12 + AB + 1) para obtener BE.
Por lo tanto, la respuesta completa es BE01.

NASM es un ensamblador para plataformas x86 y x86_64 [Netwide Assembler].

Los enteros se almacenan en formato little endian, por ejemplo, si el entero 0x01020304 se almacena en la ubicación 1024, la dirección 1024 contiene el byte 0x01 y la dirección 1027 contiene 0x04. [Endianness]

Las cadenas se almacenan como fragmentos de bytes contiguos en la memoria donde el último byte es 0x00.