Обязательности (и необходимости) нет. Полезность знакомства, хотя бы и шапочного есть. Хотя бы, чтобы иметь представление "что за зверушка такая", для общего образования. Многие термины происходят оттуда (регистр, типы адресации)
Если собираешься использовать только высокоуровневые возможности C++ и C# - нет, не нужно. Но если будешь писать на С++ в стиле C или использовать unsafe в C#, то хотя бы минимальное знание ассемблера желательно: чтобы понимать, как работает низкоуровневый код и лишний раз не наступать на грабли.