Главная Случайная страница


Полезное:

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


Категории:

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






Машинно-орієнтовані мови програмування. Асемблери. Структура асемблера, перегляди тексту програми та відповідні бази даних





Асемблер: машинно-орієнтована мова. Основною одиницею в асемблер-програмі є машинна команда (директива асемблера). На її основі будується машинний код.

Директиви асемблера – це команди, що управляють процесом компіляції. На основі директиви асемблера об’єктний код не будується. Кожна машинна команда чи директива записується в один рядок (або в декілька шляхом продовження).

Між кодами операцій і операціями повинен бути щонайменше один " ". Операнди записуються через кому, без проміжків.

ОП1,ОП2 коментар (коментар може починатись або з "*" або з ";")

Помітка – іменує як команди, так дані (символьне ім’я). В асемблері значення символьного імені є адреса. Repeat – символьне ім’я.

 
Repeat
дані
MAX
Сегмент команд
Сегмент даних
Стек
Сегмент
Кожне символьне ім’я кодується парою: (база, зміщення), де база - ім’я сегменту програми, в якому це символьне ім’я визначено.

 

Оскільки ми не можемо знати наперед абсолютну адресу пам’яті ЕОМ, куди завантажується програма, то асемблер виконує початкове присвоєння абсолютної адреси кожного сегменту значення . Реальна адреса формується під час виконання програми шляхом сумування значення регістру та зміщення, а початкові значення регістрів сегментів приписується операційною системою під час завантаження програми.

Генерація машиного коду
Вхідна програма
Синтаксичний аналізатор
Семантичний аналізатор
Лексичний аналізатор
Мовні таблиці ассемблеру
Асемблер під час обробки програми з кожним сегментом пов’язує лічильник сегменту. Обчислюється як попереднє значення плюс довжина команди. Початкове значення кожного лічильника або встановлюється директивою асемблера.

 


Оскільки відсутня дисципліна вживання символьних імен, компілятор асемблеру щонайменше двопрохідний:

1. Попередній перегляд тексту: визначення значень символьних імен, їх адреси (сегмент + зміщення).

2. Другий перегляд тексту: Дає можливість перевірити код команди, та вказує адреси операндів.

Але в асемблері існують такі імена та значення, які не можна визначити під час компіляції (абсолютна адреса, ім’я зовнішньої функції). Тому в об’єктному коді резервується місце для операнда, а в результуючий файл, в таблиці модуля вказується зміщення в об’єктному коді, котре треба модифікувати.


 







Date: 2015-09-24; view: 463; Нарушение авторских прав



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию