Конспект лекций по курсу язык ассемблера ibm icon

Конспект лекций по курсу язык ассемблера ibm


1 чел. помогло.
Смотрите также:
Конспект лекций удк 651. 5 Ббк 60. 844 Конспект лекций по курсу «Делопроизводство»...
Конспект лекций удк 651. 5 Ббк 60. 844 Конспект лекций по курсу «Делопроизводство»...
Опорный конспект лекций по макроэкономике Автор: Фридман А. А...
Конспект лекций по курсу «Организация производства»...
Конспект лекций по курсу «Русский язык и культура речи»...
Конспект лекций по курсу “Начертательная геометрия и инженерная графика” Кемерово 2002...
Горобец е. Г., Карлина о. А., Нарушевич а. Г., Нечепуренко м. Ю...
Горобец е. Г., Карлина о. А., Нарушевич а. Г., Нечепуренко м. Ю...
Конспект лекций часть 1 2008 перечень ссылок основная: М...
Конспект лекций по курсу «бизнес-планирование в условиях рынка»...
Конспект лекций по курсу “ Общая химическая технология” для студентов специальности 090200 всех...
Конспект лекций по курсу «теория чисел» Методическая разработка...



Загрузка...
страницы: 1   2   3   4   5   6   7   8   9   ...   12
вернуться в начало
скачать
^

Сегментация памяти


Память трактуется как одномерный массив байтов, каждый байт ассоциируется с двоичным адресом (номером), который называется физическим адресом.

Физический адрес – это 20-битовое беззнаковое целое от 0h до FFFFFh (метка h обозначает 16-ричную систему счисления), которое позволяет описать адресное пространство объемом 1 Мбайт.

Разрядность основного слова МП равна 2 Байта = 16 бит, поэтому для вычисления физического адреса используется выделение из адресного пространства сегментов по 64Кбайта (216), и в пределах сегмента можно определять адрес с помощью 16-битового кода.

Сегменты в адресном пространстве должны размещаться, только начиная с байтов, адреса которых кратны 16, т.е. 4 младших бита – нулевые. Такие адреса называются параграфами.

^ Логический адрес представляет собой пару двухбайтовых беззнаковых целых чисел, разделенных двоеточием:

  • начальный адрес сегмента (базовый),

  • смещение (эффективный адрес), указывает расстояние в байтах от начала сегмента до адресуемой ячейки памяти.

Например, могут быть указаны регистры, хранящие соответствующие коды

CS : IP

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

15 12 11 0

DS

начальный адрес сегмента

0 0 0 0

+




15 0

смещение внутри сегмента




19 0

физический адрес байта



Ячейка памяти – это неделимый в данной операции набор последовательных битов.


^

Команды передачи управления


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

Рассмотрим общие аспекты передачи управления. Наиболее важная особенность – это методы адресации, используемые для определения адреса ячейки памяти, куда передаётся управление

^

Близкие и далекие переходы.




Переходы в ЯА кодируются от слова Jump. Например, безусловный переход:

JMP оp,

где ор – имя команды, которой передается управление (т.е. метка).

Команды перехода модифицируют указатель команд IP и, возможно, регистр сегмента команд CS и бывают двух типов:

  • если команда изменяет только IP , т.е. передача управления внутри сегмента, то переход называется ближний переход NEAR.

  • если изменяется пара регистров CS:IP, - это межсегментный переход или далекий переход FAR.

Обычно адрес перехода ассоциируется с меткой команды. Метка – это имя команды, которое располагается до мнемоники команды и отделяется двоеточием. Любая программная метка (включая имя процедуры) имеет атрибут NEAR или FAR.

Например,

АМ1: ADD AX,4

………………….

JMP AM1
^

Адресация переходов


а) Прямая адресация.

Команда содержит в себе базовый адрес сегмента и смещение. Это допускается только в командах межсегментного перехода или вызова процедур. Метка, которой передается управление, должна иметь атрибут FAR.

JMP CATS

где CATS – метка команды или имя процедуры, а JMP – аналог GOTO.

б) ^ Косвенная адресация

Адрес перехода содержится в регистре или ячейке памяти. Это допускается для межсегментных и внутрисегментных переходов.

JMP AX ; в АХ заранее помещен перехода

^ JMP NEAR COD[BX]

Во втором примере есть явное указание типа перехода (NEAR – оператор в команде), COD[BX] – базовая адресация команды, которой передается управление.


в) ^ Относительная адресация

Место перехода указывается как некоторое расстояние от самой команды перехода. Эффективный адрес перехода вычисляется суммированием индекса смещения, находится в команде и текущего значения указателя команд IP.

Имеется 2 типа:

  1. с 8 битовым индексным смещением, обеспечивает передачу управления в диапазоне (-128:128Б) (SHORT)

  2. с 16 битовым индексным смещением

(-32 768:32768Б) от текущей команды NEAR

Операндом является метка с атрибутом NEAR, по которой ассемблер автоматически вычисляет значение. В команде может быть указан тип перехода:

mov w, offset L1; (в ячейку w записывается смещение L1 относительно ; текущей команды offset – смещение)

…………………………….

JMP w или JMP SHORT w ;то тогда проверяется корректность программы ; ; (действительно ли short )


^ Команды условных переходов делятся на 2 группы:

а) операторы, анализирующие результаты предыдущей команды (флаги) – условный переход в классическом понимании. Они имеют только 1-байтовое смещение.

Если условный переход требует удаление более чем на 128Б (30-40 команд), то используется комбинация условного и безусловного перехода.

Например:

Требуется NEAR переход на метку ZERO по флагу ZF=1, тогда

………..

JNZ CONTINUE; if ZF<>1 then continue

JMP ZERO

CONTINUE

Т.е. используется условный переход по противоположному признаку, а по ZF=1 получим 2-хбайтовый переход.

Мнемоника условного перехода сложна, таких переходов более 20. Некоторые очевидны. Для образовании мнемоники используют следующие сокращения:

E – equal (=)

N – not (не)

G – больше для знаковых целых

L – меньше для знаковых целых

A – above (выше) беззнаковых

B –below (ниже) для беззнаковых

В условных переходах используется после J от одной до трех букв (из перечисленных выше).

Например, после сравнения чисел результат ор1<ор2, возможны 2 команды, эквивалентные между собой для одного и того же перехода.

  • Для знаковых JL ADRES

^ JMGE ADRES

  • Для беззнаковых JB ADRES

JNA ADRES


б) команды управления итерацией(циклом) :

LOOP ор

Управление циклом по счетчику, где ор – метка первой команды цикла, цикл управляется счетчиком в СХ.

Команда LOOP уменьшает содержимое СХ (dec СХ) и передает управление в начало цикла, если содержимое СХ<>0, иначе управление передается команде следующей за LOOP.

Обычно цикл оформляется следующим образом.

mov CX,N ; СХ = числу переходов цикла

L1: ……… начало цикла

……………….

LOOP L1;


Команда LOOP эквивалентна 3-м командам:

Dec CX

Cmp CX, 0

Jne L1

Цикл должен быть в рамках short.

Особенности команды LOOP:

  • счетчик цикла находится только в CX;

  • начальное значение загружается в CX>0 до входа в цикл;

  • команды прохода цикла выполняются хотя бы один раз;

  • LOOP осуществляет переход типа SHORT, поэтому проход цикла не должен занимать 128Б (30-40 команд); если нужен более длинный проход цикла, то используется сочетание условных и безусловных переходов;

  • CX может использоваться как операнд в цикле, но не должен изменяться другими командами.

Есть и другие команды управления циклом. Например, команды перехода по циклу с дополнительным условием, а именно с учетом флага ZF. Можно использовать 2 эквивалентные записи:

LOOPE op

LOOPZ op

Здесь цикл повторяется CX раз, пока сохраняется ZF=1, что соответствует сложному условию передачи управления CX<>0 AND ZF=1. Эти команды управления циклом обычно используются для решения задач поиска в последовательностях, их основной недостаток состоит в том, что неочевидна причина выхода их цикла, и требуется дополнительный анализ по окончании цикла.






оставить комментарий
страница4/12
Дата02.10.2011
Размер0,99 Mb.
ТипКонспект, Образовательные материалы
Добавить документ в свой блог или на сайт

страницы: 1   2   3   4   5   6   7   8   9   ...   12
отлично
  1
Ваша оценка:
Разместите кнопку на своём сайте или блоге:
rudocs.exdat.com

Загрузка...
База данных защищена авторским правом ©exdat 2000-2017
При копировании материала укажите ссылку
обратиться к администрации
Анализ
Справочники
Сценарии
Рефераты
Курсовые работы
Авторефераты
Программы
Методички
Документы
Понятия

опубликовать
Загрузка...
Документы

Рейтинг@Mail.ru
наверх