Учимся читать вывод ассемблера GCC

Я подумываю о том, чтобы получить немного элементарного понимания сборки. Моя текущая цель проста:ОЧЕНЬ ОСНОВНОЙ понимание вывода ассемблера GCC при компиляции C / C ++ с ключом -S для x86 / x86-64.

Достаточно просто сделать простые вещи, такие как просмотр одной функции и проверка того, оптимизирует ли GCC то, что я ожидаю исчезнуть.

Кто-нибудь знает / знает действительно краткое введение в сборку, относящееся к GCC и специально для чтения, а также список наиболее важных инструкций, которые должен знать каждый, кто случайно читает сборку?