Организация цикла с помощью команд DEC и JNZ (Третий способ)
⇐ ПредыдущаяСтр 2 из 2 С помощь этих операторов можно создавать циклы, которые будут работать быстрее оператора Loop. Комбинированная работа команд DEC и JNZ уменьшает содержимое регистра CX на 1 и выполняет переход на метку, если в CX не равен нулю. Команда DEC, кроме того, устанавливает флаг нуля во флаговом регистре в состояние 0 или 1. Команда JNZ затем проверяет эту установку. Аналогично командам JMP и LOOP операнд в команде JNZ содержит значение расстояния между концом команды JNZ и адресом перехода (Label1), которое прибавляется к командному указателю. Это расстояние должно быть в пределах от - 128 до +127 байт.
Программа для практики Напишем программу, выводящую на экран все ASCII-символы (16 строк по 16 символов в строке).
Здесь с помощью команды LOOP оформляется цикл, выполняющийся 256 раз (значение регистра СХ в начале цикла). Регистр DL содержит код символа, который равен нулю в начале цикла и увеличивается каждый раз на 1 командой INC DL. Если значение DL сразу после увеличения на 1 кратно 16, оно временно сохраняется в стеке и на экран выводятся символы CR и LF, выполняющие переход на начало новой строки. Проверка выполняется командой TEST DL,0Fh - результат операции AND над DL и 0Fh будет нулем, только если младшие четыре бита DL равны нулю, что и соответствует кратности шестнадцати. Содержание отчета 3.1 Титульный лист. 3.2 Индивидуальный вариант задания. 3.3 Тестовые наборы данных и предполагаемые результаты. 3.4 Текст программы до отладки. 3.5 Список ошибок, обнаруженных при отладке. 3.6. Результаты выполнения тестов. 3.7. Распечатка листинга компиляции отлаженной программы с указанием работы каждой строки.
Читайте также: I. Организация работы. Воспользуйтесь поиском по сайту: ©2015 - 2025 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|