Conteúdo reverso da matriz na montagem

Estou trabalhando em algumas tarefas de montagem e estou perplexo no meu último programa. Se alguém com conhecimento em montagem x86 estiver à espreita, sinta-se à vontade para comentar sobre como eu posso começar com isso. Obrigado

problem:

Use um loop com endereçamento indireto ou indexado para reverter os elementos de uma matriz inteira no local. não copie os elementos para nenhuma outra matriz. Use também os operadores SIZEOF, TYPE e LENGTHOF para tornar o programa flexível para diferentes matrize

code até agora:

.data
array BYTE 10h,20h, 30h, 40h

.code
main PROC
    call Clrscr

        ;no clue... 

    exit
main ENDP

END main

questionAnswers(3)

yourAnswerToTheQuestion