Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.
Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.
Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.
Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.
Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.
Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.
Лабораторна робота №1
Приображенський А.А.
Мета: Навчитися використовувати можливості системних програм, що обслуговують програми на асемблері.
Індивідуальне завдання: Використовуючи текстовий редактор, створити файл із вихідним модулем на асемблері. Викликати на виконання системні програми masm, link і cref, приймаючи в увагу повідомлення цих програм після завершення їхньої роботи. Вивчити структуру всіх створених текстових файлів і зафіксувати ці зведення в звіті. Виконати створений завантажувальний модуль за посередництвом програми debug. Представити текст програми на асемблері (обов'язково з коментарями) і стосовно до неї інші текстові файли (.lst, .ref, .map).
Текст програми ( laba1.asm ):
data segment
s1 db 'Program working correctly', 10, 13, '$'
data ends
code segment
assume cs: code, ds: data
start:
mov ax, data ; Установити регістр сегмента
mov ds, ax ; даних на сегмент дані програми
mov ah, 9h ; Висновок
mov dx, offset s1 ; трасуючого повідомлення
int 21h ; про завершення програми
mov ah, 4ch ; Вихід
int 21h ; у DOS
code ends
end start
Хід роботи:
1. Використовуючи стандартний текстової редактор edit.exe, створюю вихідний модуль на асемблері. У наслідку одержую вихідний файл laba1.asm .
2. Викликаю на виконання системну програму masm.exe (c:\olimp\masm\masm.exe laba1.asm). Яка не знайшовши помилок створює три файли з різними розширеннями: laba2.lst (лістинг), laba2.obj (об'єктний модуль), laba2.crf (файл перехресних посилань). Виконання masm.exe:
Microsoft (R) Macro Assembler Version 5.10
Copyright (C) Microsoft Corp 1981, 1988. All rights reserved.
Object filename [laba1.OBJ]:
Source listing [NUL.LST]: laba1.lst
Cross-reference [NUL.CRF]: laba1.crf
47324 + 406720 Bytes symbol space free
0 Warning Errors
0 Severe Errors
3. Викликаю на виконання системну програму cref.exe (c:\olimp\masm\cref.exe laba1.crf). Яка створює, на відміну від нечитабельного laba1.crf, читабельний текстової файл laba1.ref.
4. Викликаю на виконання системну програму link.exe (c:\olimp\masm\link.exe laba1.obj). Яка, видавши повідомлення “Warning: no stack segment”, створює ще два файли laba1.exe ( модуль, що власне виконується,) і laba1.map (текстової файл, у якому містяться зведення про структурні особливості вихідного модуля) і вхідний файл .lib (бібліотека об'єктних модулів). У даній лабораторній роботі файл .lib використовувати не будемо, тобто повідомлення “Warning: no stack segment” вивелося саме через це. Виконання link.exe:
Microsoft (R) 8086 Object Linker Version 3.05
Copyright (C) Microsoft Corp 1983, 1984, 1985. All rights reserved.
Run File [LABA1.EXE]:
List File [NUL.MAP]: laba1.map
Libraries [.LIB]:
Warning: no stack segment
5. Викликаю на покрокове виконання(команда t) системну програму debug.exe (c:\olimp\masm\debug.exe laba1.exe) при цьому просліджую стан усіх регістрів і прапорів:
-t
AX=15CB BX=0000 CX=0030 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=15BB ES=15BB SS=15CB CS=15CD IP=0003 NV UP EI PL NZ NA PO NC
15CD:0003 8ED8 MOV DS,AX
-t
AX=15CB BX=0000 CX=0030 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=15CB ES=15BB SS=15CB CS=15CD IP=0005 NV UP EI PL NZ NA PO NC
15CD:0005 B409 MOV AH,09
-t
AX=09CB BX=0000 CX=0030 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=15CB ES=15BB SS=15CB CS=15CD IP=0007 NV UP EI PL NZ NA PO NC
15CD:0007 BA0000 MOV DX,0000
-t
AX=09CB BX=0000 CX=0030 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=15CB ES=15BB SS=15CB CS=15CD IP=000A NV UP EI PL NZ NA PO NC
15CD:000A CD21 INT 21
-p
Program working correctly
X=0924 BX=0000 CX=0030 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
S=15CB ES=15BB SS=15CB CS=15CD IP=000C NV UP EI PL NZ NA PO NC
Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.
Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.
Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.
Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.
Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.
Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.