|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Общая структура программы на ассемблереКоманды и директивы Формат директив и команд практически одинаковый. Команды – это утверждение, выполняемые в программе, а директивы – это утверждения для информирования ассемблера о том, как создавать выполняемый код. Утверждения имеют свободную форму записи, это значит, что их можно записывать с любой колонки, с произвольным количеством пробелов между операндами, но до комментария должен быть хотя бы один пробел, но утверждение должно быть записано в одной строке не заходя за 128 колонку. Имя интерпретируется как метка, переменная или ключевое слово, поэтому за ним всегда следует двоеточие. Имена имеют следующее ограничение: заглавные и строчные буквы не различаются, имя никогда не должно начинаться с цифры и следует избегать начало имени с «@». Различия между командами и директивами проявляется при ассемблировании. Директива – это утверждение, которое выполняется ассемблером во время трансляции исходной программы и получения машинных кодов. Директивы управляют работой компилятора или компоновщика, а не микропроцессора. Директивы используются для сообщения компилятору, какие константы применяются в программе, какие имена присвоены константами, какие сегменты относятся к сегменту кода, стека или данных, в каком формате выводится листинг исходного кода. Команды ассемблера могут быть следующих типов: команды передачи управления, команды передачи данных, арифметические команды, логические команды, команды переходов, команды ввода/вывода (чтение из аппаратного порта) Общая структура программы на ассемблере 1. Заголовок программы на языке ассемблер – необязательный элемент (title) 2. Упрощенный формат сегмента памяти (модель памяти).MODEL [разрядность] модель [язык]. Разрядность – USE16, USE32. Модель памяти 1.Model TINY не выделяют сегмент данных и стек. Эта модель предназначена для создания файлов типа com. Модель памяти 2.Model SMALL 64кб на код и 64кб на данные. Модель памяти 3.Model MEDIUM для хранения данных и сложных вычислительных алгоритмов. Модель памяти 3.Model COMPACT должен быть использован большой объем памяти под данные. Также есть.Model LARGE и.Model HUGE 3. Сегмент стека.STACK - эта директива предназначена для организации структуры памяти и установления размер пространства для стека. Если не указывается размер стека, то под него выделится 100кб. 4. Сегмент данных.DATA директива организации структуры памяти, которая начинает или продолжает сегмент данных, где хранятся переменные. Данная директива используется при наличии директивы, определяющей модель памяти 5. Сегмент кода.CODE – является директивой организации структуры памяти и отмечет начало сегмента кода, где должны находиться выполняемые команды. Данная директива используется только при наличии директивы модели памяти. Для малой и компактной модели памяти может быть только один сегмент кода и имя этому сегменту не присваивается. Для других моделей памяти допускается определение нескольких сегментов кода и различаются они между собой по именам. 6. Директива.PROC – объявляет начало процедуры, endp – конец процедуры, при этом процедуры в языке ассемблер не могу перекрываться. 7. Директива END – заканчивает программу, присутствует в программе всегда Основные элементы языка ассемблер: По сравнению с другими языками программирования в ассемблере редко используют непосредственные данные, к которым относятся цифровые литералы. Целочисленные константы, при написании в программе должны оканчиваться дополнительными буквенными символами, которые являются указателями базы системы счислений. Если 16-ричная константа начинается с буквы, то перед ней ставится 0. Шестнадцатеричная система счисления определяется буквой h, для восьмеричной q, для двоичной – b, для десятичной – d. Значение константного выражения определяется во время трансляции программы и не меняется во время выполнения программы. Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.) |