Corrección de MIPS interesante

0

Estaba escribiendo un algoritmo Quicksort en el emulador de Mars para MIPS y definí mi matriz para tener una cantidad particular de números. Definí la matriz para tener seis números y le di seis números a la matriz. Tengo mi programa para trabajar bien Sin embargo, una vez definí accidentalmente que la matriz tenía siete números en lugar de seis. El comienzo del guión es el siguiente:

.data 
startOfArray:   .word 0
endOfArray:     .word 7
array:          .word 314,42,777,1,-2,88,0

La salida es la siguiente incluso cuando solo hay seis números en la matriz definida:

-2 0 1 42 88 314 777 2097162

Entonces, ¿de dónde viene este número extremadamente grande de 2097162 ? ¿Es esto solo un marcador de posición para no tener un séptimo valor en mi matriz? ¿Qué representa este número? Es el mismo número, no importa cuántas veces recargue el código.

ACTUALIZACIÓN 1: Sé que debería ser endOfArray: .word 6 , pero ¿por qué, cuando accidentalmente escribí 7 , me dio un número adicional y de dónde viene?

    
pregunta KingDuken

1 respuesta

1

Estás leyendo sobre el final de la matriz. Ese número es lo que se encuentra en la memoria inmediatamente después de la matriz. Sin embargo, podría ser una instrucción MIPS o algún tipo de datos, pero es difícil decirlo sin ver el código.

>>> hex(2097162)
'0x20000a'
    
respondido por el alex.forencich

Lea otras preguntas en las etiquetas