Assembler для начинающих




Команды сканирования и сравнения - часть 5


      Фиг. 4.25 демонстрирует пример использования команды CMPS.
    Этот пример сравнивает пятисимвольную исходную строку с таблицей
    строк символов. Программа пытается найти соответствие исходной
    строки с элементом таблицы. Когда строка найдена, в регистре BX
    нахолится индекс строки. В программе используется префикс REPE, так
    что команда сравненния строк выполняется до тех пор, пока один из
    символов аргумента не совпадает с символом таблицы. Если все пять
    символов совпали, программа находит правильный элемент. Команда JE
    ("переход, если равно") проверяет результат команды CMPS. Если
    сравнение завершилось из=за несоответствия символов, флаг нуля
    показывает ненулевое состояние. Если же команда CMPS завершилась
    потому, что счетчик CX стал нулевым, флаг нуля покажет совпадение и
    произойдет переход на метку FOUND. Вы можете заметить, что в этом
    примере отсутствуют некоторые необходимые детали, которые смогли бы
    сделать его хорошей программой. Например, он никак не обрабатывает
    случай, когда исходная строка не совпала ни с одним элементм
    таблицы. Любой хороший программист скажет вам, что исключительные
    ситуации нужно обрабатывать всегда.



Содержание  Назад  Вперед