Здавалка
Главная | Обратная связь

КОМАНДЫ ПЕРЕСЫЛКИ ДАННЫХ



Описание действия команды в таблице, как правило, очень кратко и схематично и неформально раскрывается в тексте, идущем за таблицей.

 

Переместить Mov dst,src DST SRC
(MOVe data — перемещение данных) флаги не изменяются

Команда копирует содержимое источника (или сам источник, если это непосредственный операнд), в приёмник. При этом источник не изменяется. Возможны различные комбинации операндов: регистр-регистр, регистр-память, память-регистр и т.д. Нельзя копировать командой mov содержимое ячейки памяти в другую, т.е. недопустима команда

mov word ptr [200],[300]

Примечание. Оператор PTR позволяет в одной команде изменить тип переменной, в качестве типа используется ключевые слова BYTE, WORD, DWORD.

Для этого придется воспользоваться каким-нибудь промежуточным регистром, лучше всего AX:

mov ax,[300]

mov [200],ax

Имеются также ограничения на операции пересылки с сегментными регистрами.

Обменять xchg opr1,opr2 opr1 opr2
(to eXCHanGe) флаги не изменяются

 

СТЕК

В ПК имеются специальные команды работы со стеком, т.е. областью памяти, доступ к элементам которой осуществляется по принципу "последним записан - первым считан". Но для того, чтобы можно было воспользоваться этими командами, необходимо соблюдение ряда условий.

Под стек можно отвести область в любом месте памяти. Размер ее может быть любым, но не должен превосходить 64Кб, а ее начальный адрес должен быть кратным 16. Другими словами, эта область должна быть сегментом памяти; он называется сегментом стека. Начало этого сегмента (первые 16 битов начального адреса) должно обязательно храниться в сегментном регистре SS.

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

Запись слова в стек: PUSH opr

Здесь opr обозначает любой 16-битовый регистр (в том числе и сегментный) или адрес слова памяти. По этой команде значение регистра SP уменьшается на 2 (вычитание происходит по модулю 2^16), после чего указанное операндом слово записывается в стек по адресу SS:SP.

Чтение слова из стека: POP op

Слово, считанное из вершины стека, присваивается операнду op (регистру, в том числе сегментному, но не CS, или слову памяти), после чего значение SP увеличивается на 2.

Задание

1. Повторить теоретический материал о способах адресации по конспекту лекций и литературе.

2. Подготовить измененное содержимое ds, es, ss.

3. Написать нижеприведенную программу с именем Lab3.asm, сделать исполняемый файл, и проследить за работой в Турбоотладчике.

4. На основе работы программы в таблице 2, в графы 2 и 3 занести ожидаемые значения операндов.

Таблица 2

Оператор Операнд-приемник
  до выполнения После выполнения

 

5. На основе проделанной работы сделать отчет, внести в него краткие выводы.

 

SSEG segment para stack 'stack'

Db 1,2,3,4,5,6,7,8,9,128 dup(0Ah)

SSEG ends

DSEG segment para public 'data'







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.