

Кафедра Вычислительной Техники СПбГУ ИТМО
Лабораторная Работа №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 |