Грудное вскармивание. ОргЭВМиС_лаб. Самостоятельная работа по написанию программы с использованием предлагаемых в качестве составных частей заготовленных фрагментов текста программы
Скачать 84.98 Kb.
|
МИНОБРНАУКИ РОССИИ САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ ЭЛЕКТРОТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ «ЛЭТИ» ИМ. В.И.УЛЬЯНОВА (ЛЕНИНА) МЕТОДИЧЕСКИЕ УКАЗАНИЯ К ПРОВЕДЕНИЮ ЛАБОРАТОРНОГО ПРАКТИКУМА по дисциплине «ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМ» для подготовки бакалавров по направлению 090302 – “Информационные системы и технологии" Санкт-Петербург 2016 Цель лабораторного практикума заключается в обретении навыков использования аппаратно-программных инструментов, структуризации и преобразования данных, использования наиболее употребляемых команд процессора, написания и отладки программ, демонстрирующих основные закономерности организации и функционирования ЭВМ. Для формирования указанных навыков необходимы следующие действия. Самостоятельная работа по написанию программы с использованием предлагаемых в качестве составных частей заготовленных фрагментов текста программы. Выполнение процесса отладки программы в соответствии с порядком действий, описанных в предлагаемой инструкции. Составление отчета и его защита. Отчет состоит из следующих шести разделов. 1. Титульный лист. 2. Задание. 3. Описание метода решения задачи и алгоритма. 4. Тексты программ с комментариями. 5. Скриншот (изображения, поясняющие полученный результат). 6. Выводы по работе. Лабораторная работа 1. Инструментальные средства разработки программ. Цель: освоение средств отладки программ. Работа осуществляется без использования средств ассемблирования, а с помощью программы td.exe (отладчик), которая находится в файле Lab_asm.exe. Перед запуском этой программы необходимо ознакомиться с функциями (файл Td.doc), используемыми при отладке. Необходимые пояснения. Программа отладки предоставляет пользователю многооконный интерфейс. В верхнем окне, используемом для просмотра, изменения и выполнения программы в разных режимах, необходимо разместить, начиная со строки, имеющей адрес 100, последовательность инструкций (команд), составляющих программу вычисления N чисел Фибоначчи. Ниже приведен текст отлаживаемой программы. MOV AX,0 MOV BX,1 MOV DX,0 MOV CX,N; поместить в конкретное число M1: ADD AX,BX; в AX последовательно формируются числа Фибоначчи MOV BX,DX MOV DX,AX LOOP M1 Выполнение программы необходимо осуществить в пошаговом режиме. Выполнение одной инструкции инициируется нажатием клавиши F7. После выполнения инструкции необходимо убедиться в правильности происходящих изменений данных, отображаемых в окнах наблюдения. При разработке программы использованы инструкции MOV, ADD, LOOP, пояснение которых можно найти в файле book_abel.exe. Для задания операндов в этих инструкциях потребуется использование непосредственного и регистрового способов адресации. Необходимые сведения об инструкциях и способах адресации операндов можно найти также в файлах book_abel.exe и Command.htm. Задание При защите лабораторной работы необходимо исправить ошибки в исходном тексте программы, создаваемые преподавателем и пояснить команды JMP, LOOP, обеспечивающие передачу управления. Требуется пояснить действия компьютера, осуществляемые при выполнении команды (командный цикл) и охарактеризовать время выполнения команды. Пояснить сегментную организацию памяти ЭВМ и назначение регистров, используемых для адресации сегментов. Пояснить способы адресации: непосредственная, прямая, косвенная. Требуется составить и отладить программы для решения следующих задач. Задача 1. Осуществить инкрементирование регистра AX пять раз. Задача 2. Осуществить инкрементирование ячейки с адресом 5 пять раз. Задача 3. Осуществить пять раз инкрементирование ячейки с адресом 5, используя косвенную адресацию. Задача 4. Переместить содержимое однобайтовых ячеек, имеющих смещение [00] … [07], в ячейки со смещением [08] … [0F]. Ячейки размещены в сегменте, начальный адрес которого задан в регистре DS. Лабораторная работа 2. Представление информации в ЭВМ. Цель: изучение машинного языка. Для представления в ЭВМ машинных команд, символов (букв, цифр, графических знаков), чисел, задаваемых в формате с фиксированной или плавающей точкой, используются двоичные коды. В данной лабораторной работе с помощью средств отладки анализируется структура машинных команд и данных. Формат изучаемых команд ЭВМ представляется группами бит или полями, одно из которых называют полем операции, а остальные поля называют операндами. Поле кода операции (КОП) указывает на действие, осуществляемое компьютером, а поле операнда содержит информацию о месте нахождения аргумента (и результата) операции. Способ определения операнда называется режимом (система правил) адресации. Существует два вида режимов адресации – режимы адресации данных и режимы адресации переходов. Физический адрес перехода от одной команды к другой задается в регистрах IP (указатель команды) и CS (сегмент кода). Режимы адресации данных и переходов представлены в файле book_abel.exe. В этом же файле приведено описание форматов команд. Для изучения структуры двух команд (пересылки MOV и сложения ADD), в которых используются непосредственные данные необходимо в левом верхнем окне отладчика написать указанные команды, в строках, нумеруемых последовательно. В одной строке напишите команду для пересылки значения 4629h в регистр AX, а в следующей строке напишите команду сложения числа 036Ah с содержимым регистра AX. Результаты действий компьютера и пояснения структуры машинных команд представьте в отчете. Для понимания правил, по которым компьютер обеспечивает доступ к данным посредством регистров SI, DI, DS предлагается пошагово выполнить следующую программу. В верхнем левом окне отладчика напишите в строках, нумеруемых последовательно, команды пересылки значений 3, 8, 2100 соответственно в регистры SI, DI, DS. Задайте в памяти процессора (нижнее левое окно) по эффективному (смещенному) адресу 3 значение 7Ch. Далее напишите команды пересылки MOV AL,[SI] и MOV [DI],AL. Выполните пошагово созданный фрагмент программы и приведите в отчете пояснения результатов действий компьютера. Представьте в отчете пояснения структуры машинных команд и режимов адресации. Для изучения способа кодирования символов представьте в памяти процессора (нижнее левое окно) строку символов, соответствующих Вашему имени и году рождения, используя 8-разрядные коды ASCII. Для изучения машинного (двоичного) представления целой и дробной частей числа в формате с фиксированной точкой (запятой) напишите в верхнем левом окне отладчика фрагмент программы, заданный ниже. Каждое непосредственное данное, используемое во фрагменте программы, представляется в виде двух байтов. Для представления дробной части используется один байт и для представления целой части также используется один байт. MOV AX,1080; AX = 1080h = 16.5d MOV BX,1240; BX = 1240h = 18.25d ADD AX,BX; AX = 22C0h = 34.75d Выполните в пошаговом режиме указанный фрагмент программы, анализируя значения разрядов регистра флагов. Найдите такие значения складываемых чисел, которые обеспечивают изменения значений флагов. Приведите в отчете складываемые числа и идентификаторы изменяющихся флагов. Для изучения машинного (двоичного) представления коротких вещественных чисел, задаваемых в формате с плавающей точкой, напишите и выполните фрагмент программы, заданный ниже. FINIT ; инициализация FPU (например, 8087) TOP = 0. FLDZ ; поместить в стек +0.0 (TOP – 1 и поместить в ST(0) константу). FLD1 ; поместить в стек 1.0. FADD ST(0),ST(1) ; результат сложения чисел 0.0 и 1.0 размещен в ST(0). FST dword ptr[0] ; копирование ST(0), TOP не изменяется. FLD1 FADD ST,ST(1) ; результат сложения чисел размещен в ST(0). FST dword ptr[4] FLD1 FADD ST,ST(1) ; результат сложения чисел размещен в ST(0). FST dword ptr[8] FLD1 FADD ST,ST(1) ; результат сложения чисел размещен в ST(0). FST dword ptr[0c] FDIVR ST,ST(2) ; вещественной число ½ размещено в ST(0). FST dword ptr[10] Задание В отчете поясните результаты действий компьютера. Задайте отображение сегмента данных ds:0000, ds:0004 и так далее. Приведите формулу вычисления q и p двоичного представления вычисленных чисел. Приведите формулу и двоичное представление максимального и минимального положительных денормализованных и нормализованных чисел. Лабораторная работа 3. Режимы адресации и команды перехода (метки и переменные). Цель: изучение правил адресации команд и данных. Работа осуществляется с использованием средств ассемблирования. Необходимые для работы инструментальные программы расположены в файле Lab_asm.exe. Необходимые пояснения. Ниже поясняются четыре этапа разработки программы, написанной на языке ассемблера. Этап 1. Создание текста исходного модуля программы. С помощью любого текстового редактора ввести текст исходного модуля программы, осуществляющей, во-первых, перемещение линейного массива цифр, отображаемого в виде одной n-байтной строки, в другой массив, отображаемый в виде другой строки и, во-вторых, выдающей на экран дисплея одну из перемещаемых цифр и ФИО автора программы. Перемещение адресуемых байтов данных осуществить, последовательно, начиная с последнего байта исходной строки, содержимое которого перемещается в первый байт результирующей строки. Цифру, выводимую на экран, необходимо предварительно преобразовать в ASCII код. Для ввода текста программы необходимо вызвать программы-оболочки Total Commander или FAR и нажать клавиши SHIFT_F4. После нажатия этих клавиш нужно задать имя программы с расширением asm, например nameprog.asm и нажать клавишу Enter. Далее ввести текст исходного программного модуля и сохранить его в файле nameprog.asm. Этап 2. Построение объектного модуля, обладающего возможностью дальнейшей отладки с помощью программы td.exe.Для достижения этой цели необходимо задать следующую командную строку. >TASM/z/zi/l nameprog.asm Можно не набирать .asm, используя правило умолчания. В результате выполнения этого этапа создается и сохраняется файл nameprog.obj. Этап 3. Построение исполняемого модуля, обладающего возможностью дальнейшей отладки программы с помощью программы td.exe. Для достижения этой цели необходимо задать следующую командную строку. >TLINK/i/m/l/s/v nameprog.obj Можно не набирать .obj, используя правило умолчания. В результате выполнения этого этапа создается и сохраняется файл nameprog.exe. Этап 4. Осуществить отладку созданной программы, используя программу td.exe, а при отладке использовать окно наблюдения WATCHES. Для освоения четырех этапов создания и отладки программы предлагается следующий вариант исходного текста программы. TITLE LAB3 data segment a DB 0,1,2,3,4,5,6,7 b DB 8 dup(?) data ends code segment assume cs:code, ds:data begin: mov ax,data mov ds,ax mov cx,8 lea si,a lea di,b label1: mov al,[si] mov [di],al inc si inc di loop label1 mov ax,4c00h int 21h code ends END begin Изучение режимов адресации осуществляется в два этапа. На первом этапе разрабатываются и отлаживаются четыре программы перемещения элементов линейного массива A в линейный массив B по правилам, заданным ниже. На втором этапе разрабатывается программа перемещения элементов линейного массива A в линейный массив B по правилам, заданным преподавателем. Используя в отладчике окно наблюдения, отображаемое внизу экрана монитора ЭВМ, которое позволяет просматривать и изменять содержимое ячеек памяти данных, задать в этой памяти 8 чисел, каждое из которых представлено байтом. Для этого в нижнем окне выберите исходную строку и отредактируйте ее содержимое. Каждому задаваемому числу соответствует пара 16-ричных цифр. Для восьми чисел потребуются 16 цифр, представленных в 16-ричной системе счисления. В верхнем окне, используемом для просмотра, изменения и выполнения программы, разместить, начиная со строки, имеющей адрес 100, последовательность инструкций (команд), составляющих программу. Программа предназначается для осуществления побайтного перемещения чисел из исходной 8-ми байтовой строки, заданной в нижнем окне представления памяти данных, в другую 8-байтовую строку, названную результирующей. Перемещение адресуемых байтов данных осуществить четырьмя способами, описанными ниже. То есть необходимо создать и выполнить четыре программы. Выполнение каждой программы осуществить в пошаговом режиме. Выполнение одной инструкции инициируется нажатием клавиши F7. После выполнения инструкции необходимо убедиться в правильности происходящих изменений данных, отображаемых в окнах наблюдения. При разработке программы потребуются инструкции MOV, INC, DEC, LOOP. Для задания операндов в этих инструкциях потребуется использование непосредственного, прямого и косвенного способов адресации. Необходимые сведения об инструкциях и способах адресации операндов можно найти в файле book_abel.exe. Задание 1. Содержимое первого байта памяти данных, представленных в окне наблюдения двумя первыми слева шестнадцатеричными цифрами в исходной строке, переместить в первый байт памяти данных, представленных в окне наблюдения двумя первыми слева шестнадцатеричными цифрами результирующей строки. Затем аналогично содержимое памяти 2-го байта переместить во 2-ой байт памяти и т. д. 2. Из первого байта памяти данных, представленных в исходной строке, переместить данные в восьмой байт результирующей строки. Затем 2-ой байт переместить в 7-ой и т. д. 3. Если число в восьмом байте исходной строки больше 5, то переместить это число в восьмой байт результирующей строки. Иначе обнулить восьмой байт. Затем 7-ой байт переместить в 7-ой при выполнении условий, аналогичных рассмотренным выше условиям и т. д. 4. Первый байт исходной строки переместить во второй байт результирующей строки. Затем второй байт исходной строки переместить в первый байт результирующей строки. Аналогично переместить третий и четвертый байты исходной строки и т. д. Лабораторная работа 4. Организация управляющих структур. Цель: освоение средств отладки и приемов программирования. Работа осуществляется с использованием средств ассемблирования и средств отладки. Необходимые пояснения. Возможно упрощение описания сегментов. Для этого нужно определить модель используемой памяти. Пусть программа (код) располагается в одном сегменте, а данные и стек располагаются в другом сегменте. Такая модель памяти называется SMALL. Пример использования упрощенного описания сегментов приведен ниже. Сравните текст, приведенный ниже, с текстом программы, приведенным в лабораторной работе 3. Наряду с упрощением сегментов в приведенной ниже программе использованы сервисные функции операционной системы DOS. Каждая сервисная функция, например, имеющая номер 2 или 9, инициируется командой прерывания int 21h. TITLE LAB4 .Model Small .STACK100h .Data a DB 0,1,2,3,4,5,6,7 b DB 8 dup(?) auth DB 'IVAN','$' mess DB 'NAZMITE KNOPKU DLY VIHODA $' .Code begin: mov ax,data mov ds,ax mov cx,8 lea si,a lea di,b label1: mov al,[si] mov [di],al inc si inc di loop label1 mov dl,b+2 or dl,30h mov ah,02h int 21h mov ah,09h lea dx,auth int 21h lea dx,mess int 21h mov ah,1 int 21h mov ax,4c00h int 21h END begin |