КОМАНДЫ ПЕРЕСЫЛКИ ДАННЫХ
Описание действия команды в таблице, как правило, очень кратко и схематично и неформально раскрывается в тексте, идущем за таблицей.
Команда копирует содержимое источника (или сам источник, если это непосредственный операнд), в приёмник. При этом источник не изменяется. Возможны различные комбинации операндов: регистр-регистр, регистр-память, память-регистр и т.д. Нельзя копировать командой mov содержимое ячейки памяти в другую, т.е. недопустима команда mov word ptr [200],[300] Примечание. Оператор PTR позволяет в одной команде изменить тип переменной, в качестве типа используется ключевые слова BYTE, WORD, DWORD. Для этого придется воспользоваться каким-нибудь промежуточным регистром, лучше всего AX: mov ax,[300] mov [200],ax Имеются также ограничения на операции пересылки с сегментными регистрами.
СТЕК В ПК имеются специальные команды работы со стеком, т.е. областью памяти, доступ к элементам которой осуществляется по принципу "последним записан - первым считан". Но для того, чтобы можно было воспользоваться этими командами, необходимо соблюдение ряда условий. Под стек можно отвести область в любом месте памяти. Размер ее может быть любым, но не должен превосходить 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 Все права принадлежат авторам размещенных материалов.
|