Я не понимаю его назначение
Поймите одну простую вещь, абсолютно любая программа написанная на абсолютно любом языке программирования, в конечном итоге для выполнения будет преобразована в машинный код процессора. А представлением этого кода как раз и является ассемблер.
И следует ли его учить , если его уже заменяют?
Его никто не заменяет, осмелюсь сказать он незаменим. Ассемблер обладает одним свойством, на нем оочень тяжело писать большие программы, даже используя макроассемблер. Представтье, что ассемблерной программе не нужна операционная система, ассемблер напрямую может взаимодействовать с устройствами, без драйверов (надо только написать протокол этого самого взаимодействия) Есть более удобные языки, например "С" или "С++". Решение об изучениии каждый принимает самостоятельно, в некоторых сферах ассемблер -незаменим. А в других - бесполезен и даже вреден.