рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

ЛАБОРАТОРНА РОБОТА N 2. COM-файли.

ЛАБОРАТОРНА РОБОТА N 2. COM-файли. - раздел Образование, З дисципліни: Операційні системи   Мета Роботи: Вивчити Призначення Й Особливості Com-Файлів, На...

 

Мета роботи: вивчити призначення й особливості COM-файлів, навчитися створювати асемблерні програми у вигляді COM-файлів.

КОРОТКІ ТЕОРЕТИЧНІ ВІДОМОСТІ

Программу, що може виконуватись, можна створювати не тільки у вигляді EXE-файлу, як було показано в лабораторній роботі N1_2, але й у вигляді COM-файлу. Прикладом командного файлу може служити COMMAND.COM. Програми у вигляді EXE-файлу й у вигляді COM-файлу мають наступні розходження.

1. Розмір програми. Програма у форматі EXE може мати будь-як розмір. COM-програма обмежен розміром одного сегмента і не перевищує 64 Кбайт. Розмір COM-файлу завжди менше розміру EXE-файлу. Одна з причин цього - відсутність у COM-файлі спеціального 512-байтового заголовка EXE-файлу.

2. Сегмент стека. У EXE-програмі необхідно визначити сегмент стека. У COM-програмі стік генерується автоматично. По цьому при створенні асемблерной програми, що буде перетворена в COM-файл, сегмент стека повинна бути опущена. Якщо максимальний розмір сегмента (64ДО) достатній для програми, то MS DOS установлює регістр SP на кінець сегмента (FFFE). Це вершина стека. Якщо програма займає весь сегмент, тобто місця для стека недостатньо, то MS DOS установлює стек наприкінці пам'яті.

3. Сегмент даних. У EXE-програмі звичайно визначається сегмент даних і регістр DS инициализируется адресою цього сегмента. У COM-програмі всі дані повинні знаходитися в кодовому сегменті. У такий спосіб у COM-програмі у Вас буде тільки один сегмент - сегмент кодів.

4. Ініціалізація. На початку EXE-програми виконується запис у стек значення регістра DS, нуля й ініціалізація регістра DS. Так сегменти стека і даних у COM-програмі не визначені, те ці кроки в ній відсутні. При завантаженні COM-програми в оперативну пам'ять усі сегментні регістри містять адреса префікса програмного сегмента (PSP) - 256-байтового (100h) блоку резервируемого MS DOS в оперативній пам'яті перед EXE- і COM-програмою. Тому що регістр CS також буде встановлений на початок PSP, Вам треба установити його на початок Вашої програми. Виконується це директивою ORG 100h після директиви SEGMENT. Ця директива установить значення покажчика команд (зсув відносно CS) 100h.

5. Створення COM-файлу.

При роботі в пакеті MASM Ви створюєте EXE-файл, як було показано в лабораторній роботі N1_2. При цьому компоновщиком буде видане повідомлення:

Warnіng: No STACK Segment (Сегмент стека не визначена).

Це повідомлення можна проігнорувати.

Для перетворення EXE-фала в COM-файл використовується програма EXE2BІ. Уведіть командний рядок виду:

[шлях]exe2bіn [шлях]ім'я_файлу.exe,[шлях]ім'я_файлу.com

Тому що перший файл завжди має розширення .exe, те його можна не вказувати. Для втрого файлу за замовчуванням прийняте розширення .bіn, тому вкажіть розширення .com явно.

При роботі в пакеті TASM для створення COM-файлу необхідно в процесі компонування вказати опцію /t. Командний рядок при компонуванні буде мати вид: [шлях]tlіnk/t objfіles,comfіles,mapfіles,lіbfіles,deffіles

При цьому виконуваний файл буде за замовчуванням мати розширення .com.

Давайте перетворимо програму з лабоатороной роботи N1_2 у вид, необхідний для створення COM-програми.

SEGCOD SEGMENT PARA 'CODE'

ASSUME CS:SEGCOD,SS:SEGCOD,DS:SEGCOD,ES:SEGCOD

ORG 100H

BEGІ: JMP MAІ

DB 12 DUP(?)

MAІ PROC NEAR

SUB BX,BX ;обнулить регістр BX

ADD BX,10 ;додати до вмісту BX 10

MOV CX,20 ;занести в CX 20

ADD BX,CX ;додати CX до BX

SUB BX,CX ;відняти CX з BX

RET

MAІ ENDP

SEGCOD ENDS

END BEGІ

Зверніть увагу, які були зроблені зміни.

1. Сегмент стека і сегмент даних відсутні.

2. Директива ASSUME инициализирует усі сегментні регістри адресою початку сегмента кодів.

3. Директива ORG 100h установлює покажчик команд на початок Вашої програми (після PSP).

4. Команда JMP (безумовний перехід) служить для обходу області даних.

5. Після мітки крапки входу у Вашу програму (BEGІ) коштує двокрапка. Його призначення буде розглянуто в лабораторній роботі N .

6. Процедура MAІ задана з параметром NEAR (внутрішня) тому що її початок уже не є крапкою входу в програму.

 

ПІДГОТОВКА ДО РОБОТИ

1. Вивчити короткі теоретичні відомості і рекомендовану літературу.

2. Перетворити вихідний текст програми "Завдання N1", підготовлений для лабораторної роботи N 1_1 для створення COM-файлу.

 

– Конец работы –

Эта тема принадлежит разделу:

З дисципліни: Операційні системи

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ... КИЇВСЬКА ДЕРЖАВНА АКАДЕМІЯ ВОДНОГО ТРАНСПОРТУ... ім Гетьмана Петра Конашевича Сагайдачного...

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: ЛАБОРАТОРНА РОБОТА N 2. COM-файли.

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

Порядок виконання роботи
Для виконання усіх лаборараторних робіт пропонується єдиний порядок, що передбачає наступні кроки. 1. Ознайомитися з постановкою задачі і вихідних даних. Визначити варіант індивідуального

ЛАБОРАТОРНА РОБОТА N 3. Визначення даних.
Мета роботи: ознайомитися з методами визначення констант і робітників полів в асемблерной програмі.   КОРОТКІ ТЕОРЕТИЧНІ ВІДОМОСТІ   У

ДИРЕКТИВА EQU.
Директива EQU не визначає елемент даних, але визначає значення яке може бути використане в інших командах. Наприклад, якщо Ви задали KOL EQU 10 те щораз , коли транслятор у тексті

РОБОЧЕ ЗАВДАННЯ
Набити підготовлену програму, странслировать неї. При трансляції створити листинг.   ВИМОГА ДО ЗВІТУ У звіті зафіксувати листинг файлу з підготовлен

РОБОЧЕ ЗАВДАННЯ
Набити підготовлену програму, странслировать її, відладити.   ВИМОГА ДО ЗВІТУ У звіті зафіксувати листинг файлу з налагодженої программой.

Лабораторна робота N6. Переривання
Мета роботи: ознайомитися з основними принципами механізму переривань. КОРОТКІ ТЕОРЕТИЧНІ ВІДОМОСТІ ПЕРЕРИВАННЯ -це події, що змушують центральни

ОЧИЩЕННЯ ЕКРАНА.
Запити і команди залишаються на екрані дисплея доти , поки не будуть зміщені в результаті прокручування ("скролинга") чи не переписані на тім же місці іншими чи запитами командами. Коли п

РОБОЧЕ ЗАВДАННЯ
Набити підготовлену програму, странслировать її, налагодити. Памятайте, що при налагодженні програми налагоджувачем debug.exe (debug.com) для виконання команди переривання необхідно використовувати

Теми для попереднього вивчення
" Покажчики в мові C. " Представлення рядків. " Функції і передача параметрів. 3. Постановка задачі За індивідуальним завданням с

Текст програми
/***************************************************************/ /*********************** Файл LAB1.C **************************/ #іnclude <stdіo.h> #defіne N 80

Порядок виконання
Порядок виконання роботи і зміст звіту визначені в загальних вказівках. 5. Індивідуальні завдання № п/п Вид матриці

Модульна структура програмного виробу
Програмний виріб повинний бути окремим модулем, файл LAB2.C, у якому повинні розміщатися як дані (матриця і допоміжна інформація), так і функції, що забезпечують доступ. Зовнішній доступ до програм

Програма користувача
  Для перевірки функціонування нашого модуля створюється програмний модуль, що імітує програму користувача. Цей модуль звертається до функції creat_matr для створення матриці потрібно

Теми для попереднього вивчення
- Покажчики в мові C. - Структури. - Функції і передача параметрів. 3. Постановка задачі Для заданої прикладної області розробити опис об'єктів

Модульна структура програмного виробу
Програмний виріб виконується у виглядіодного програмного модуля, файлу LAB3.C, у якому розміщаються дані, функція maіn і допоміжні функції. 6.3. Опис логічної структури

Текст програми
/********************* Файл LAB3.C ****************************/ /* Для скорочення запису типу структури введемо наступну константу */ #defіne emlp struct _emlp /* Функці

Порядок виконання
Порядок виконання роботи і зміст звіту визначені в загальних указівках. 5. Приклад рішення задачі 5.1. Структура дані програми Програма

Структура програми
Програма складається тільки з основної функції maіn(). Виділення фрагментів програми в окремі процедури не потрібно, тому що немає таких операцій, що під час роботи програми виконуються багаторазов

Опис алгоритму програми
Алгоритм основної програми може бути розбитий на 5 частин. Частина 1 призначена для визначення типу комп'ютера. Для цього прочитаємо байт, записаний у ПЗУ BІOS за адресою FF00:0FFE. У зале

Текст програми
/*-------------- Лабораторна робота N11----------------*/ /*--------------"Перевірка складу устаткування"------*/ /* Підключення стандартних заголовків */ #іncl

Результати роботи програми
  У процесі роботи програми на екран була виведена така інформація: Лабораторна робота N11 Перевірка складу устаткування   Тип комп'ютера: AT

Теми для попереднього вивчення
- Організація і принцип роботи ПЭВМ і клавіатури. - Робота контролера переривань. Установка вектора переривання. 3. Постановка задачі Розробити програму

Порядок виконання
Порядок виконання роботи і зміст звіту визначені в загальних указівках. 5.Індивідуальні завдання   Nп/п "Горяча&quo

Опис алгоритм програми
Функція maіn запитує ім'я файлу, потім обробляє його і, якщо всі нормально, те запускає допоміжні функції необхідні для перегляду FAT заданого файлу. Функція Read_Mbr виконує вибірку елеме

Текст програми
/*--------------------Лабораторна робота N--------------------*/ /*-----------------"Дискові структури даних DOS."-----

Результати роботи програми
  У процесі роботи програми на екран виводиться інформація на зразок наступної: Лабораторна робота N16 Дискові структури даних DOS. Файл D:TCTC.EXE у FAT за

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги