Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LAB_01 система.docx
Скачиваний:
33
Добавлен:
02.02.2015
Размер:
478.82 Кб
Скачать
      1. Создание проекта с модулями на языке ассемблера

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

Рисунок 1.1 – Создание проекта

Если приложение будет полностью разрабатываться на языке ассемблера, формируют пустой проект.

После создания проекта необходимо установить режим использования транслятора языка ассемблера MASM рис.1.2.

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

Для ассемблерного модуля необходимо разрешить также обработку транслятором MASM и при необходимости настроить режим работы MASM (рис. 1.4).

Рисунок 1.2 – Разрешение использования транслятора MASM.

Рисунок 1.3 – Добавление модуля на языке ассемблера

Рисунок 1.4 – Настройка транслятора MASM

      1. Правила формирования исходного текста программы на языке ассемблера

В общем случае любое приложение можно представить в виде трех частей:

область команд – содержит команды программы;

область данных – выделенная память для хранения значений переменных;

область стека – используется для организации передачи параметров и вызова процедур и функций.

Эти три элемента приложения на языке ассемблера описываются явным образом с помощью директив ".CODE", ".DATA", ".STACK".

Структура модуля может быть представлена следующим образом:

1. выбор системы команд .

2. Задание модели памяти

3. Настройки трансляции

4. Выделение памяти под область стека

5. Объявление глобальных переменных приложения .

6. Область команд приложения.

7. Конец текста программы

        1. Выбор системы команд осуществляется с помощью директивы выбора типа процессора.. В системе команд Intel (ia32) допустимы следующие типы:

.8086 – стандартный набор команд ;

.186 – Добавлены дополнительные команды работы со стеком (PUSHA, POPA, PUSH константа), с портами ввода-вывода (INS, OUTS), арифметические команды (IMUL, ROL/ROR, RCL/RCR, SAL/SAR, SHL/SHR с непосредственно указанным числом бит сдвига) и команды реализации языков высокого уровня (ENTER, LEAVE, BOUND).

.286 – добавлены 16 новых команд (LGDT,LIDT,LLDT,LMSW,LTR,SGDT,SIDT,SLDT,SMSW,STR,ARPL,CLTS,LAR,LSL,VERR,VERW) необходимых для работы со средствами управления памятью;

.386 – добавлены команды работы с 32-х разрядными данными;

.486 – добавлены команды управления кэшированием;

.586 – добавлены мультимедийные команды (MMX) и команды параллельной обработки данных (SSE), подключение набора команд Реntium.

При отсутствии установки типа процессора выбирается процессор типа 8086.

        1. Установка модели памяти осуществляется директивой model.

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

Различают следующие модели памяти :

TYNI – крошечная модель (64Кб);

SMALL – малая модель (128 Кб);

LARGE – большая (1Мб);

HUGE – выровненная (1Мб);

FLAT – плоская(до 4Гб).

Модели TYNI, SMALL, LARGE, HUGE применяются для DOS приложение, FLAT для Windows приложений.

В директиве можно указывать тип соглашений по именам переменным и организации вызова подпрограмм и возврата управления из них. Например, директива

.MODEL flat, stdcall

указывает использование модели flat и использования стандартного соглашения по вызову подпрограмм ( как в языке С).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]