Системне обслуговування програм на асемблері

Страницы работы

Содержание работы

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

Виконав студент гр. АП-31б

Приображенський А.А.

Тема: «Системне обслуговування програм на асемблері»

Мета: Навчитися використовувати можливості системних програм, що обслуговують програми на асемблері.

Індивідуальне завдання: Використовуючи текстовий редактор, створити файл із вихідним модулем на асемблері. Викликати на виконання системні програми 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

Похожие материалы

Информация о работе