Лабораторна робота №2

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

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

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

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

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА” / Кафедра ЕОМ Лабораторна робота №2 з курсу ”Засоби системного програмування” Програмування вводу та виводу на асемблері. Створення *.COM – файлів. Мета: оволодіння навичками створення *.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 наведено нижче  Текст програми ************************* kuts.COM************************** Turbo Assembler Version 4.1 01/02/12 16:22:18 Page 1 kuts.asm 1 0000 .model tiny 2 0000 .code 3 org 100h 4 0100 B4 00 start: mov ah,0 5 0102 BA 0108r mov dx,offset message 6 0105 CD 21 int 21h 7 0107 C3 ret 8 0108 3C*(20) 0A 0D message db 60 dup (32),10,13 9 10 0146 14*(20) 02*(DB) 03* + db 20 dup (32),2 dup(219),3 dup(219),13,10 11 (DB) 0D 0A 12 0161 13*(20) 02*(DB) 05* + db 19 dup (32),2 dup(219),5 dup (32),2 dup(219),13,10 13 (20) 02*(DB) 0D 0A 14 017F 13*(20) 02*(DB) 0D + db 19 dup (32),2 dup(219),13,10 15 0A 16 0196 15*(20) 02*(DB) 0D + db 21 dup (32),2 dup(219),13,10 17 0A 18 01AF 17*(20) 04*(DB) 0D + db 23 dup (32),4 dup(219),13,10 19 0A 20 01CC 15*(20) 02*(DB) 04* + db 21 dup (32),2 dup(219),4 dup (177),2 dup(219),13,10 21 (B1) 02*(DB) 0D 0A 22 01EB 13*(20) 02*(DB) 08* + db 19 dup (32),2 dup(219),8 dup (177),2 dup(219),13,10 23 (B1) 02*(DB) 0D 0A 24 020C 13*(20) 02*(DB) 08* + db 19 dup (32),2 dup(219),8 dup (177),2 dup(219),13,10 25 (B1) 02*(DB) 0D 0A 26 022D 13*(20) 02*(DB) 08* + db 19 dup (32),2 dup(219),8 dup (177),2 dup(219),13,10 27 (B1) 02*(DB) 0D 0A 28 024E 13*(20) 02*(DB) 08* + db 19 dup (32),2 dup(219),8 dup (177),2 dup(219),13,10 29 (B1) 02*(DB) 0D 0A 30 026F 15*(20) 02*(DB) 04* + db 21 dup (32),2 dup(219),4 dup (177),2 dup(219),13,10 31 (B1) 02*(DB) 0D 0A 32 028E 17*(20) 04*(DB) 0D + db 23 dup (32),4 dup(219),13,10 33 0A 34 02AB 3C*(20) 0A 0D 24 db 60 dup (32),10,13,'$' 35 36 end start Turbo Assembler Version 4.1 01/02/12 16:22:18 Page 2 Symbol Table Symbol Name Type Value ??DATE Text "01/02/12" ??FILENAME Text "kuts " ??TIME Text "16:22:18" ??VERSION Number 040A @32BIT Text 0 @CODE Text DGROUP @CODESIZE Text 0 @CPU Text 0101H @CURSEG Text _TEXT @DATA Text DGROUP @DATASIZE Text 0 @FILENAME Text KUTS @INTERFACE Text 000H @MODEL Text 1 @STACK Text DGROUP @WORDSIZE Text 2 MESSAGE Byte DGROUP:0108 START Near DGROUP:0100 Groups & Segments Bit Size Align Combine Class DGROUP Group _DATA 16 0000 Word Public DATA _TEXT 16 02EA Word Public CODE Результат виконання COM-файлу згідно завдання. / Висновок: на даній лабораторній роботі я оволодів навичками створення *.COM – файлів та навчився реалізовувати ввід з клавіатури та вивід на екран символьних даних
Антиботан аватар за замовчуванням

27.10.2012 19:10-

Коментарі

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

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

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

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

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!