Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 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. Например
LEA BX, [BX][SI] (BX) = 0400 (SI) = 003C (BX) = 043C
СТЕКОВЫЕ PUSH dst;переслать dst в стек. POP dst;выбрать переменную из стека и поместить ее в dst.
Для адресации вершины стека (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
|