Студопедия
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Ассемблирование и выполнение программ

Читайте также:
  1. A)& Қолданушыға қажет жұмыстарды атқаруға мүмкіндік беретін программа
  2. Access программасын қалай шақыруға болады?
  3. C. Желiлiк компоненттердi автоматтандыратын программа
  4. I. Выполнение контрольной работы
  5. I. Выполнение контрольной работы
  6. I. Закон Костромской области о прогнозировании, программе социально-экономического развития Костромской области и областных целевых программах
  7. I. Программа лекционного курса
  8. I. Программа экзамена
  9. I. Разработка программы мониторинга
  10. I. Системные программы.

Прежде чем исходную программу, написанную на языке ассемблера, можно будет выполнить, ее необходимо ассемблировать в объектную про­грамму на машинном языке. Задача осуществляется программой-ассембле­ром, заменяющей все символические обозначения операций и адресных режимов двоичными кодами, а все имена и мет­ки — их настоящими значениями.

Ассемблер присваивает командам и блокам данных адреса, начиная с адреса, заданного в директиве ORIGIN. Эта директива отвечает за размещение по нуж­ным адресам констант, которые могут быть заданы в директивах DATAWORD, и резервирует память в соответствии с указаниями, содержащимися в директивах RESERVE.

Важнейшим моментом процесса ассемблирования является определение зна­чений, заменяющих имена. В тех случаях, когда значение имени определяется ди­рективой EQU, это очень простая задача. Но если имя задается в поле «Метка» команды, представляемое им значение определяется положением этой команды в ассемблированной объектной программе. Поэтому в ходе формирования ма­шинного кода ассемблер должен отслеживать адреса, по которым будут загру­жаться последовательные команды программы. В некоторых случаях ассемблер не заменяет представляющее адрес имя реаль­ным значением этого адреса. Сканируя исходную программу, ассемблер записывает все имена и соответст­вующие им числовые значения в специальную таблицу, называемую таблицей символов. Когда имя встречается в программе повторно, оно заменяется соответ­ствующим значением из таблицы. На первом проходе ассемб­лер создает полную таблицу символов. В конце этого прохода всем встречающимся в программе именам должны быть поставлены в соответствие числовые значения.

После этого ассемблер снова проходит по исходной программе и заменяет все имена значениями из таблицы символов. Такой ассемблер называется двухпро-ходным.

Ассемблер сохраняет объектную программу на магнитном диске. Перед вы­полнением эта программа загружается в память компьютера. Для этого там должна присутствовать еще одна служебная программа, называемая загрузчиком. Загруз­чик выполняет последовательность операций ввода, необходимых для пересылки программы на машинном языке с диска в заданное место памяти. При этом за­грузчик должен знать длину программы и адрес, по которому ее необходимо за­грузить. Обычно ассемблер помещает такого рода информацию в заголовок про­граммы, предшествующий объектному коду. Загрузив код, загрузчик начинает выполнение объектной программы с перехода к той ее команде, которая должна быть реализована первой. Адрес этой команды включается в программу на языке ассемблера в качестве операнда директивы ассемблера END. Ассемблер помеща­ет этот адрес в заголовок, предшествующий объектному коду на диске.

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

17. Директивы определения данных

Ассемблер обеспечивает два способа определения данных: во-первых, через указание длины данных и, во-вторых, по их cодержимому. Рассмотрим основной формат определения данных:

[имя] Dn выражение
1.Имя элемента данных не обязательно, но если в программе имеются ссылки на некоторый элемент, то это делается посредством имени.

2.Для определения элементов данных имеются следующиедирективы: DB (байт), DW (слово), DD (двойное слово),DQ (учетверенное слово) и DT (десять байт).

3.Выражение может содержать константу, или знак вопроса для неопределенного значения.

Выражение может содержать символьную строку или числовую константу.

 

Символьные строки

Используются для описания данных, таких как, например, имена людей или заголовки страниц. Содержимое строки oтмечается одиночными кавычками, например, 'PC' или двойными кавычками - "PC". Ассемблер переводит символьные строки в объектный код в обычном формате ASCII.
Символьная строка определяется только директивой DB, в котоpой указывается более двух символов в нормальной последо вательности слева направо.

 

Числовые константы

Используются для арифметических величин и для aдресов памяти. Ассемблер преобразует все числовые константы в шестнадцитеричные и записывает байты в объектном коде в обратной последовательности - справа налево.

 

Десятичный формат допускает десятичные цифры от 0 до 9 и обозначается последней буквой D, которую можно не указывать, например, 125 или 125D.

 

Шестнад-ный формат допускает шест. цифры от 0 до F и обозначается последней буквой H.

 

Двоичный формат допускает двоичные цифры 0 и 1 и обозначается последней буквой B. Двоичный формат обычно используется для более четкого представления битовых значений в логических командах AND, OR, XOR и TEST.

 

Восмеричный формат допускает восмеричные цифры от 0 до 7 и обозначается последней буквой Q или O,

 




Дата добавления: 2015-04-22; просмотров: 102 | Поможем написать вашу работу | Нарушение авторских прав

1 | 2 | 3 | 4 | 5 | <== 6 ==> | 7 | 8 |


lektsii.net - Лекции.Нет - 2014-2025 год. (0.076 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав