1) Этот код считывает два беззнаковых целых числа N и K, затем подготавливает битовую маску в регистре EDI, устанавливая в 1 младшие K битов. Цикл для обработки N ещё не завершён. 2) Обрати внимание, что для работы сдвига `shl eax, cl` в EAX должно быть корректное начальное значение (сейчас `c1` — это метка, а не число 1). Также цикл не имеет условия выхода — нужно использовать N как счётчик.