План Язык программирования Ассемблер и его возможности
Операторы передачи данных
Download 95.62 Kb.
|
Лекция №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: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling