Как язык ассемблер весьма прост, но программировать на нём сложно как раз из-за его простоты как языка.
Может, команду LD понять и несложно, а вот логические команды уже требует понимания булевой алгебры. Стековые команды требуют понимания абстракции стека. Даже арифметика ассемблерная требует понимания её ограничений из-за битовой разрядности.