Кафедра Вычислительной Техники СПбГУ ИТМО

Лабораторная Работа №1 «Основы программирования на языке

Ассемблер»

Выполнил: Раевский С.С. гр. 2103

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

Раевский Сергей Сергеевич, группа 2103

1

Кафедра Вычислительной Техники СПбГУ ИТМО

Цель работы: Изучить среду программирования на языке Ассемблер. Выполнить по шагам предлагаемые в задании действия. Получить исполняемый код и запустить программу.

Исходный текст программы:

.model small ; определили модель памяти как small

.stack 128 ; выделили под программу 128 байт памяти

.data ; объявили сегмент данных

mess db 'Hello world!$' ; здесь у нас метка, указывающая на сообщение

.code ; объявляем сегмент кода

main:

;следующими двумя строками мы связываем

;адрес сегмента данных с его реальным расположением в памяти.

;Это связано с тем, что сегмент кода и сегмент данных

;расположены по одному и тому же адресу в

;памяти при инициализации программы.

mov ax, @data mov ds, ax

;следующие три строки кода выводят

;на экран надпись "Hello world!"

lea dx, mess mov ah, 09h int 21h

; последние две строчки корректно завершают программу

mov ax, 4c00h int 21h

; конец

end main

Результаты работы программы:

Hello world!

Раевский Сергей Сергеевич, группа 2103

2

Кафедра Вычислительной Техники СПбГУ ИТМО

Описание команд и результатов, полученных на шагах 5 и 6:

Ключ /Zi в команде ml.exe /Zi hello.asm предназначен для того, чтобы компилятор прикрепил к exe файлу сведения для отладки.

Содержимое .bat файла для перекомпилирования программы:

@echo off

del hello.exe del hello.obj

echo Assembling source...

cd md

ml.exe /Zi ..\hello.asm copy hello.exe ..\

cd ..

Содержимое .bat файла для запуска hello.exe: call build

echo.

hello.exe

echo. pause

Содержимое .bat файла для отладки hello.exe с помощью Code View: call build

cd md

cv ..\hello.exe

Выводы по лабораторной работе:

Структура программы на ассемблере отражает особенности архитектуры процессора. Для процессора Intel типичная программа состоит из 3х сегментов: кода, стека и данных, но это не обязательное условие.

Специфика разработки программы на ассемблере состоит в том, что программист должен уделять внимание не только и не столько особенностям моделирования предметной области, сколько тому, как при этом наиболее эффективно и корректно использовать ресурсы процессора.

Раевский Сергей Сергеевич, группа 2103

3

Соседние файлы в папке лабораторные работы (отчеты) по ассемблеру