Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Министерство образования и науки Российской Федерации
Московский государственный институт электроники и математики
(технический университет)
Кафедра «Математическое обеспечение систем обработки информации и управления»
ОТЧЕТ
К ЛАБОРАТОРНОЙ РАБОТЕ №0
по дисциплине
«Архитектура ЭВМ»
Работу выполнил
студент группы МС-41
Мизраки Дмитрий
Москва 2012
Содержание
Задание 0 2
Постановка задачи 2
Исходный код программы 2
Полученные результаты 4
Задание 1 6
Постановка задачи 6
Исходный код программы 6
Полученные результаты 9
Задание 2 10
Постановка задачи 10
Исходный код программы 10
Полученные результаты 13
Задание 3 13
Постановка задачи 14
Исходный код программы 14
Полученные результаты 22
Заключение 23
Проведённые замеры показывают, что вставки на языке Assembler являются более быстродействующими, чем аналогичные операции, реализованные на языке С++ при малых объемах входных данных.
Однако с увеличением объема данных и усложнением алгоритма, язык С++ по быстродействию начинает заметно опережать Assembler.
Объяснить данное явление можно тем, что современные компиляторы способны создавать высоко оптимизированный загрузочный код, который
обеспечивает более быстрое выполнение программы.
Конфигурация компьютера: процессор Intel Core2 Duo E8500 3.16 GHZ, 4096 Мб DDR3 оперативной памяти, видеокарта Ati Radeon HD 4870.
Работа выполнена в Microsoft Visual Studio 2010.
MOV - Копирование содержимого операнда источник в операнд приемник.
ADD - Сложение двух целочисленных двоичных операндов. Приёмник = приёмник + источник.
MUL - Команда выполняет целочисленное умножение без учёта знака. Явно задается один из множителей. Второй множитель задается неявно в регистре AL/AX/EAX (это местоположение фиксировано). Местоположение результата умножения определяется кодом операции и размером множителей.
PUSH - Команда уменьшает значение регистра-указателя стека ESP(SP) на 4(2) и затем записывает значение источника в вершину стека.
POP - Команда восстанавливает содержимое вершины стека в регистр, ячейку памяти или сегментный регистр, после чего значение ESP(SP) увеличивается на 4(2). Недопустимо восстановление значения в сегментный регистр CS.
CMP - Операнды приёмник и источник сравниваются методом вычитания, при этом сами операнды не изменяются. По результатам сравнения устанавливаются флаги.
JMP - Безусловный переход.
J(COND) - Команды условного перехода, в зависимости от своей мнемоники, анализируют флаги, и если проверяемое условие истинно, то производится переход к ячейке, обозначенной операндом. Если проверяемое условие ложно, то производится переход к следующей команде.
DEC - Уменьшение операнда на 1. Команда не воздействует на флаг CF.
LOOP - Управление циклом со счетчиком в регистре СХ/ЕСХ.
INC - Увеличение операнда на 1. Команда не воздействует на флаг CF