Kompilátor nic nepoznává a téměř nic nekontroluje.
Ostatně, v dobách, kdy všechno muselo mít české názvy, se assembler jmenoval "jazyk symbolických instrukcí", eventuelně "jazyk symbolických adres" a kurs, kde se to učilo, se sice lidově nazýval Assemblery, ale oficiálně "Strojově orientované jazyky".
Kontroluje tak nanejvýš, zda se neodkazujete mimo rozsah nějakého segmentu nebo stránky (podle architektury procesoru). A kdo chvíli programuje (případně zkoumá nějaký kód bez zdrojáku) u jednodušších procesorů za chvíli může ten hexdump číst rovnou.
Pak pár let děláte něco jiného a schopnost se, pochopitelně, vytratí.