Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lab1 / report_lr1.doc
Скачиваний:
8
Добавлен:
10.02.2019
Размер:
139.78 Кб
Скачать

МИНОБРНАУКИ РОССИИ

Санкт-Петербургский государственный

электротехнический университет

«ЛЭТИ» им. В.И. Ульянова (Ленина)

Кафедра МОЭВМ

отчет

по лабораторной работе №1

по дисциплине «Организация ЭВМ и систем»

Тема: Трансляции, отладка и выполнение программ на языке Ассемблера

Студент гр.

Преподаватель

Санкт-Петербург

2018

Цель работы.

Ознакомиться с трансляцией, выполнением и отладкой программы на языке Ассемблер.

Ход работы.

Часть 1.

  1. В программе DOSBOX была подключена папка MASM с исходными файлами.

  2. Программа hello1.asm была просмотрена в режиме редактирования и были исправлены ошибки. Также была преобразована строка приветствия.

  3. Программа была транслирована с помощью команды:

> masm hello1.asm

И были созданы объектный файл h1.obj и файл листинга h1.lst, которые приведёны в приложении А.

  1. Был скомпонован загрузочный модуль h1.exe с помощью команды:

> link h1.obj

И были создана карта памяти h1.map.

  1. Программа была выполнена в автоматическом режиме с помощью команды:

> h1.exe

Рисунок 1 – запуcк h1.exe

В соответствии с рисунком 1 работоспособность программы h1.exe подтверждена.

  1. Была создана программа hello1_2.asm, дополненная ещё одним оператором вывода дополнительной строки. Код программы приведён в приложении Б.

  2. Программа hello1_2.asm была протранслирована, скомпонован загрузочный модуль и выполнен её запуск.

Рисунок 2 – запуск h1_2.exe

Согласно рисунку 2 программа отработала, верно.

  1. Программа hello1 была выполнена в пошаговом режиме под управлением отладчика отладчика afd:

> afd h1.exe

Стартовые значения регистров:

  • (CS) = 11AC

  • (DS) = 119C

  • (SS) = 11B1

  • (ES) = 119C

Результат выполнения программы представлен в таблице 1.

Таблица 1

Адрес

Команды

Символический

код команды

16-ричный

код команды

Содержимое регистров и ячеек памяти

до выполнения

после выполнения

0000

mov ax,@data

B8 ---- R

(ax) = 0000

(ip) = 0010

(ax) = 11AE

(ip) = 0013

0003

mov ds,ax

8E D8

(ds) = 119c

(ax) = 11AE

(ip) = 0013

(ds) = 11AE

(ax) = 11AE

(ip) = 0015

0005

mov dx,OFFSET Greeting

BA 0000 R

(dx) = 0000

(ip) = 0015

(dx) = 0000

(ip) = 0018

0008

mov ah,9

B4 09

(ah) = 11

(ip) = 0018

(AH) = 09

(ip) = 001A

000A

int 21h

CD 21

(ip) = 001A

(ip) = 001C

000C

mov ah,4ch

B4 4C

(Ah) = 09

(ip) =001C

(ah) = 4C

(ip) = 001E

000E

int 21h

CD 21

(ip) = 001E

(ip) = 0020

Часть 2

  1. Программа hello2.asm была просмотрена в режиме редактирования. Была отредактирована строка приветствия. Листинг программы приложен в приложении В.

  2. Программа hello2.asm была транслирована для создания объектного файла h2.obj и файла листинга h2.lst, листинг представлен в приложении В.

  3. Программа hello2.exe была скомпонована с помощью компоновщика Link.

  4. Был выполнен запуск программы и проверка на её работоспособность.

Рисунок 3 – запуск h2.exe

  1. Программа hello2 была выполнена в пошаговом режиме под управлением отладчика отладчика afd:

> afd h2.exe

Стартовые значения регистров:

  • (CS) = 11B2

  • (DS) = 119C

  • (SS) = 119C

  • (ES) = 119C

Результат выполнения программы представлен в таблице 2.

Таблица 2

Адрес

Команды

Символический

код команды

16-ричный

код команды

Содержимое регистров и ячеек памяти

до выполнения

после выполнения

0005

push DS

1E

(DS) = 119C

(IP) = 0005

(DS) = 119C

(ip) = 0006

0006

sub AX,AX

2B C0

(AX) = 0000

(ip) = 0006

(AX) = 0000

(ip) = 0008

0008

push AX

50

(AX) = 0000

(ip) = 0008

(AX) = 0000

(ip) = 0009

0009

mov AX,DATA

B8 ---- R

(AX) = 0000

(ip) = 0009

(AX) = 11AE

(ip) = 000C

000C

mov DS,AX

8E D8

(DS) = 119C

(AX) = 11AE

(ip) = 000C

(DS) = 11AE

(AX) = 11AE

(ip) = 000E

000E

mov DX, OFFSET HELLO

BA 0000 R

(DX) = 0000

(IP) = 000E

(DX) = 0000

(IP) = 0011

0011

call WriteMsg

E8 0000 R

(IP) = 0011

(IP) = 0000

0000

mov AH,9

B4 09

(aH) = 11

(ip) = 0000

(aH) = 09

(ip) = 0002

0002

int 21h

CD 21

(ip) = 0002

(ip) = 0004

0004

ret

C3

(ip) = 0004

(ip) = 0014

0014

mov DX, OFFSET GREETING

BA 000A R

(DX) = 0000

(IP) = 0014

(DX) = 000A

(IP) = 0017

0017

call WriteMsg

E8 0000 R

(IP) = 0017

(IP) = 0000

0000

mov AH,9

B4 09

(aH) = 09

(ip) = 0000

(aH) = 09

(ip) = 0002

0002

int 21h

CD 21

(ip) = 0002

(ip) = 0004

0004

ret

C3

(ip) = 0004

(ip) = 0014

001A

ret

CB

(IP) = 001A

(IP) = 0000

0000

int 20

CD20

(IP) = 0000

(ip) =0005

Вывод:

В ходе лабораторной работы было произведена трансляция, линковка, выполнение и отладка программ на языке Ассемблера. Результатом выполнения лабораторной работы являются рабочие программы h1.exe и h2.exe.

Соседние файлы в папке lab1
  • #
    10.02.20191.9 Кб5HELLO1.ASM
  • #
    10.02.2019804 б5hello1_2.asm
  • #
    10.02.2019881 б5HELLO2.ASM
  • #
    10.02.2019139.78 Кб8report_lr1.doc