непосредственно следующий за сравнением. Вы
непосредственно следующий за сравнением. Вы можете определить
смещение совпавшего объекта, вычитая единицу из регистра DI после
метки FOUND. Программа может использовать эту информацию для
доступа к другой таблице, или таблицам, которые содержат
информацию, соответствующую этим исходным данным. Нужно обратить
особое внимание на команду JE после команды сканирования.
Существуют два случая, в которых управление передается этой
команде: байт в строке совпал с регистром AL и условие, задаваемое
префиксом REPNE, больше не выполняется; либо регистр CX достиг
нулевого значения без нахождения соответствующего числа в таблице.
В некоторых случаях создаются ситуации, исключающие появление
второго условия. Но в большинстве программ, необходимо учитывать
возможность неверных исходных данных. Программа перейдет на метку
FOUND после команды сканирования, если команда установила флаг нуля
(или равенства). Тем самым гарантируется, что сравнение найдено.
Если же регистр CX достиг нуля, последняя итерация сканирования
сбросила флаг нуля, показывая, что соответствия нет.
Microsoft (R) Macro Assembler Version 5.00 1/1/80 04:01:36
Фиг. 4.24 Поиск в таблице Page 1-1
PAGE ,132
TITLE Фиг. 4.24 Поиск в таблице
0000 CODE SEGMENT
ASSUME CS:CODE,DS:CODE,ES:CODE
;--------------------------------------
; Поиск значения AL в таблице
;--------------------------------------
0000 8D 3E 000C R LEA DI, SCAN_TABLE ; Адрес таблицы
0004 B9 000B 90 MOV CX, SCAN_TABLE_LENGTH ; Длина таблицы
0008 F2/ AE REPNE SCASB ; Поиск
Содержание Назад Вперед