summaryrefslogtreecommitdiff
path: root/asvt/labs/lab4/lab4.tex
diff options
context:
space:
mode:
Diffstat (limited to 'asvt/labs/lab4/lab4.tex')
-rw-r--r--asvt/labs/lab4/lab4.tex210
1 files changed, 210 insertions, 0 deletions
diff --git a/asvt/labs/lab4/lab4.tex b/asvt/labs/lab4/lab4.tex
new file mode 100644
index 0000000..b55956d
--- /dev/null
+++ b/asvt/labs/lab4/lab4.tex
@@ -0,0 +1,210 @@
+\documentclass[bachelor, och, labwork]{SCWorks}
+% параметр - тип обучения - одно из значений:
+% spec - специальность
+% bachelor - бакалавриат (по умолчанию)
+% master - магистратура
+% параметр - форма обучения - одно из значений:
+% och - очное (по умолчанию)
+% zaoch - заочное
+% параметр - тип работы - одно из значений:
+% referat - реферат
+% coursework - курсовая работа (по умолчанию)
+% diploma - дипломная работа
+% pract - отчет по практике
+% параметр - включение шрифта
+% times - включение шрифта Times New Roman (если установлен)
+% по умолчанию выключен
+
+\usepackage{subfigure}
+\usepackage{tikz,pgfplots}
+\pgfplotsset{compat=1.5}
+\usepackage{float}
+
+%\usepackage{titlesec}
+\setcounter{secnumdepth}{4}
+%\titleformat{\paragraph}
+%{\normalfont\normalsize}{\theparagraph}{1em}{}
+%\titlespacing*{\paragraph}
+%{35.5pt}{3.25ex plus 1ex minus .2ex}{1.5ex plus .2ex}
+
+\titleformat{\paragraph}[block]
+{\hspace{1.25cm}\normalfont}
+{\theparagraph}{1ex}{}
+\titlespacing{\paragraph}
+{0cm}{2ex plus 1ex minus .2ex}{.4ex plus.2ex}
+
+% --------------------------------------------------------------------------%
+
+
+\usepackage[T2A]{fontenc}
+\usepackage[utf8]{inputenc}
+\usepackage{graphicx}
+\graphicspath{ {./images/} }
+\usepackage{tempora}
+
+\usepackage[sort,compress]{cite}
+\usepackage{amsmath}
+\usepackage{amssymb}
+\usepackage{amsthm}
+\usepackage{fancyvrb}
+\usepackage{listings}
+\usepackage{listingsutf8}
+\usepackage{longtable}
+\usepackage{array}
+\usepackage[english,russian]{babel}
+
+% \usepackage[colorlinks=true]{hyperref}
+\usepackage{url}
+
+
+\newcommand{\eqdef}{\stackrel {\rm def}{=}}
+
+\renewcommand\theFancyVerbLine{\small\arabic{FancyVerbLine}}
+
+\newtheorem{lem}{Лемма}
+
+\begin{document}
+
+% Кафедра (в родительном падеже)
+\chair{}
+
+% Тема работы
+\title{Отчет по дисциплине ``Аппаратные средства вычислительной техники'' по лабораторной работе \#3}
+
+% Курс
+\course{1}
+
+% Группа
+\group{131}
+
+% Факультет (в родительном падеже) (по умолчанию "факультета КНиИТ")
+\department{факультета КНиИТ}
+
+% Специальность/направление код - наименование
+%\napravlenie{09.03.04 "--- Программная инженерия}
+%\napravlenie{010500 "--- Математическое обеспечение и администрирование информационных систем}
+%\napravlenie{230100 "--- Информатика и вычислительная техника}
+%\napravlenie{231000 "--- Программная инженерия}
+\napravlenie{090301 "--- Компьютерная безопасность}
+
+% Для студентки. Для работы студента следующая команда не нужна.
+% \studenttitle{Студентки}
+
+% Фамилия, имя, отчество в родительном падеже
+\author{Гущина Андрея Юрьевича}
+
+% Заведующий кафедрой
+% \chtitle{} % степень, звание
+% \chname{}
+
+%Научный руководитель (для реферата преподаватель проверяющий работу)
+\satitle{доцент} %должность, степень, звание
+\saname{О. В. Мещерякова}
+
+% Руководитель практики от организации (только для практики,
+% для остальных типов работ не используется)
+% \patitle{к.ф.-м.н.}
+% \paname{С.~В.~Миронов}
+
+% Семестр (только для практики, для остальных
+% типов работ не используется)
+%\term{8}
+
+% Наименование практики (только для практики, для остальных
+% типов работ не используется)
+%\practtype{преддипломная}
+
+% Продолжительность практики (количество недель) (только для практики,
+% для остальных типов работ не используется)
+%\duration{4}
+
+% Даты начала и окончания практики (только для практики, для остальных
+% типов работ не используется)
+%\practStart{30.04.2019}
+%\practFinish{27.05.2019}
+
+% Год выполнения отчета
+\date{2020}
+
+\maketitle
+
+% Включение нумерации рисунков, формул и таблиц по разделам
+% (по умолчанию - нумерация сквозная)
+% (допускается оба вида нумерации)
+% \secNumbering
+
+\tableofcontents
+
+\section{Задание 1}
+
+\textit{Скомпилируйте программу лаб. работы 11 (установка системных часов) в
+формате .exe, загрузите ее в отладчик (с произвольными параметрами командной
+строки) и проанализируйте PSP этой программы. Выведите дамп блока памяти
+окружения процесса.}
+
+\subsection{Проверяем программу}
+
+Возьмём программу из прошлой лабораторной и проверим её работоспособность.
+
+\begin{figure}[H]
+ \centering
+ \includegraphics[width=0.7\textwidth]{run.png}
+ \caption{Смотрим часы}
+ \label{}
+\end{figure}
+
+Всё ещё работает. Сделано на века!
+
+\subsection{Program Segment Prefix}
+PSP или Program Segment Prefix -- это префикс программного сегмента в MS-DOS,
+который предшествует в памяти каждой COM или EXE-программе, и занимает 100h
+байт. Структура PSP одинакова для файлов обоих типов.
+
+\subsection{Дебажим}
+
+Для дебага программы решил взять дебаггер из того же набора, что и
+ассемблер с линковщиком -- Turbo Debugger. Попробуем посмотреть что нам выведет
+дебаггер.
+
+\begin{figure}[H]
+ \centering
+ \includegraphics[width=0.8\textwidth]{tdb_run.png}
+ \caption{Turbo Debugger}
+ \label{}
+\end{figure}
+
+Можно увидеть несколько окон со всей информацией, которую нам нужно знать о
+нашей программе. Непосредственно в основном окне выведен её исходный код.
+
+Значение столбцов главного окна слева направо:
+\begin{itemize}
+ \item Адреса команд в памяти. Можно заметить смещение на 100h, благодаря команде ORG 100h
+ \item Сами команды в виде машинного кода.
+ \item Эти же команды, только в человекочитаемом виде.
+\end{itemize}
+
+Под основным окном видно дамп памяти программы (А рядом с ним этот же дамп, но
+в виде ASCII-символов).
+
+В окнах справа отображается состояние регистров, флагов и стека.
+
+
+\section{Задание 2}
+
+\textit{Определение размера программы в формате exe.}
+
+Возьмём ту же программу из прошлого задание я добавим в ней новый сегмент.
+
+После ассемблирования в дебаггере получилась следующая картина:
+
+\begin{figure}[H]
+ \centering
+ \includegraphics[width=0.8\textwidth]{cs_tdb.png}
+ \caption{}
+ \label{}
+\end{figure}
+
+Видно, что в регистре cs находится значение 43AD. Это и есть размер
+нашей программы.
+
+\end{document}