Как решить задачу № 208 из Проекта Эйлера Ходящий робот на языке Ассемблер

Траектория движения робота представляет собой череду дуг в одну пятую часть окружности (72 градуса) со свободным выбором направления следующей дуги (по или против часовой стрелке) для каждого следующего шага, однако разворот на месте запрещён. Один из 70 932 возможных замкнутых путей, состоящих из 25 дуг, с начальным направлением на север. Сколько возможных замкнутых путей (последняя дуга оканчивается в точке начала пути) длинной в 70 дуг может пройти робот, если его первоначальное направление - север?

Я попробовал написать код на данном языке, но у меня почему-то не хочет компелироваться код, и меня это очень расстраивает. Я уже не знаю что делать... Помогите если не сложно)

    mov eax, 0          ; счётчик количества возможных путей
    mov ecx, 70         ; количество дуг в пути
    mov ebx, 0          ; текущее направление движения (0 - север, 1 - восток, 2 - юг, 3 - запад)

check_paths:
    cmp ecx, 0          ; если дуг больше нет, значит путь завершён
    je end_program

    mov edx, ecx        ; сохраняем количество дуг в регистр edx
    dec edx             ; уменьшаем счётчик дуг на 1 (для проверки возможных направлений)

    ; проверяем возможные направления для следующей дуги
    ; если текущее направление на север, то следующее может быть на восток или на юг
    cmp ebx, 0
    je check_next_east_or_south
    ; если текущее направление на восток, то следующее может быть на север или на юг
    cmp ebx, 1
    je check_next_north_or_south
    ; если текущее направление на юг, то следующее может быть на восток или на запад
    cmp ebx, 2
    je check_next_east_or_west
    ; если текущее направление на запад, то следующее может быть на север или на запад
    cmp ebx, 3
    je check_next_north_or_west

check_next_east_or_south:
    ; двигаемся на восток
    mov ebx, 1
    dec ecx         ; уменьшаем количество дуг
    jmp check_paths

check_next_north_or_south:
    ; двигаемся на север
    mov ebx, 0
    dec ecx         ; уменьшаем количество дуг
    jmp check_paths

check_next_east_or_west:
    ; двигаемся на запад
    mov ebx, 3
    dec ecx         ; уменьшаем количество дуг
    jmp check_paths

check_next_north_or_west:
    ; двигаемся на запад
    mov ebx, 3
    dec ecx         ; уменьшаем количество дуг
    jmp check_paths

end_program:
    ; в eax теперь содержится количество возможных замкнутых путей
    ; можно вывести результат или использовать дальше в программе

Ответы (0 шт):