Главная страница
Навигация по странице:

  • «ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМ»

  • Отчет состоит из следующих шести разделов.

  • Грудное вскармивание. ОргЭВМиС_лаб. Самостоятельная работа по написанию программы с использованием предлагаемых в качестве составных частей заготовленных фрагментов текста программы


    Скачать 84.98 Kb.
    НазваниеСамостоятельная работа по написанию программы с использованием предлагаемых в качестве составных частей заготовленных фрагментов текста программы
    АнкорГрудное вскармивание
    Дата28.11.2019
    Размер84.98 Kb.
    Формат файлаdocx
    Имя файлаОргЭВМиС_лаб.docx
    ТипСамостоятельная работа
    #97488
    страница1 из 3
      1   2   3

    МИНОБРНАУКИ РОССИИ

    САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ

    ЭЛЕКТРОТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

    «ЛЭТИ» ИМ. В.И.УЛЬЯНОВА (ЛЕНИНА)


    МЕТОДИЧЕСКИЕ УКАЗАНИЯ

    К ПРОВЕДЕНИЮ ЛАБОРАТОРНОГО ПРАКТИКУМА

    по дисциплине

    «ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМ»

    для подготовки бакалавров по направлению

    090302 – “Информационные системы и технологии"

    Санкт-Петербург

    2016

    Цель лабораторного практикума заключается в обретении навыков использования аппаратно-программных инструментов, структуризации и преобразования данных, использования наиболее употребляемых команд процессора, написания и отладки программ, демонстрирующих основные закономерности организации и функционирования ЭВМ.

    Для формирования указанных навыков необходимы следующие действия.

    1. Самостоятельная работа по написанию программы с использованием предлагаемых в качестве составных частей заготовленных фрагментов текста программы.

    2. Выполнение процесса отладки программы в соответствии с порядком действий, описанных в предлагаемой инструкции.

    3. Составление отчета и его защита. Отчет состоит из следующих шести разделов. 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
      1   2   3


    написать администратору сайта