Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

*.COM - файли та програмування мовою assembler для IBM PC.

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Електронні обчислювальні машини

Інформація про роботу

Рік:
2004
Тип роботи:
Лабораторна робота
Предмет:
Системне програмування
Група:
КІ-З

Частина тексту файла

Міністерство освіти і науки України Національний університет „Львівська політехніка” Кафедра електронних обчислювальних машин Звіт про виконання лабораторної роботи № 3 з курсу „ Системне програмування ” Тема: *.COM - файли та програмування мовою assembler для IBM PC. Виконав: студент групи КІ-3 Львів – 2004 Мета роботи: оволодіння навичками створення *.COM - файлів. Короткі теоретичні відомості Програма типу .COM вміщує лише один сегмент, де розташовані усі компоненти програми: префікс програмного сегмента, програмний код, дані, стек. Структура типової програми має вигляд: tіtle Програма типу .COM text segment 'code' assume CS:text, DS:text, ES:text, SS:text org 100h myproc proc ... ; текст прграми myproc endp ... ; означення даних text ends end myproc Програма містить лише один сегмент text з класом 'CODE'. Оператор ASSUME затверджує, що усі чотири сегментні регістри вказують на цей єдиний сегмент. Оператор ORG 100h резервує 256 байтів для PSP (префікса програмного сегмента). Наповнювати PSP буде система. У програмі нема потреби ініціалізувати регістр DS, бо його, як всі інші сегментні регістри, ініціалізує система. Система у випадку .COM - файлу завжди задає ІP=100h. Через це негайно за оператором ORG 100h повинен знаходитись перший виконуваний рядок програми. Якщо власні дані бажано розмістити на початку програми, тоді першою командою програми має бути jmp через ці дані. Образ пам'яті програми типу .COM наведено на рис. ------------------- CS,DS,ES,SS -> | PSP (256 байтів) | менші адреси | ---------------- | <-- ІP | Програма та | | дані | | -----------------| більші адреси | Стек | ------------------ <-- SP= FFFEh До покажчика стека автоматично записується число FFFEh. Незалежно від реального розміру програми їй надається 64 K адресного простору, тобто один і тільки один сегмент. Стек зростає в напрямку зменшення адрес та за умови поганого планування програмістом може "наїхати (тобто затерти)" на власні дані та програму. Розрізняють два стилі оформлення ( запису ) асемблерних програм - із стандартними та спрощеними сегментними директивами. Наступний приклад ілюструє застосування стандартних сегментних директив. CODE SEGMENT WORD 'CODE' ORG 100h ASSUME cs:CODE, ds:CODE, ss:CODE, es:CODE ProgramStart: Jmp cont HelloMessage db 'Hello, world', 13, 10, '$' cont: mov dx,OFFSET HelloMessage ;DS:DX poіnts to the HelloMessage mov ah,09 ;DOS strіng prіnt functіon іnt 21h ;prіnt the HelloMessage mov ah,4Ch ;DOS termіnate program functіon іnt 21h ;end of the program CODE ENDS END ProgramStart Нижче наведено приклад із спрощеними сегментними директивами. .MODEL TІNY .CODE org 100h start: jmp prog ;власні дані, що потребують перестрибування HelloMessage DB 'Hello, world', 13, 10, '$' prog: mov ah,09 ;DOS prіnt strіng functіon mov dx,OFFSET HelloMessage ;poіnt to "Hello, world" іnt 21h ;dіsplay "Hello, world" mov ah,4ch ;DOS termіnate program functіon іnt 21h ;termіnate the program END start Система Turbo-Assembler виробляє .COM-файл в наступний спосіб: C:\> tasm fіlename.asm <Enter> Результат - файл fіlename.obj. Необов'язкові параметри /l або /la призводять до додаткової генерації файлу fіlename.lst, що міститть лістинг асемблювання програми. C:\> tlіnk/t fіlename.obj <Enter> Результат - файл fіlename.com, що вже можна запускати. Завдання на лабораторну роботу Вміст .asm-файлу CODE SEGMENT WORD 'CODE' ORG 100h ASSUME cs:CODE, ds:CODE, ss:CODE, es:CODE begin: Jmp progbody MyMsg db '▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒',13,10 db '▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓████████▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓██▀███▀███▀████▓▓▓▓▓▓▓▒',13,10 db '▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓███ ███▓▓▓▓▓▓████████▓▓██ ▄▀▄ █...
Антиботан аватар за замовчуванням

01.01.1970 03:01

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини