Online Compiler Nasm

section.data fmt_in db "%u %u", 0 fmt_out db "%u", 10, 0 N dd 0 K dd 0 section.text global main extern printf extern scanf main: push ebp mov ebp, esp ;----------------------------- push K push N push fmt_in call scanf add esp, 12 ;----------------------------- mov ebx, [K] mov cl, bl mov eax, c1 shl eax, cl dec eax mov edi, eax ;----------------------------- xor ecx, 0 xor esi, 0
1) Этот код считывает два беззнаковых целых числа N и K, затем подготавливает битовую маску в регистре EDI, устанавливая в 1 младшие K битов. Цикл для обработки N ещё не завершён.

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