Кластерный компьютер Приемы повышения производительности Двоичная арифметика Программирование на языке ассемблера

Регистр - это определенный участок памяти внутри самого процессора, от 8-ми до 32-х бит длиной, который используется для промежуточного хранения информации, обрабатываемой процессором. Некоторые регистры содержат только определенную информацию.

В строках под заголовком «Адресация сегментов данных» перечислены режимы адресации, актуальные для сегментов данных. Адреса этого типа всегда заключаются в пару круглых скобок — именно они позволяют отличить адрес в их составе от значения иного типа. Простейшим режимом адресации из этой категории является непосредственная адресация, при которой адрес данных операнда включается в команду. Пример:

ADD СХ.(20)

В данном случае к регистру СХ прибавляется содержимое слова памяти, расположенного по адресам 20 и 21. В языке ассемблера ячейки обычно выражаются метками, а не численными значениями, а преобразование выполняется уже в период ассемблирования. Даже в командах CALL и JMP целевой операнд можно сохранить в ячейке памяти, на которую указывает метка. Скобки вокруг меток совершенно необходимы (по крайней мере, для того ассемблера, о котором мы ведем речь), поскольку следующая команда тоже имеет право на существование:

ADD СХ,20

Однако эта команда выражает совершенно другую операцию, а именно — прибавление к значению регистра СХ константы 20, а не содержимого слова памяти, находящегося по адресу 20. Символ # в табл. В.1 может обозначать численную константу, метку или константное выражение с меткой.

Уровни согласования сетей Средства межсетевого взаимодействия нужны для того, чтобы обеспечить согласованную работу двух приложений, выполняющихся в разнородных сетях.

При косвенной регистровой адресации адрес операнда хранится в одном из трех регистров: BX, SI или DI. Во всех этих случаях он оказывается в сегменте данных. Кроме того, можно разместить константу перед регистром, и в этом случае адрес устанавливается путем сложения регистра с константой. Этот тип адресации, называемый регистровой адресацией со смещением, удобен при обработке массивов. Так, если регистр SI содержит значение 5, то пятый символ строки, определяемой меткой FORMAT, можно загрузить в регистр AL посредством оператора

M0VB AL.FORMAT(SI)

При этом просмотр всей строки осуществляется на каждом этапе путем положительного или отрицательного приращения значения регистра. При использовании операндов-слов значение регистра каждый раз изменяется в ту или иную сторону на 2.

Кроме того, можно поместить базу (то есть нижний числовой адрес) массива в регистр ВХ, сохранив регистры SI или DI для отсчета. Такая схема называется индексной регистровой адресацией. Пример:

PUSH (BX)(DI)

Этот код извлекает содержимое ячейки из сегмента данных с адресом, который определяется суммой регистров ВХ и DI. Результирующее значение затем помещается в стек. Сочетание последних двух типов адресации дает индексную регистровую адресацию со смещением:

NOT 20(ВХ)С DI)

Эта команда обращается к слову памяти по адресам ВХ + DI + 20 и ВХ + DI + 21.

Все способы косвенной адресации, применимые к сегменту данных, актуальны и для стекового сегмента; в последнем случае базовый регистр ВХ заменяется указателем базы В Р. Таким образом, (ВР) — это только режим косвенной адресации стека регистров, однако существуют и более сложные режимы, в частности, косвенная адресация по указателю базы с индексом и смещением: ?1(BP)(SI). Эти режимы полезны при обращении к локальным переменным и параметрам функций, хранящихся по адресам стека в подпрограммах. Соответствующая схема описывается в подразделе «Вызовы подпрограмм».

Все адреса, соответствующие перечисленным режимам адресации, в операциях могут выступать в качестве как источников, так и приемников. Взятые вместе, эти две категории называются действительными адресами. Режимы адресации двух оставшихся категорий не предполагают наличие приемников, поэтому соответствующие адреса не входят в число действительных. Они применяются только в качестве источников.

Системы счисления занимают важное место в вопросах организации обработки информации с помощью ЭВМ, наряду с формами представления данных и специальным кодированием чисел.
Кластерные вычисления Процессор 8088 Программирование на языке ассемблера