WorldodTech

Регистрация


Технологии вокруг нас

Скорость Wi-Fi сегодня

Новая 3D технология ...

Команды пересылки данных

Для удобства практического применения и отражения их специфики команды данной группы удобнее рассматривать в соответствии с их функциональным назначением, согласно которому их можно разбить на следующие группы команд:

1) пересылки данных общего назначения;

2) ввода-вывода в порт;

3) работы с адресами и указателями;

4) преобразования данных;

5) работы со стеком. Команды пересылки данных общего назначения

К этой группе относятся следующие команды:

1) mov – это основная команда пересылки данных. Она реализует самые разнообразные варианты пересылки. Отметим особенности применения этой команды:

а) командой mov нельзя осуществить пересылку из одной области памяти в другую. Если такая необходимость возникает, то нужно использовать в качестве промежуточного буфера любой доступный в данный момент регистр общего назначения;

б) нельзя загрузить в сегментный регистр значение непосредственно из памяти. Поэтому для выполнения такой загрузки нужно использовать промежуточный объект. Это может быть регистр общего назначения или стек;

в) нельзя переслать содержимое одного сегментного регистра в другой сегментный регистр. Это объясняется тем, что в системе команд нет соответствующего кода операции. Но необходимость в таком действии часто возникает. Выполнить такую пересылку можно, используя в качестве промежуточных все те же регистры общего назначения;

г) нельзя использовать сегментный регистр CS в качестве операнда назначения. Причина здесь простая. Дело в том, что в архитектуре микропроцессора пара cs: ip всегда содержит адрес команды, которая должна выполняться следующей. Изменение командой mov содержимого регистра CS фактически означало бы операцию перехода, а не пересылки, что недопустимо. 2) xchg – применяют для двунаправленной пересылки данных. Для этой операции можно, конечно, применить последовательность из нескольких команд mov, но из-за того, что операция обмена используется довольно часто, разработчики системы команд микропроцессора посчитали нужным ввести отдельную команду обмена xchg. Естественно, что операнды должны иметь один тип. Не допускается (как и для всех команд ассемблера) обменивать между собой содержимое двух ячеек памяти. Команды ввода-вывода в порт

Посмотрите на рисунок 22. На нем показана сильно упрощенная, концептуальная схема управления оборудованием компьютера.

Рис. 22. Концептуальная схема управления оборудованием компьютера

Рис. 22. Концептуальная схема управления оборудованием компьютера

Как видно из рисунка 22, самым нижним уровнем является уровень BIOS, на котором работа с оборудованием ведется напрямую через порты. Тем самым реализуется концепция независимости от оборудования. При замене оборудования необходимо будет лишь подправить соответствующие функции BIOS, переориентировав их на новые адреса и логику работы портов.

Принципиально управлять устройствами напрямую через порты несложно. Сведения о номерах портов, их разрядности, формате управляющей информации приводятся в техническом описании устройства. Необходимо знать лишь конечную цель своих действий, алгоритм, в соответствии с которым работает конкретное устройство, и порядок программирования его портов, т. е., фактически, нужно знать, что и в какой последовательности нужно послать в порт (при записи в него) или считать из него (при чтении) и как следует трактовать эту информацию. Для этого достаточно всего двух команд, присутствующих в системе команд микропроцессора:

1) in аккумулятор, номер_порта – ввод в аккумулятор из порта с номером номер_порта;

2) out порт, аккумулятор – вывод содержимого аккумулятора в порт с номером номер_порта. Команды работы с адресами и указателями памяти

При написании программ на ассемблере производится интенсивная работа с адресами операндов, находящимися в памяти. Для поддержки такого рода операций есть специальная группа команд, в которую входят следующие команды:

1) lea назначение, источник – загрузка эффективного адреса;

2) Ids назначение, источник – загрузка указателя в регистр сегмента данных ds;

3) les назначение, источник – загрузка указателя в регистр дополнительного сегмента данных es;

4) lgs назначение, источник – загрузка указателя в регистр дополнительного сегмента данных gs;

Перейти на страницу: 1 2 3 4