Предположим, что пользователь ввел номер месяца — 03 и программа должна преобразовать этот номер в алфавитное значение March. Программа для выполнения такого преобразования включает определение таблицы алфавитных названий месяцев, имеющих одинаковую длину. Так как самое длинное название — September, то таблица имеет следующий вид:
MONTBL DB 'January..' DB 'February.' DB 'March....'
Каждый элемент таблицы имеет длину 9 байт. Адрес элемента 'January' — MONTBL+0, 'February' — MONTBL+9, 'March' — MONTBL+18. Для локализации месяца 03, программа должна выполнить следующее:
1. Преобразовать введенный номер месяца из ASCII 33 в двоичное 03.
2. Вычесть единицу из номера месяца: 03 — 1 = 02 3. Умножить результат на длину элемента (9): 02 х 9 = 18 4. Прибавить произведение (18) к адресу MONTBL; в результате получится адрес требуемого названия месяца: MONTBL+18.
Описанная техника работы с таблицей называется прямым табличным доступом. Поскольку данный алгоритм непосредственно вычисляет адpес необходимого элемента в таблице, то в программе не требуется выполнять операции поиска.
Хотя прямая табличная адресация очень эффективна, она возможна только при последовательной организации. То есть можно использовать такие таблицы, если элементы располагаются в регулярной последовательности: 1, 2, 3,... или 106, 107, 108,... или даже 5, 10, 15. Однако, не всегда таблицы построены таким образом.