DevioLabавтоматичне керування капіталом
ПРАЦЮЄ 24/7
КРИПТОВАЛЮТИ · АКЦІЇ · 10 БІРЖ

Портфель, який керується автоматично

DevioLab підбирає стратегії, відстежує ринки та автоматизує купівлю і продаж активів. Кількість доступних криптовалют, акцій і торгових можливостей зростає щодня.

10підключених біржCrypto + Stocksв одному портфелі24/7автоматичний контроль

Лабораторна робота №2: Програмування вводу та виводу на асемблері. Створення COM-файлів

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

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

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

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

Про що ця робота

У роботі досліджено створення COM-файлів та реалізацію вводу-виводу символьних даних засобами асемблера. Наведено практичний приклад програми на Turbo Assembler та результат її виконання.

У роботі розглядаються

  • Системне програмування
  • Створення COM-файлів
  • Ввід та вивід даних
  • Turbo Assembler
  • Структура програми
  • Сегменти пам'яті

Зміст і розділи

  1. Мета роботи
  2. Теоретична частина
  3. Текст програми
  4. Symbol table
  5. Groups & segments
  6. Висновок
Для кого:Студенти технічних спеціальностей вищих навчальних закладів, які вивчають системне програмування та мову асемблер.
Викладачі:Не вказано

Ключові поняття

COM-файлTurbo AssemblerсегментPSPпрефікс програмного сегментаORG 100hввід і вивідсимвольні дані

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

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА” / Кафедра ЕОМ Лабораторна робота №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 – файлів та навчився реалізовувати ввід з клавіатури та вивід на екран символьних даних
Допоможи студентському архіву

Ми допомогли тобі — допоможи наступному студенту

Файл ще не обрано

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

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

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

Admin

26.02.2023 12:38

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