Главная Случайная страница


Полезное:

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


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Команды передачи данных





ОБЩИЕ

Осуществляют передачу типа регистр - регистр, регистр - память, память - регистр. Наиболее известная из них MOV (передать, переслать) имеет вид

MOV dst, src; dst:= src передает содержимое источника в приемник. Может использовать все режимы адресации. Например:

MOV CX, DX - регистровая адресация, пересылает содержимое регистра CX в DX.

MOV CX, [SI] - косвенная регистровая, пересылает в регистр CX содержимое ячейки памяти, адрес которой содержится в SI. Пусть перед выполнением команды было определено содержимое следующих регистров:

(SI) = 100 - индексный регистр, содержимое должно быть известно, т. к. используем косвенную регистровую адресацию.

(DS) = A000 - определяет базовый адрес сегмента данных.

(A0100) = ABCD - ячейка памяти к которой происходит обращение (DS) * 10 + (SI).

В результате (CX) = ABCD.

Аналогично:

MOV [DI], 8400h;Константа записывается по адресу из DI.

(DI) = 1000

(DS) = A345

(А4450) = 8400h.

XCHG dst, src; Взаимный обмен данными между источником и приемником. Выполняется последовательность операций temp:= dst, dst:= src, src:= temp. Например XCHG AL, BL;обмен байтами между регистрами.

LEA reg, mem;Загружает в регистр reg эффективный адрес mem. Например

Базовая индексная адресация. Эффективный адрес вычисляется как сумма содержимого регистров BX и SI и записывается в регистр BX.

LEA BX, [BX][SI]

(BX) = 0400

(SI) = 003C

(BX) = 043C

 

СТЕКОВЫЕ

PUSH dst;переслать dst в стек.

POP dst;выбрать переменную из стека и поместить ее в dst.

Вершина стека находится в памяти по адресу (SS)*16 + (SP) = 2F000 + 1000 = 30000. Число, которое нужно записать в стек, находится в ячейке (DS)*16 + (BX). Указатель стека уменьшается на 2 и число записывается по этому адресу. В результате получим: (2FFFE) = AAAA, (SP) = 0FFE

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

PUSH [BX]

(DS) = 2800

(BX) = 0400

(SP) = 1000

(SS) = 2F00

(28400) = AAAA

Если теперь выполнить команду POP DX, то получим (DX) = AAAA, (SP) = 1000

Например взаимный обмен регистров своим содержимым можно реализовать так:

PUSH ES

PUSH DS

POP ES

POP DS

 

ВВОДА-ВЫВОДА.

Ввод и вывод всегда осуществляется через регистр AX - слова и AL - байты. Есть два варианта задания номера порта для ввода и вывода - непосредственно в команде (в этом случае можно адресовать 256 портов ввода-вывода) или через регистр DX (64К портов). Естественно содержимое регистров AX (AL) при выводе и DX при его использовании должно быть определено. Например

MOV AL, FFh - Данные для вывода записываются в AL.

OUT 80h, AL - Вывод байта из регистра AL в порт с адресом 80h.

 

MOV DX, 1234h - Адрес порта вывода заносится в DX.

MOV AX, 0Fh - Данные для вывода записываются в AX.

OUT DX, AX - Слово выводится в порт.

 

MOV DX, 1234h - Адрес порта вывода заносится в DX.

IN AX, DX - Слово данных считываются в AX

 

IN AL, ABh - Байт читается из порта AB

 

 

Date: 2015-09-02; view: 325; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию