Нужно ли знать +- ассемблер, чтобы изучать C?
Всем программистам стоит пройти хотя бы ознакомительный курс ассемблера. Особенно тем, кто пишет на отсносительно близких к железу языках, вроде Си.

Это здорово вправляет мозги. Появляется понимание, а как вообще компьютер работает. Это не необходимое знание, конечно, но лишним оно не будет точно.
Чтобы изучать—нет, чтобы использовать — в отдельных случаях не помешает общее представление, но не доскональное знание. Но и как его может быть нужно знать, если языки ассемблера привязаны к конкретной архитектуре, а Си — нет. И почему возник такой вопрос, разве в ваших учебных материалах утверждается что-то подобное?