Сборник по задачам и примерам Assembler


Поиск в таблице - часть 4


aam преобразуем в символьное представление

or ah.030h

mov [di].line,ah

or al.030h

mov [di+1].line.al :и в элемент таблицы

or [di].state.lb ;помечаем элемент как используемый

:теперь нужно поместить в поле s_tab.elem_free адрес нового свободного элемента пб: emp di. s_tab. 1 ast_of f

ja displ

add di.type constant :к следующему элементу

test [di].state.lb

jnz m5 ; используется => к следующему элементу

mov s_tab.elem_fгее.d i pop di pop ex

jmpcycU m2: увеличить номер строки

inc cur_line

jmp cycl 1 displ: :отображение на экране элементов таблицы

lea di .tab m6:

test [di].state.100b

jnz m7 :выводим на экран строку

mov ah.9

mov dx.di

int 21h ml: add di. type constant

emp di ,s_tab.last_off

jb m6

В этой программе показаны основные приемы работы с неупорядоченной таблицей. Усложнить данную программу можно, например, дополнив набор сведений о каждой константе информацией о ее длине. Далее можно попрактиковаться в этом вопросе, поставив себе задачу удалить из таблицы данные о нулевых константах (обоих типов — 0 и 0h) и вывести окончательное содержимое таблицы на экран. В качестве ключа для доступа к ячейке таблицы можно использовать значение самой константы (размером 10 байт).

Обратите внимание на еще два момента, отраженные в этой программе.

  • Использование команды XLAT для классификации символов в качестве цифр и остальных символов (букв). Среди других кодов в таблице перекодировки особо выделен байт со значением Odh, который является первым байтом в паре OdOah. Как вы помните, эта пара вставляется редакторами ASCII-текстов для обозначения конца строки и перехода на другую строку.
  • Организация таблицы. Ей предшествует четырехбайтовый префикс, содержащий информацию о конце таблицы и первом свободном элементе таблицы. В целях оптимизации область памяти для буфера buf и таблицы перекодировки лучше выделять динамически и после анализа файла удалять.

Древовидные таблицы

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




- Начало -  - Назад -  - Вперед -