\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{tabularx}
\usepackage{multirow}
\usepackage{array}
\usepackage[english,russian]{babel}

% \usepackage[colorlinks=true]{hyperref}
\usepackage{url}

\usepackage{enumitem}


\newcommand{\eqdef}{\stackrel {\rm def}{=}}
\newcommand{\dsint}{\displaystyle\int}

\renewcommand\theFancyVerbLine{\small\arabic{FancyVerbLine}}

\newtheorem{lem}{Лемма}

\begin{document}

% Кафедра (в родительном падеже)
\chair{}

% Тема работы
\title{Простейшие программы на Ассемблере}

% Курс
\course{2}

% Группа
\group{231}

% Факультет (в родительном падеже) (по умолчанию "факультета КНиИТ")
\department{факультета КНиИТ}

% Специальность/направление код - наименование
%\napravlenie{09.03.04 "--- Программная инженерия}
%\napravlenie{010500 "--- Математическое обеспечение и администрирование информационных систем}
%\napravlenie{230100 "--- Информатика и вычислительная техника}
%\napravlenie{231000 "--- Программная инженерия}
\napravlenie{10.05.01 "--- Компьютерная безопасность}

% Для студентки. Для работы студента следующая команда не нужна.
% \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}

\section{Задание}
\textit{Выполните арифметические действия над шестнадцатеричными числами}
\begin{itemize}
    \item D2CF + A8=
    \item 2135 + AF12=
    \item BCAD - 3124=
    \item 4561 - 345A=
    \item FA * 35=
    \item FF * FF=
    \item 2346/AC= \quad\quad остаток=
    \item EDFA/AD= \quad\quad остаток=
\end{itemize}
\textit{Поместите в отчет результаты вычислений.}

При выполнении сложения результат помещается в регистр AX.

\begin{figure}[H]
    \centering
    \includegraphics[width=0.6\textwidth]{1_1.png}
    \caption{D2CF + A8 = D377}
\end{figure}

\begin{figure}[H]
    \centering
    \includegraphics[width=0.6\textwidth]{1_2.png}
    \caption{2135 + AF12 = D047}
\end{figure}

При выполнении вычитания результат помещается в регистр AX.

\begin{figure}[H]
    \centering
    \includegraphics[width=0.6\textwidth]{1_3.png}
    \caption{BCAD - 3124 = 8B89}
\end{figure}

\begin{figure}[H]
    \centering
    \includegraphics[width=0.6\textwidth]{1_4.png}
    \caption{4561 - 345A = 1107}
\end{figure}

При выполнении умножения результат помещается в регистр AX.

\begin{figure}[H]
    \centering
    \includegraphics[width=0.6\textwidth]{1_5.png}
    \caption{FA * 35 = 33C2}
\end{figure}

\begin{figure}[H]
    \centering
    \includegraphics[width=0.6\textwidth]{1_6.png}
    \caption{FF * FF = FE01}
\end{figure}

При выполнении деления частное помещается в регистр AX, а остаток
в регистр DX.

\begin{figure}[H]
    \centering
    \includegraphics[width=0.6\textwidth]{1_7.png}
    \caption{2346 / AC = 0034, остаток = 0056}
\end{figure}

\begin{figure}[H]
    \centering
    \includegraphics[width=0.6\textwidth]{1_8.png}
    \caption{EDFA / AD = 0160, остаток = 001A}
\end{figure}


\section{Задание}
\textit{Используя прерывание 21, выведите на экран символы F, 3, d, 9, >,(.}

Для подготовки к выполнения задания введём в сегмент кода инструкцию INT 21,
а в регистр AX поместим значение 200h.

\begin{figure}[H]
    \centering
    \includegraphics[width=0.6\textwidth]{prep_int21.png}
    \caption{Подготовка регистров и сегмента кода к выполнению задания}
\end{figure}

ASCII-кодами символов являются: 
<<F>> -- 46, <<3>> -- 33, <<d>> -- 64, 
<<9>> -- 39, <<$>$>> -- 3e, <<(>> -- 28.

\begin{figure}[H]
    \centering
    \includegraphics[width=0.6\textwidth]{print_F.png}
    \caption{Вывод <<F>>}
\end{figure}

\begin{figure}[H]
    \centering
    \includegraphics[width=0.6\textwidth]{print_3.png}
    \caption{Вывод <<3>>}
\end{figure}

\begin{figure}[H]
    \centering
    \includegraphics[width=0.6\textwidth]{print_d.png}
    \caption{Вывод <<d>>}
\end{figure}

\begin{figure}[H]
    \centering
    \includegraphics[width=0.6\textwidth]{print_9.png}
    \caption{Вывод <<9>>}
\end{figure}

\begin{figure}[H]
    \centering
    \includegraphics[width=0.6\textwidth]{print_gt.png}
    \caption{Вывод <<$>$>>}
\end{figure}

\begin{figure}[H]
    \centering
    \includegraphics[width=0.6\textwidth]{print_brace.png}
    \caption{Вывод <<(>>}
\end{figure}


\section{Задание}
\textit{Введите в память начиная со смещения 100 программу из 2 строк, которая 
выведет на экран символ A и завершит выполнение инструкцией INT20. Перед 
выполнением программы (команда отладчика G 104) проверьте правильность введенных 
кодов, выполнив деассемблирование. Поместите результат деассемблирования в отчет.}

\begin{figure}[H]
    \centering
    \includegraphics[width=0.5\textwidth]{2_program.png}
    \caption{Ввод программы}
\end{figure}

\begin{figure}[H]
    \centering
    \includegraphics[width=0.6\textwidth]{2_disassemble.png}
    \caption{Результат деассемблирования}
\end{figure}


\section{Задание}
\textit{Введите начиная с адреса 100 программу вывода на экран символа D: INT 
21, INT 20. Не забудьте установить значения регистров AH, DL. Поместите 
результат деассемблирования и значения регистров перед исполнением в отчет.}

\begin{figure}[H]
    \centering
    \includegraphics[width=0.6\textwidth]{4_program.png}
    \caption{Ввод программы}
\end{figure}

\begin{figure}[H]
    \centering
    \includegraphics[width=0.6\textwidth]{4_dis.png}
    \caption{Результат деассемблирования}
\end{figure}

\begin{figure}[H]
    \centering
    \includegraphics[width=0.8\textwidth]{4_reg.png}
    \caption{Содержимое регистров}
\end{figure}

\begin{figure}[H]
    \centering
    \includegraphics[width=0.8\textwidth]{4_print.png}
    \caption{Вывод программы}
\end{figure}

\section{Задание}
\textit{Составьте и введите в память начиная со смещения 100 программу, которая 
загрузит в регистры соответствующие коды и выведет на экран символ @, после 
чего завершит выполнение и передаст управление отладчику. Выполните программу. 
Поместите результат деассемблирования в отчет.}

\begin{figure}[H]
    \centering
    \includegraphics[width=0.8\textwidth]{5_program.png}
    \caption{Текст и запуск программы}
\end{figure}

\begin{figure}[H]
    \centering
    \includegraphics[width=0.8\textwidth]{5_dis.png}
    \caption{Деассемблирование программы}
\end{figure}

\section{Задание}
\textit{Запишите на диск в файл <<ch.com>> программу вывода на экран символа @.
При выполнении из командной строки DOS программа должна выводить на экран символ @.}

Можно заметить, что программа занимает 8 байт памяти, поэтому в регистр
CX вносим значение 8. Создать и записать файл можно с помощью команд
N <название файла> и W.

\begin{figure}[H]
    \centering
    \includegraphics[width=0.8\textwidth]{6_program.png}
    \caption{Запись и запуск программы}
\end{figure}

\section{Задание}
\textit{Введите строку символов <<Hello, Dolly!\$>> в память, начиная со 
смещения 200, введите в память, начиная со смещения 100, программу, которая 
загрузит в регистры коды прерывания 21 09, адрес строки в памяти (200).}

\textit{При помощи команды деассемблирования проверьте введенные коды 
программы. Для проверки правильности введенных кодов символов строки 
используйте команду отладчика D<адрес>. Эта команда выводит на экран данные в 
формате <адрес-сегмент><адрес-смещение><строка кодов><строка символов>. 
Определите длину программы (начиная со смещения 100) вместе со строкой символов 
(до первого символа после \$).}

\textit{Запишите программу в файл <<str.com>>. Проверьте ее работу, запустив из 
командной строки.}

В сегмент кода внесём текст программы, где в регистры вносятся адрес строки
символов в памяти, а также необходимые прерывания для выведения строки.
Корректность введённо строки можно проверить с помощью команды D.

\begin{figure}[H]
    \centering
    \includegraphics[width=0.8\textwidth]{7_string.png}
    \caption{Ввод строки}
\end{figure}

\begin{figure}[H]
    \centering
    \includegraphics[width=0.8\textwidth]{7_program.png}
    \caption{Ввод и запуск программы}
\end{figure}

\end{document}
