Микропроцессорные устройства систем управления. Иванов В.Э - 21 стр.

UptoLike

Составители: 

21
ЛАБОРАТОРНАЯ РАБОТА 11
ОБРАБОТКА
ОДНОМЕРНЫХ МАССИВОВ ЦЕЛЫХ ЧИСЕЛ
Цель работы: изучение приемов работы c табличными целочисленными
данными.
Основные сведения
Во многих прикладных программах используется табличная
организация данных. Для облегчения табличного поиска большинство
таблиц определяются систематически, т. е. элементы таблицы имеют
одинаковый формат и одинаковую длину.
Специально для обработки массивов в систему команд ВМ86 введена
команда XLAT. Эта команда
предназначена для быстрого преобразования
кодов и заменяет содержимое AL на байт из 256-байтной таблицы
перекодировки, начальный адрес которой содержится в регистре BX.
Содержимое AL используется как индекс таблицы перекодировки,
находящейся в сегменте данных. При выполнении этой команды к
содержимому ВХ прибавляется содержимое AL, а полученный результат
используется как смещение относительно начала сегмента данных.
Адресуемый таким
образом байт пересылается в AL.
При написании программ работы с таблицами наиболее эффективно
используются индексная и базово-индексная адресация. В случае
индексной адресации эффективный адрес вычисляется как сумма
смещения, заданного в команде, и содержимого индексного регистра SI
или DI. Такую адресацию лучше всего применять в том случае, когда адрес
таблицы фиксирован и не
меняется в течение выполнения программы. В
таком случае в качестве смещения указывают базовый адрес таблицы, а
содержимое регистра SI или DI служит индексом, т. е. определяет элемент
таблицы. Если же приходится работать с одинаковыми элементами
различных одномерных таблиц, то в индексном регистре задают адрес
текущей таблицы, а смещение задает элемент таблицы.
В случае
двумерных таблиц или при перемещении таблицы в памяти во
время выполнения программы лучше использовать базово-индексную
адресацию. Для этого типа адресации эффективный адрес вычисляется как
сумма содержимого базового регистра (BX или BP) и индексного регистра
(SI или DI) и смещения, задаваемого в команде. При работе с двумерными