1. реализовать алгоритм на Си
2. скомпилировать GCC или иным современным компилятором с включенной векторизацией и всеми оптимизациями.
3. дизассемблировать или включить опцию показа промежуточного результата.
4. посмотреть итог и убедиться что там есть MMX или SSE инструции
5. обратить внимание на обработку краёв которые могут быть не выравнены или не попадать в ровно блок, массивов маленьких размеров меньше 16-4 элементов и прочие мелочи.
6. обратить внимание на вызов этой твоей функции и как организуется стек, временные переменные, как передаются параметры, какие регистры функция нахождения максимума изменяет а какие сохраняет и как.
7. попытаться безуспешно понять почему именно так.
8. попытаться самому повторить результат на асме не глядя в результат компилятора и получить в лучшем случае в 2-3 раза худшее быстродействие если вообще отладить сможешь
9. сделать вывод что страдаешь хернёй и использовать ассемблер для оптимизации столь тривиальной вещи полный дурдом и понять для чего асм всё таки нужен
10. понять что асм нужен для системных вещей, и понимания почему у компилятора торомзит код а не пытаться писать велосипеды не умея оптимизировать под современные процы.
для пункта 2-4 есть
https://godbolt.org/#