Algunos ensambladores incluyen lenguajes macro muy sofisticados, incorporando elementos de lenguajes de alto nivel tales como parámetros opcionales, variables simbólicas, condiciones, manipulaciones de "strings", operaciones aritméticas, todos usables durante la ejecución de una macro dada, y permitiendo a las macros guardar el contexto o intercambiar información.