Отчет 1 (565151)
Текст из файла
Ф ЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮМ ОСКОВСКИЙ АВИАЦИОННЫЙ ИНСТИТУТ(государственный технический университет)Кафедра 304(вычислительные машины, системы и сети)Лабораторная работа по курсу«Ассемблер»Отчёт по работе№1 .Реализации линейного процесса(наименование работы)на языке программирования AssemblerВариант задания№2 .Лабораторную работу выполнили:студенты гр.
13-501, Резвяков Денис, Коршунов Евгений(должность).(Ф. И. О.)Лабораторную работу принял:зам. декана фак. №3, Алещенко Алла Степановна(должность)(Ф. И. О.)« 10 ».(подпись)ноября(дата приёма)2009 г.Цель работы: Освоить программирование линейных участковпрограмм с использованием арифметических команд языкаАссемблера.Задание1.
Разобрать раздел справочно-обучающей системы ASMLдесятичной коррекции чисел при вычитании. Особое вниманиеуделить числовым примерам. Законспектировать этот раздел.2. Разработать программу на Турбо-Паскале для реализациилинейного процесса, содержащую также вычисление эталонногорезультата.Расчётная формула: c×d+(a mod b)+(a2-7).Аргументы: a = 29, b = 18, c = 31, d = -14.Десятичная коррекция чисел при вычитанииВ BCD-формате каждый байт содержит две десятичныецифры (по одной в каждой тетраде). Максимальное значениететрады равно 9, максимальное значение байтового числа — 99.Многоразрядные числа представляются последовательностьюбайт. Например, число 0011.0100 в двоичном формате равнодесятичному числу 52, а тоже число в BCD-формате равнодесятичному числу 34.Вычитание чисел производится в два этапа: сначала байтывычитаются как обычные двоичные числа, а затем результаткорректируется командой DAS по следующим правилам:1) Если AF = 1 или младшая тетрада AL больше девяти,то из содержимого AX вычитается 6 и AF устанавливается в 1.–2–2) Если CF = 1 или старшая тетрада AH больше девяти,то из содержимого AX вычитается 60h и CF устанавливается в 1.После коррекции в регистре AX остается упакованноедесятичное число в диапазоне от 0 до 99.Команда DAS имеет длину 1 байт и выполняетсяза 4 машинных такта.Устанавливаются все арифметические флажки в зависимости от полученного результата, за исключением OF и AF,состояние которых после коррекции не определено.
CF интерпретируется как флажок заёма, он равен 1, если вычитаемоебольше уменьшаемого.Вычитание BCD-чисел с повышенной точностьюаналогично двоичному вычитанию с повышенной точностью.Но после каждого байтового вычитания необходимопроизводить десятичную коррекцию.Пример вычитания BCD-словВычтем: 0000.0011.0000.0111(307)–0000.0010.0000.1000(208).1. Вычитание младших байт командой SUB.0000.0111 – 0000.1000 = 1111.1111.
Произошло два заёма,поэтому флажки AF и CF устанавливаются в состояние 1.2. Десятичная коррекция промежуточного результата:AF = 1 или младшая тетрада > 9, значит из младшей тетрадывычитается шестёрка (0110). CF = 1 или старшая тетрада > 9,значит и из старшей тетрады вычитается 6 (0110), а флажок CFостается в состоянии 1. Результат после коррекции:1111.1111 – 0000.0110 – 0110.0000 = 1001.1001.–3–3.
Вычитание старшего байта числа командой SBB:0000.0011 – 0000.0010 – 1 (заём) = 0000.0000. AF = CF = 0.4. Десятичная коррекция вычитания старших байт неизменяет промежуточного результата, т.к. значения тетраддопустимые и флажки CF и AF равны 0.Окончательный результат равен десятичному числу 99.Код программы реализации линейного процессаprogram Laba1;vara, b, c, d, r1, r2: integer;begina := 29;b := 18;c := 31;d := -14;asmmov AX, c {помещаем значение C в регистр AX}imul d{умножаем C (в AX) на D}mov r2, AX {копируем результат из AX в переменную r2}mov AX, acwdidiv badd r2, DXmovimulsubaddend;AX, aAXAX, 7r2, AX{копируем значение A в регистр AX}{расширяем значение в AX до (DX:AX), до двойного слова}{делим (DX:AX) на значение B}{добавляем остаток от деления (из DX) в переменную r2}{копируем значение A в регистр AX}{умножаем A (в AX) само на себя}{вычитаем из произведения 7}{добавляем разность (из AX) в переменную r2}r1 := c*d + (a mod b) + (a*a - 7);WriteLn('Result by Pascal: ', r1:4);WriteLn('Result by Assembler: ', r2:4);ReadLn;end.Результат работы программыResult by Pascal: 411Result by Assembler: 411–4–.
Характеристики
Тип файла PDF
PDF-формат наиболее широко используется для просмотра любого типа файлов на любом устройстве. В него можно сохранить документ, таблицы, презентацию, текст, чертежи, вычисления, графики и всё остальное, что можно показать на экране любого устройства. Именно его лучше всего использовать для печати.
Например, если Вам нужно распечатать чертёж из автокада, Вы сохраните чертёж на флешку, но будет ли автокад в пункте печати? А если будет, то нужная версия с нужными библиотеками? Именно для этого и нужен формат PDF - в нём точно будет показано верно вне зависимости от того, в какой программе создали PDF-файл и есть ли нужная программа для его просмотра.















