ВУЗ:
Составители:
13
Итак, при работе на Ассемблере можно организовать циклы тремя способами:
1. с помощью условных переходов;
2. с помощью команд LOOP;
3. с помощью префиксов REP для строковых команд.
3. Замечания о методах адресации
Методы адресации данных были подробно рассмотрены в Методических указаниях
«Изучение архитектуры и системы команд Intel-совместимых процессоров». Здесь, для
удобства работы, будут напомнены лишь основные моменты.
Данные, подлежащие обработке в той или иной конкретной команде, как известно,
принято называть операндами. Операнды могут располагаться в различных местах, в
частности, в одном из РОН, в сегменте данных оперативной памяти, в стеке и т.д., и
обращение к ним может быть произведено весьма разнообразными способами. Это
разнообразие и составляет суть методов адресации.
Система команд и методы адресации – два тесно взаимосвязанных между собой
понятия. С одной стороны, ни одной конкретной команды нельзя сформировать без
использования того или иного метода адресации; с другой стороны, эти методы "не
работают" вне конкретных команд.
Перечислим название ОСНОВНЫХ методов адресации и дадим их краткую
характеристику.
Регистровая адресация. Операнд или операнды располагаются в одном из РОН, в
индексном регистре либо (если речь идет о сегментной части адреса) в сегментном
регистре. Это обеспечивает очень быстрый доступ к данным; соответствующие команды,
как правило, имеют короткий двоичный код. Однако количество РОН в процессоре
невелико; их может не хватить для размещения всех переменных при решении сложной
задачи.
Непосредственная адресация. Операнд(ы) располагаются в самой команде, в ее
последних байтах. Эти байты, как правило, находятся во внутренней очереди команд
процессора, поэтому доступ к ним осуществляется также достаточно быстро.
Прямая адресация. В составе команды находится не сам операнд, а его адрес. Это
простейший способ обратиться к данным, находящимся в ОЗУ.
Косвенно-регистровая адресация. В этом случае адрес операнда размещается в
одном из регистров. Как правило, для этого используются регистры SI, DI, BX, BP.
Содержимое регистра можно изменять (например, в цикле), при этом одна и та же
команда будет оперировать различными ячейками памяти.
Неявная (или подразумеваемая) адресация используется, например, при
обращении к отдельным флагам или регистру флагов в целом, а также в командах
обработки строк (цепочек данных) типа MOVS, SCAS, в командах MUL, DIV и т.п.
Стековая адресация является разновидностью неявной. Операнд находится в
стеке, на вершину которого указывает регистр SP.
ВНИМАНИЕ! Следует особо отметить, что термин "смещение" при работе с
микропроцессорной системой может пониматься в двух разных смыслах. Во-первых,
это смещение в составе логического адреса памяти, то есть фактически расстояние от
начала сегмента до конкретного (адресуемого) байта; во-вторых, это смещение в
соответствующих методах адресации, то есть величина, прибавляемая к содержимому
регистра, рассматриваемого как «базовый» (обычно BX или BP). В первом случае
13 Итак, при работе на Ассемблере можно организовать циклы тремя способами: 1. с помощью условных переходов; 2. с помощью команд LOOP; 3. с помощью префиксов REP для строковых команд. 3. Замечания о методах адресации Методы адресации данных были подробно рассмотрены в Методических указаниях «Изучение архитектуры и системы команд Intel-совместимых процессоров». Здесь, для удобства работы, будут напомнены лишь основные моменты. Данные, подлежащие обработке в той или иной конкретной команде, как известно, принято называть операндами. Операнды могут располагаться в различных местах, в частности, в одном из РОН, в сегменте данных оперативной памяти, в стеке и т.д., и обращение к ним может быть произведено весьма разнообразными способами. Это разнообразие и составляет суть методов адресации. Система команд и методы адресации – два тесно взаимосвязанных между собой понятия. С одной стороны, ни одной конкретной команды нельзя сформировать без использования того или иного метода адресации; с другой стороны, эти методы "не работают" вне конкретных команд. Перечислим название ОСНОВНЫХ методов адресации и дадим их краткую характеристику. Регистровая адресация. Операнд или операнды располагаются в одном из РОН, в индексном регистре либо (если речь идет о сегментной части адреса) в сегментном регистре. Это обеспечивает очень быстрый доступ к данным; соответствующие команды, как правило, имеют короткий двоичный код. Однако количество РОН в процессоре невелико; их может не хватить для размещения всех переменных при решении сложной задачи. Непосредственная адресация. Операнд(ы) располагаются в самой команде, в ее последних байтах. Эти байты, как правило, находятся во внутренней очереди команд процессора, поэтому доступ к ним осуществляется также достаточно быстро. Прямая адресация. В составе команды находится не сам операнд, а его адрес. Это простейший способ обратиться к данным, находящимся в ОЗУ. Косвенно-регистровая адресация. В этом случае адрес операнда размещается в одном из регистров. Как правило, для этого используются регистры SI, DI, BX, BP. Содержимое регистра можно изменять (например, в цикле), при этом одна и та же команда будет оперировать различными ячейками памяти. Неявная (или подразумеваемая) адресация используется, например, при обращении к отдельным флагам или регистру флагов в целом, а также в командах обработки строк (цепочек данных) типа MOVS, SCAS, в командах MUL, DIV и т.п. Стековая адресация является разновидностью неявной. Операнд находится в стеке, на вершину которого указывает регистр SP. ВНИМАНИЕ! Следует особо отметить, что термин "смещение" при работе с микропроцессорной системой может пониматься в двух разных смыслах. Во-первых, это смещение в составе логического адреса памяти, то есть фактически расстояние от начала сегмента до конкретного (адресуемого) байта; во-вторых, это смещение в соответствующих методах адресации, то есть величина, прибавляемая к содержимому регистра, рассматриваемого как «базовый» (обычно BX или BP). В первом случае
Страницы
- « первая
- ‹ предыдущая
- …
- 11
- 12
- 13
- 14
- 15
- …
- следующая ›
- последняя »