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

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


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



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

Предложения языка Ассемблера


Предложения ЯА



Комментарии Инструкции Директивы


Программа на ЯА – это последовательность предложений, каждое из которых занимает отдельную строку. Максимальная длина строки – 131 символ.

Переносить предложения на следующую строку или записывать 2 предложения на одной строке запрещено.

Правила расстановки пробелов:

- пробел обязателен, чтобы отделять стоящие рядом имена или числа;

- внутри имен или чисел пробелы не допускаются;

- в остальных случаях пробелы используются произвольно;

- количество пробелов подряд безразлично.

Предложения ЯА делятся на три вида: комментарии, инструкции и директивы.

  1. Комментарии не влияют на смысл программы, при трансляции Ассемблер их игнорирует. Комментарием считается любая строка или конец строки, начиная с точки с запятой, либо пустая строка.

Например,

; начало процесса

ADD BX, 20; BX := BX + 20d

Можно организовать комментарий, состоящий из нескольких строк, он должен начинаться с директивы

COMMENT {маркер} {текст}



{текст}{маркер} [{текст}]

где {маркер} – любой символ, кроме пробела, расположенный после COMMENT,

прямоугольными скобками оформляются необязательные элементы.

Последней строкой комментария считается строка, содержащая тот же маркер в любой позиции.

Это позволяет временно исключить фрагмент программы из обработки.

  1. Инструкции ЯА были в основном рассмотрены выше.

Общий вид инструкции ЯА:

[{метка}:] {мнемоника} [{операнды}] [;{комментарий}]

где {мнемоника} – является обязательной частью инструкции, она относится к ключевым словам;

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

Например,

SYM: mov AH, S[SI+2]; AH := содержимое ОП по адресу [S+[SI]+2]

mov CX, [126h]; CX := содержимое ОП по адресу [126h]

add Z, -300; Z := Z + (- 300d)

Выражения в квадратных скобках позволяют вычислить адрес операнда как смещение относительно DS.

Непосредственный операнд не может быть представлен выражением.

  1. Директивы не порождают машинные коды и используются на этапе ассемблирования.

Директивы в ЯА бывают трех видов:

      • директивы определения данных и резервирования памяти;

      • директивы определения имен;

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

Общий вид директивы ЯА

[{имя}] {название директивы} [{операнды}]

а) ^ Директивы определения данных и резервирования памяти используются для определения и инициализации основных единиц памяти:

DB – (declare byte) декларация последовательности байтов;

DW – (declare word) декларация последовательности слов;

DD – (declare double word) декларация последовательности двойных слов.

Рассмотрим эти директивы на примере декларации байтов

[{имя}] DB {начальные значения}

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

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

Например,

Line DB ‘SYMBOL буквы‘; описана последовательность 12 байтов

M DB 2

DB -4

Две последние декларации описывают общую ООП из 2 байтов.

Начальные значения разделяются запятыми, если отдельному байту на присваивается начальное значение, то в списке начальных значений записывается «?».

Например,

A DB 0f2h,-2,?,’*’ ; описываются 4 байта, содержащие следующую информацию:

F2h

FEh

Что было

2Ah

А

А+1

А+2

Код ’*’



б) ^ Директивы определения имен.

Директива EQU (equal) позволяет присвоить символическое имя часто используемой конструкции.

Общий вид : {имя} EQU {выражение}

где {имя}- может быть определено только один раз в программе, оно сохраняет свое значение во всей программе, если не будет отменено директивой PURGE;

{выражение} – может определять константы, мнемоники, регистры, адреса.

Ассемблер автоматически заменяет имя выражением(его значением).

Например,

K EQU 1024; K=1024

Stap EQU xor ax, ax ; Stap замещается текстом команды

Prop EQU ‘type enter’ ; Prop замещается текстом сообщения

Существует другой вид той же директивы :

{имя} = {константное выражение}

Константа, описанная таким образом, может менять свое значение в разных частях текста программы.

Например,

X = 10

A DW X ; эквивалентно A DW 10



X = X+4

B DB X ; A DW 14d

Директива PURGE используется для удаления имени из таблицы имен, которую формирует ассемблер, и для его переопределения.

Общий вид: PURGE {имя}

Например,

PURGE Stap ; После этой директивы имя Stap можно переопределить.

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

Общий вид

{имя} LABEL {тип} , где



три первых атрибута используются для имен ячеек памяти с данными, а два последних - для меток команд.

Например,

Barb LABEL BYTE

Barw DW 253Bh



mov AL, Barb; AL := ОП[Barb] (размер - 1 байт)

mov BX, Bar W; BX := ОП[Barb W] - слово

Таким образом можно обращаться как к слову целиком, так и к отдельному байту.

в) ^ Директивы управления ассемблированием или структурные директивы

Перечислим основные директивы этой группы, необходимые для оформления программы на ЯА:

SEGMENT – определение сегмента;

ENDS – конец сегмента;

END – конец исходного файла;

ASSUME – определение сегментных регистров;

PROC – определение процедуры;

ENDP – конец текста процедуры.

Эти директивы на примере необходимого оформления структуры программы. Кроме того есть директивы набора команд (инструкций) для конкретных МП :

.8086 – используются по умолчанию

.8087

.286 – 286 процессора набор команд

.286p ; защищенный режим

.287 и т.д.

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




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

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

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

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

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