COSTAB DB 205,208,209,212,215,224,

 

Таблица может также содержать смешанные данные (регулярно чередующиеся числовые и символьные поля):

 

STOKTBL DB 12,'Computers',14,'Paper....',17,'Diaskettes'

 

Элементы таблицы можно закодировать вертикально:

 

STOKTBL DB 12,'Computers'

DB 14,'Paper....'

DB 17,'Diskettes'

3. Рассмотрим таблицу состоящую из трех символьных значений:

 

MONTBL DB 'January..'

DB 'February.'

DB 'March....'

 

Каждый элемент таблицы имеет 9 байт. Адрес элемента 'January' - MONTBL, адрес элемента 'February' - MONTBL+9, адрес элемента 'March' - MONTBL+18. Для поиска символьного значения 'March', программа должна выполнить следующие шаги:

а) преобразовать введенный номер символьного значения (N3) из ASCII 33 в двоичное 03;

б) вычесть единицу из номера символьного значения: 03 - 1 = 02;

в) умножить результат на длину элемента (9): 02 x 9 = 18;

г) прибавить произведение (18) к адресу MONTBL; в результате получится адрес требуемого символьного значения: MONTBL+18.

4. В некоторых ЭВМ символы представляются в коде EBCDIC. Например, цифры от 0 до 9 в коде ASCII представляются как 30...39, а в коде EBCDIC - как F0...F9. Пробел в коде ASCII представляется шестнадцатиричным числом 20Н, а в коде EBCDIC - числом 40Н.

При передаче данных между персональными компьютерами и большими ЭВМ с помощью команды XLAT можно выполнить перекодировку данных между форматами ASCII и EBCDIC.

5. Сортировка элементов таблицы заключается в сравнении соседних элементов таблицы. Если первый элемент больше второго, то элементы меняются местами. Таким образом выполняется сравнение элемента 1 с элементом 2, элемента 2 с элементом 3 и т.д. до конца таблицы с перестановкой элементов там, где это необходимо. Если в проходе были сделаны перестановки, то весь процесс повторя-

ется с начала таблицы, т.е. сравниваются снова элементы 1 и 2, 2 и 3 и т.д. Если в проходе не было перестановок, то таблица отсортирована и можно прекратить процесс.

6. При работе с таблицами в ассемблере могут применяться операторы TYPE (тип), LENGTH (длина) и SIZE (размер). Например, для следующей таблицы из десяти слов:

 

TABLEX DW 10 DUP(?) ;Таблица из 10 слов

 

программа может использовать оператор TYPE для определения типа (DW в данном случае), оператор LENGTH - для определения DUP-фактора (10) и оператор SIZE - для определения числа байтов (10 x 2 = 20). Например:

 

MOV AX,TYPE TABLEX ;AX=0002

MOV BX,LENGTH TABLEX ;BX=000A (10)

MOV CX,SIZE TABLEX ;CX=0014 (20)

Значения LENGTH и SIZE можно использовать для окончания табличного поиска или сортировки. Например, если регистр SI содержит продвинутый адрес таблицы при осуществлении поиска, то проверка на конец таблицы может быть следующей:

 

CMP SI,SIZE TABLEX

 

ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ: