Архитектура ЭВМ

Курсовая работа


Задание на курсовое проектирование

Вариант задания определяется по последней цифре пароля студента (аналога номера студенческого билета или зачетной книжки).
Разработать и отладить программу на языке Ассемблера, которая выполняет следующие задачи:
а) Вычисляет выражение в соответствии с заданным вариантом математическое выражение (табл. 1) и для значений X от 0 до 10 и сохраняет в массив.
б) Распечатывает на экране полученный в пункте а) массив в формате в соответствии с вариантом (таблица 2)
в) Осуществляет операцию по обработке массива, полученного в п. а) в соответствии с вариантом (таблица 3) и распечатывает результат выполнения на экране.
г) Осуществляет вывод данных о разработчике: фамилия, инициалы, номер группы, номер варианта.

Содержание пояснительной записки

1. Титульный лист (Приложение А)

2. Содержание

3. Задание с выбором своего варианта из таблиц 1-4.

4. Общее описание разрабатываемой программы с обоснованием разделения ее на подпрограммы

5. Описание отдельных процедур в виде блок-схем с пояснениями.

6. Листинг программы с комментариями

7. Листинг результатов выполнения работы

8. Список использованной литературы


Таблица 1. Варианты вычисляемого выражения


Лабораторные работы

выполнить лабораторные работы № 4 и № 5 (работы №№ 1 – 3 являются ознакомительными)

Номер варианта определяется последней цифрой пароля


Лабораторная работа №1

Изучение основ программирования на языке ассемблера

ЦЕЛЬ РАБОТЫ
Практическое освоение составления простейших программ на языке Ассемблера и работы с программами TASM и TLINK.
ПОДГОТОВКА К РАБОТЕ
3.1. Изучить методические указания.
3.2. Подготовить ответы на контрольные вопросы.
3.3. Проанализировать приведенную ниже программу HELLO.ASM и вставить в нее фрагмент, реализующий вывод на экран Вашей фамилии, имени, отчества с помощью символьной переменной STUDENT.
КОНТРОЛЬНЫЕ ВОПРОСЫ
4.1. Какова цель сегментации памяти?
4.2. Что такое базовый адрес сегмента?
4.3. Какие значения может принимать базовый адрес сегмента?
4.4. Каков максимальный размер сегмента и почему?
4.5. Какие типы сегментов использует ассемблерная программа?
4.6. Какими директивами описывается сегмент?
4.7. Каково назначение директивы ASSUME?
4.8. Каково назначение директив TITLE и PAGE?
4.9. Что такое процедура и какими директивами она определяется?
4.10. Что такое ассемблирование и компоновка программы?
4.11. Каково содержание файлов с расширениями *.ASM, *.LST, *.OBJ, *.MAP, *.EXE?

Лабораторная работа №2

Изучение основ работы с турбо отладчиком

ЦЕЛЬ РАБОТЫ
Практическое освоение основных функций TURBO DEBUGGER.
ПОДГОТОВКА К РАБОТЕ
3.1. Изучить методические указания.
3.2. Подготовить ответы на контрольные вопросы.
3.3. В соответствии с вариантом задания (Таб. 2.1.) указать содержимое каждого из восьми РОН после выполнения двух заданных команд в программах HELLO и PROG1 из Лабораторной работы №1 (номер строки команды помещен в поле комментариев программы и заключен в скобки).

Таблица 2.1.


КОНТРОЛЬНЫЕ ВОПРОСЫ
4.1. Для чего предназначен отладчик?
4.2. Объясните смысл пунктов Главного меню в верхней строке отладчика.
4.3. Как загрузить отлаживаемую программу?
4.4. Сколько окон можно открыть из пункта Главного меню View?
4.5. Из каких фрагментов состоит окно CPU?
4.6. Что такое локальное окно и как его открыть?
4.7. Какие функции обеспечивает локальное окно фрагмента кода (CODE) окна CPU?
4.8.Каким образом можно редактировать ассемблерную программу?
4.9. Как осуществляется изменение содержимого оперативной памяти и регистров средствами отладчика?
4.10. Как через меню отладчика запустить программу на выполнение?
4.11. В каком окне можно наблюдать результат выполнения программы?
4.12. Что такое трассировка программы и как она осуществляется в отладчике?

Лабораторная работа №3
Исследование способов адресации операндов
ЦЕЛЬ РАБОТЫ
Получение практических навыков использования различных способов адресации и отладки программ с использованием ловушек программы TURBO DEBUGGER.
ПОДГОТОВКА К РАБОТЕ
3.1. Изучить методические указания.
3.2. Подготовить ответы на контрольные вопросы.
3.3. Написать комментарии к командам приведенной ниже программы PROG3.
3.4. Используя примеры из PROG3, в соответствии с вариантом задания из Таб. 3.1 написать фрагмент программы для выполнения указанных в таблице операций, определив в сегменте данных необходимые переменные. (В таблице ЯП означает «ячейка памяти»).
Таблица 3.1.

КОНТРОЛЬНЫЕ ВОПРОСЫ
4.1. Где располагаются операнды при непосредственной адресации?
4.2. Каков минимальный объем адресуемого участка памяти?
4.3. Что означает адрес слова и двойного слова?
4.4. Что такое регистровая адресация операндов?
4.5. Что используется для косвенной адресации ячеек памяти?
4.6. Чем отличается базовая адресация от косвенной?
4.7. Какие регистры используются для косвенной и для базовой адресации?
4.8. Для каких переменных используется индексная адресация?
4.9. Чем отличается индексная адресация от базовой?
4.10. Что используется для прямой адресации ячеек памяти?
4.11. Как вычисляется адрес ячейки памяти при регистровой адресации?
4.12. Как вычисляется адрес ячейки памяти при индексной адресации?
4.13. Какой способ адресации операндов обеспечивает самый короткий формат команды?
4.14. Какой способ адресации является самым сложным?
4.15. Каким образом процессоры I80х86 обращаются к портам ввода/вывода?

Лабораторная работа №4

Исследование арифметических операций

ЦЕЛЬ РАБОТЫ
Получение практических навыков использования операций сложения, вычитания и умножения; освоение использования окон Module и Inspect программы TURBO DEBUGGER.
ПОДГОТОВКА К РАБОТЕ
3.1. Изучить методические указания.
3.2. Подготовить ответы на контрольные вопросы.
3.3. Проанализировать приведенную ниже программу PROG4, написать комментарии ко всем командам сегмента кода, указав при этом тип используемых операндов и способ адресации.
3.4. Используя в качестве операндов переменные, определенные в сегменте данных, в соответствии с вариантом задания (Таб. 4.1.) написать команды для выполнения указанных в таблице операций, вставить их в соответствующий фрагмент программы PROG4.
Таблица 4.1.

КОНТРОЛЬНЫЕ ВОПРОСЫ
4.1. Сколько операндов могут иметь команды арифметических операций для процессора К1810ВМ86 (I8086)?
4.2. Чем отличаются команды ADD и ADC?
4.3. Где сохраняется перенос, возникающий при выполнении операции сложения?
4.4. Какие типы операндов могут использоваться в качестве dst и в качестве src в операциях сложения и вычитания?
4.5. Какую операцию выполняет команда SBB?
4.6. Какие операнды могут иметь команды INC и DEC?
4.7. Можно ли использовать в команде сложения или вычитания операнды разной длины?
4.8. Какую операцию выполняет команда CMP?
4.9. Каким двум командам эквивалентна команда NEG?
4.10. Где могут располагаться операнды для выполнения умножения?
4.11. Чем определяется длина произведения при умножении?
4.12. Чем определяются знаки частного и остатка при выполнении деления?
4.13. Как умножить и разделить на константу?

Лабораторная работа №5

Исследование организации переходов в программе

ЦЕЛЬ РАБОТЫ
Изучение механизма передачи управления в программе; получение практических навыков отладки разветвляющихся программ.
ПОДГОТОВКА К РАБОТЕ
3.1. Изучить методические указания.
3.2. Подготовить ответы на контрольные вопросы.
3.3. Проанализировать приведенную ниже программу CHANGE, дополнить каждую команду комментарием.
3.4. Ввести свой собственный текст на английском языке, содержащий строчные и заглавные буквы.
3.5. Изменить программу так, чтобы в соответствии с вариантом задания (Таб. 5.1.) она обеспечивала:
Таблица 5.1.

КОНТРОЛЬНЫЕ ВОПРОСЫ
4.1. Назовите три типа команды безусловного перехода.
4.2. Какой может быть длина перехода в разных типах команды JMP?
4.3. Содержимое каких регистров модифицируется при выполнении безусловных переходов разных типов?
4.4. Какова максимальная длина условного перехода?
4.5. Каким образом может быть указан адрес перехода?
4.6. Какие флаги могут быть использованы в командах условного перехода после выполнения команды сложения?
4.7. Приведите возможные команды условных переходов, если после сравнения беззнаковых чисел D1иD2 оказалось: а)D1=D2, б) D1£ D2 , в) D1>D2.
4.8. Приведите возможные команды условных переходов, если после сравнения чисел со знаками P1иP2 оказалось: а) Р1 ¹Р2, б) Р1<Р2, в) Р1 ³ Р2.
4.9. Какие команды могут использоваться для организации циклов?
4.10. Какова максимальная длина переходов при организации циклов?
4.11. Какие признаки, кроме СХ=0, могут быть использованы при организации циклов?
4.12. Как осуществляется переход к процедурам разных типов?
4.13. Назовите варианты команды возврата из процедуры.

Таблица 2. Формат вывода массива результатов

Таблица 3. Операция по обработке массива результатов

Обсудим вашу работу?
При заказе дарим онлайн-тест!
Заполните форму
и мы свяжемся с вами за 2 часа