Основные понятия и структура строки ассемблера.



Ассемблер – это программа -транслятор, преобразующее исходный текст из символической в машинную форму. Язык ассемблера – это язык символических кодов (ЯСК).

Машинная программа или программа на машинном языке – отображение содержимого памяти в двоичном коде или в 8- и 16 – ричном эквиваленте.

    Область применения ассемблера – разработка программ для микроконтроллеров, тестирование при ремонте СУ, отслеживание процессов на физическом уровне и наблюдение происхождения сигналов по шинам..

Для каждой команды в машинной программе определены: КОП (кода операции), операнд и их адреса. Например, для перехода по адресу FE 00H фрагмент программы будет выглядеть следующим образом:

                  

             Адрес                  Содержимое

              800                 С3 - КОП

              801                 00 - операнд

              802                 FE – операнд

Команда микропроцессора должна содержать информацию двух видов: во-первых, команда должны сообщать микропроцессору, что делать (выполнять сложение, очистку, пересылку, сдвиг и т.п.); во-вторых, указывать адрес, т.е. местоположение обрабатываемых данных. Например, команды могут информировать микропроцессор о следующих действиях: добавить к содержимому аккумулятора содержимого некоторой области памяти, очистить аккумулятор, переместить данные из р-ра А в р-р В, выполнить сдвиг содержимого аккумулятора и т.д. Если длина команды (формат) составляет два или три слова (слово – 1 байт), то первое из них – это код операции (КОП), а второе и третье – адрес. При этом в трехкратной команде после кода операции следует старший байт адреса, а затем младший байт адреса, или 16-разрядные (2 байта) данные. А при выполнение команды сначала считывает младший байт адреса, а затем старший байт (также считываются байты данных).

    В ассемблере адреса, коды операций, операнды отображают буквенными мнемоническими обозначениями, например:

START : LDA X; - загрузка аккумулятора

 


 

Метка: символическое обозначение адреса команды

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

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

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

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

 

        

 

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

 

Однако для блока  

 

 

МП использует несколько команд.

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

 

 

 

 


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

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

    Написанная и откорректированная с помощью редактора программа может ассемблироваться. Ассемблер – служебная программа, преобразующая символические имена (сокращенные английские слова) и символические адреса в команды в машинном коде и числовые адреса. Процесс редактирования – ассемблирования носит итерационный характер; после корректировки всех ошибок его повторении завершается.

 

                    

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

 

Вопрос 20

Действия ассемблера при трансляции.

                                    1-й проход по исходному тексту

1. Просмотр последовательности команд и выделение памяти для кодов команд.

2. Просмотр имен (переменных, констант) и выделение для них памяти.

3. Формирование таблиц имен (меток), присвоение им численных значений.

                                     2-й проход по исходному тексту

3. Преобразование символических обозначений в машинные коды, формирование выходных файлов.

Пример:

                1-й проход

Формирование таблицы имен, определенных пользователями:

                START=0800

                Y=0901

                X=0900

                STOP=0807

При этом надо учесть, что в ассемблере резервируется внутренняя таблица постоянных имен, которые нельзя использовать как имена переменных:

                LDA=3A      END

                RLC=07        ORG

                STA=32        A,B,C,D,E,H,L,SP,PSW

                HLT=76

 

                     2-й проход

Постановка значений имен (символов).

Формирование выходных файлов.

Абсолютный модуль.

Листинг.

Таблица перекрестных ссылок.

Распределение памяти.

В итоге ассемблер создает файл, включающий коды:

     а) содержимое ячеек машинной программы

     б) служебную информацию для размещения кодов по заданным физическим (абсолютным) адресам -абсолютный модуль. После этого программа – абсолютный загрузчик переносит коды машинной программы из абсолютного модуля в память и запускает.

     Непрерывному участку памяти (экстенту) в абсолютном модуле соответствует физический блок или запись вида: ОС DOS1800 (ISIS II).

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

     Листинг – коды машинной программы и соответствующие им операторы исходного текста; таблицы меток; таблицы перекрестных ссылок. Для каждой метки (имени) указаны строки листинга, где есть обращение к данной метке, что необходимо для отладки и документирования.

 


Дата добавления: 2018-04-15; просмотров: 396; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!