Найти тему

Альтернатива LOOP

Как это ни странно прозвучит, но ассемблер - это довольно гибкий язык, и добиться одного и того же результата здесь можно разными способами. Я уже рассказывал об альтернативе таких команд как RET, CALL и JMP. А сегодня о том, как организовать цикл без использования команды LOOP (про цикл с этой командой можно посмотреть видео здесь).

Пример:

Здесь вместо одной команды LOOP мы использовали две команды:

  • DEC - для уменьшения счётчика циклов
  • JNZ - для проверки обнуления счётчика (переход на метку, если счётчик не равен нулю)

И это будет работать точно также, как и команда LOOP.

Правда, вместо одной команды у нас получилось две. С другой стороны, на некоторых старых процессорах такой код будет работать быстрее, чем с использованием LOOP. Ну и опять же это помогает понять, как работает компьютер и что делают разные команды процессора.

На этом всё. Подписывайтесь на канал, чтобы ничего не пропустить.