План Язык программирования Ассемблер и его возможности


Операторы передачи данных


Download 95.62 Kb.
bet8/12
Sana17.06.2023
Hajmi95.62 Kb.
#1549318
TuriЛекция
1   ...   4   5   6   7   8   9   10   11   12
Bog'liq
Лекция №17b

Операторы передачи данных.
Они осуществляют обмен данными между регистрами и ячейками памяти.
1)MOV (переслать) пересылает содержимое второго операнда (слово или байт) в качестве содержимого первого операнда. Можно пересылать байт или слово между регистром и ячейкой памяти или между двумя регистрами. А также можно помещать непосредственное значение в регистр или в ячейку памяти.
Примеры:
MOV AX, Table ; Пересылка из ячейки ОП в регистр. MOV Table, AX ; и наоборот
MOV BL, AL ; Пересылка между регистрами MOV CL, -30 ; Загрузка константы в регистр MOV Mem, 25h ; или в ячейку ОП
Следует отметить, что с помощью данного оператора нельзя выполнять пересылку данных из одной ячейки ОП в другую ячейку ОП. Такая пересылка может быть осуществлена двумя операторами MOV с использованием регистра общего назначения.
С помощью оператора MOV можно загружать в регистр общего назначения (но не в регистр сегмента) номер начального параграфа сегмента, задав в качестве второго операнда имя сегмента.
Например:
MOV AX, Dataseg ; Data seg - имя сегмента данных
Для загрузки в регистр сегмента (кроме CS) номера начального параграфа сегмента требуются два оператора MOV. Например:
MOV AX, Dataseg ; Загрузка в АХ MOV DS, АХ ; Пересылка в регистр DS
Что касается регистра сегмента кода CS, то он не может быть использован в качестве первого операнда в операторе MOV. Кроме того, нельзя пересылать содержимое одного регистра сегмента в другой. Такая пересылка может быть осуществлена двумя операторами MOV с использованием регистра общего назначения.
2)XCHG (обменять) производит обмен содеряашого двух регистров или регистра и ячейки ОП. Следующие два фрагмента программ делают одно и то же - меняют местами содержимое двух байтов в ОП - Opr1 и Орг2:
а)
MOV AL, Opr1 ; (Oprl)-»AL MOV BL,Opr2 ; (Opr2)-4>BL MOV Opr2, AL ; (AL) -> Opr2 MOV Oprl,BL ; (BL)->Oprl б)
MOV AL,Oprl; (Oprl)-> AL XCHG AL;Opr2 ; (Opr2)->AL MOV Oprl,AL; (AL) -> Oprl



В варианте "б" потребовалось на одну инструкцию и на один регистр меньше, чем в "а".
3)PUSH (поместить слово в стек) помещает содержимое регистра или ячейки ОП размером в 16-битовое слово на вершину стека.
Примеры:
PUSH АХ ; (АХ) -> стек PUSH Mem ; (Мem) -> стек
4)POP (извлечь слово из стека) выбирает слово из вершины стека и помещает его в ячейку памяти или в регистр.
Пример:
POP АХ ; Слово из вершины стека -> АХ
5)LEA (загрузить адрес) пересылает адрес (смещение) ячейки памяти в любой 16битовый регистр данных, регистр-указатель или индексный регистр. Оператор имеет два операнда. В качестве первого из них записывается регистр, а в качестве второго - метка ячейки ОП.
Пример:
LEA ВХ, Mem ; Смещение ячейки Mem -> ВХ

Download 95.62 Kb.

Do'stlaringiz bilan baham:
1   ...   4   5   6   7   8   9   10   11   12




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling