- •Содержание
- •Введение
- •Варианты заданий:
- •Лабораторная работа №2 Вариантыпример отчетак содержанию
- •Варианты заданий:
- •Лабораторная работа №3 Вариантыпример отчетак содержанию
- •Варианты заданий к лабораторной работе №3
- •Лабораторная работа №4 Вариантыпример отчетак содержанию
- •Варианты заданий лабораторной работы №4
- •41. В прямоугольной матрице обменять первый столбец с последним.
- •Оценка результатов практикик содержанию
- •Рекомендованная литература
- •Отладка программы в среде отладчикаTd к содержанию
- •Разбор внутреннего представления командк содержанию
- •Примеры разбора команд
- •1. Команды с регистровой адресацией
- •2.Команды с прямой адресацией
- •3. Арифметические команды с непосредственной адресацией
- •4. Команда mov с непосредственной адресацией
- •5. Команды с использованием аккумулятора
- •6. Команды условного перехода (с относительной адресацией)
- •7. Команды безусловного перехода (с относительной адресацией)
- •8. Команда вызова подпрограммы (с относительной адресацией)
- •9. Команда завершения цикла (с относительной адресацией)
- •10. Команды с косвенной адресацией
- •Міністерство освіти і науки
- •Пример отчета по лабораторной работе №1к лаб. Раб.№1
- •Пример отчета по лабораторной работе №2к лаб. Раб.№2
- •Пример отчета по лабораторной работе №3к лаб. Раб.№3
- •Пример отчета по лабораторной работе №4к лаб. Раб. №4
Лабораторная работа №4 Вариантыпример отчетак содержанию
Цель: Освоить механизмы обработки двумерных массивов на языке ассемблер и принципы ввода символьной и числовой информации с клавиатуры
Тема: Обработка двумерных массивов
Этапы выполнения работы:
1. Разработка алгоритма решения задачи
2. Написание программы на языке ассемблер, реализующей алгоритм.
3. Компиляция, линкование и отладка программы с помощью отладчика td.exe.
4. Анализ принципов ввода с клавиатуры информации
Один из вариантов организации ввода с клавиатуры – использование 10-ой функции 21-ого прерывания, которая вводит строку. Перед вызовом этой функции в регистр dx необходимо положить адрес так называемого «блока ввода». Он представляет собой поле памяти с определенной последовательностью байт:
- первый байт: максимальная длина строки;
- второй байт: реальная длина строки (будет заполнено после завершения работы функции);
- начиная со следующего байта располагается сама вводимая строка.
Т.о. в сегменте данных имеем:
blockinput label byte
maxlen db 7
actlen db ?
string db 7 dup (?)
Тогда вызов этой функции будет иметь вид:
mov ah,0ah
lea dx,blockinput
int 21h
После завершения работы функции в переменной actlen будет содержаться длина набранной нами строки, а в переменной string –сама строка. В примере максимальная длина строки выбрана 7 байт, т.к. в строку будет записываться число типа word (-32768÷32767) Максимальное количество позиций, требуемых для такого числа – 6. Но в строку заносится также и знак «Enter» (♪).
Однако по условию задачи вводить нам нужно числовые данные (количество элементов и сами элементы матрицы). Поэтому введенную строку необходимо преобразовать в число, а также выполнить проверку корректности введенных символов. Преобразование можно выполнить путем умножения каждой цифры на вес разряда и суммированием полученных значений, например:
2345=5+4*10+3*100+2*1000.
Другой вариант преобразования – использование схемы Горнера. В этом случае число получается следующим образом:
2345=((2*10+3)*10+4)*10+5.
При этом после выполнения каждого арифметического действия должна производиться проверка на переполнение и в случае его обнаружения выдаваться сообщение об ошибке и приглашение повторить ввод заново.
При выполнении лабораторной работы возможно использование процедуры inputnumber, приведенной в примере отчета. Однако, недостатком предложенного в ней алгоритма является некорректная отработка минимально допустимого числа -32768. По алгоритму преобразование выполняется только с положительными числами, а затем, если перед числом стоит знак «минус» число инвертируется. Однако при получении числа 32768 фиксируется переполнение и выводится соответствующая ошибка. Студентам предлагается для получения «отличной» оценки по данной лабораторной работе самостоятельно преобразовать алгоритм для устранения этого недостатка!
5. Добавление в программу команд и процедур для вывода на экран информации и ввода с клавиатуры исходных данных
6. Отладка программы.
7. Оформление отчета
Отчет должен содержать следующие разделы:
1.Титульный лист
Задание
3. Блок-схема
4.Листинг программы
5.Результаты работы программы (скриншоты экрана)
6.Выводы
8. Защита работы.
В результате выполнения работы должны быть усвоены следующие темы:
- хранение элементов матрицы в памяти
- алгоритм обработки матрицы
- способы обращения к элементам матрицы
- алгоритм ввода с клавиатуры и проверки на корректность данных
- алгоритм преобразования строки в число.
- знать входные и выходные параметры тех функций прерываний, которые использованы в лабораторной работе.