addr умеет адресовать локальные переменные функций (они требуют команды lea) и короче в написании, но не умеет адресовать переменные описанные позже чем использованные offset адресует независимо от того описаны переменные/метки до применения или после, но не понимает локальных переменных.