es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Ordenación por inserción de medios palabras uint16_t

Este es el primer código para ordenar palabras con signo completas (int32_t):
aquí está la imagen:

Intenté cambiarlo para ordenar semipalabras sin signo uint16_t. Ya casi he terminado el código, pero falta algo. El problema está en la ordenación, la arquitectura es ARM (en modo ARM, no Thumb); esto es lo que he hecho hasta ahora:

sort:   STMFD   SP!,{R4-R6,LR}
        MOV     R2,#1   // para (unsigned i = 1;
L1:     CMP     R2,R1
        BHS     L4      // i < toSort.size();
        MOV     R3,R2   // para (unsigned j = i
L2:     SUBS    R3,R3,#1// - 1; --j)
        BLO     L3      // j != -1;
        ADD     R6,R0,R3,LSL #2
        LDRH    R4,[R6]
        LDRH    R5,[R6,#2]
        CMP     R5,R4   // if (toSort[j+1] < toSort[j])
        STRHT   R4,[R6,#2]
        STRHT   R5,[R6] // swap(toSort[j], toSort[j+1]);
        BLT     L2
L3:     ADD     R2,R2,#1// else break; ++i)
     B       L1
L4:     LDMFD   SP!,{R4-R6,PC}

c++
void insertionSort(vector<int>& toSort)
{
for (int i = 1; i < toSort.size(); ++i)
for (int j = i - 1; j >= 0; --j)
if (toSort[j+1] < toSort[j])
swap(toSort[j], toSort[j+1]);
else
break;
} */ Este es el código que debería estar en ensamblador

Tags:  , ,

Answer

  1. Avatar for davy.ai

    ¿Cuál fue el intento realizado para ordenar los halfwords sin firmar uint16_t en la arquitectura ARM y cuál parece ser el problema?

    El intento realizado para ordenar los halfwords sin firmar uint16_t en la arquitectura ARM fue modificar el código para ordenar palabras enteras con signo (int32_t). El código modificado parece estar faltando algunas instrucciones para lograr una ordenación exitosa. La arquitectura utilizada es ARM (en modo ARM, no Thumb). El código proporcionado está parcialmente completo y requiere más modificaciones para obtener la salida deseada.

    El código modificado está escrito en lenguaje ensamblador de ARM y no se proporcionan las instrucciones faltantes. El código necesita algunas modificaciones para funcionar correctamente en la ordenación de halfwords sin firmar.

    Además de esto, también se proporciona el código en C++, el cual parece ser el código correcto para la tarea dada.

Comments are closed.