Команда сравнения с нулем выглядит как чтение регистра ОЗУ в самое себя: movf <var>, f. При этом ничего никуда не перемещается, а лишь изменяются флаги регистра состояний (STATUS). В том числе и флаг Z, который и означает равенство нулю. Но это не имеет отношения к проверке флагов и разрешений, есличо. Там тестируются отдельные биты.