Главная страница   
Экстренная связь
Сейчас на сайте

Админов: 1 из 7
Исполнителей: 6 из 171
Клиентов: 15 из 7044

Наша помощь
Оценить задание
• Программирование
Информатика
Базы данных
СУБД
• Разработка ПО
Бухгалтерский учёт
Экономика, Аудит
Финанс. менеджмент
Финансовый анализ
Эконом. теория
Эконом. предприятия
Финансы и кредит
Менеджмент
Маркетинг
• ТУСУРовцам
Юриспруденция
Право
Психология
Психологическая консультация
Математика
Исследование операций
Методы оптимизации
Физика
Радиотехника
Электроника
Схемотехника
Механика
Метрология
• Перефразирование
История
Английский
Другой предмет
Готовые работы
• Каталог
Программирование
Экономика, Аудит
Бухгалтерский учёт
Финансы и кредит
Юриспруденция
Право
История
Психология
Механика
Информация
О сайте
Наши цены
Соглашение
Наши гарантии
Способы оплаты
Вопросы и ответы
Отзывы клиентов
Бонусы и скидки
Регистрация
Вакансии
Написать письмо
Мы работаем
ЕЖЕДНЕВНО
с 9:30 до 23:30 msk
Поиск по сайту
Разное
Архив заказов
Анекдоты
Облака тегов
Карточные игры
Преподы-монстры
Антиплагиат
Мысли вслух

Банковские карты
QIWI
Юmoney
Webmoney


Яндекс.Метрика











АРХИТЕКТУРА СИСТЕМЫ КОМАНД КОМПЬЮТЕРА. Практическая работа №1. ПРОГРАММИРОВАНИЕ В СРЕДЕ MASM И OLLYDBG. Практическая работа №2. АДРЕСАЦИЯ ЭЛЕМЕНТОВ МАССИВА, ОРГАНИЗАЦИЯ ЦИКЛА. Практическая работа №3. РАБОТА С ДЕЙСТВИТЕЛЬНЫМИ ЧИСЛАМИ (ФОРМАТА ЧПЗ) И РЕГИСТРАМИ БЛОКА FPU Практическая работа №4. СПЕЦИАЛЬНЫЕ ТИПЫ ДАННЫХ: ВЕКТОРНЫЕ ОПЕРАЦИИ, ДВОИЧНО-ДЕСЯТИЧНАЯ АРИФМЕТИКА Практическая работа №5. СТЕК. ВЫЗОВ ПРОЦЕДУР. ПЕРЕДАЧА ПАРАМЕТРОВ

Программа
в среде программирования Assembler



Если Вы считаете, что данная страница каким-либо образом нарушает Ваши авторские права, то Вам следует обратиться в администрацию нашего сайта по адресу info@kursovik.com либо через форму обратной связи

Среда программирования: Assembler

Название работы: АРХИТЕКТУРА СИСТЕМЫ КОМАНД КОМПЬЮТЕРА. Практическая работа №1. ПРОГРАММИРОВАНИЕ В СРЕДЕ MASM И OLLYDBG. Практическая работа №2. АДРЕСАЦИЯ ЭЛЕМЕНТОВ МАССИВА, ОРГАНИЗАЦИЯ ЦИКЛА. Практическая работа №3. РАБОТА С ДЕЙСТВИТЕЛЬНЫМИ ЧИСЛАМИ (ФОРМАТА ЧПЗ) И РЕГИСТРАМИ БЛОКА FPU Практическая работа №4. СПЕЦИАЛЬНЫЕ ТИПЫ ДАННЫХ: ВЕКТОРНЫЕ ОПЕРАЦИИ, ДВОИЧНО-ДЕСЯТИЧНАЯ АРИФМЕТИКА Практическая работа №5. СТЕК. ВЫЗОВ ПРОЦЕДУР. ПЕРЕДАЧА ПАРАМЕТРОВ

Вид работы: Программа

Описание: АРХИТЕКТУРА СИСТЕМЫ КОМАНД КОМПЬЮТЕРА.
Практическая работа №1. ПРОГРАММИРОВАНИЕ В СРЕДЕ MASM И OLLYDBG
Задание № 1
1. Научиться пользоваться пакетом MASM.
2. Создать программу primer.asm в редакторе Quick Editor пакета MASM.
3. Откомпилировать программу и запустить на исполнение (в случае безошибочной компиляции, иначе исправить ошибки и провести повторную компиляцию и запуск).
4. Внести в программу небольшие изменения (название окна, выводимое сообщение, добавить вывод ещё одного окна …) и запустить новую изменённую программу.
Задание № 2
Работа является индивидуальной и должна быть выполнена самостоятельно каждым студентом согласно варианту (=№ по списку группы).
1. Научиться пользоваться пакетом MASM.
2. Создать программу prakt1.asm в редакторе Quick Editor пакета MASM.
3. Откомпилировать программу и запустить на исполнение (в случае безошибочной компиляции, иначе исправить ошибки и провести повторную компиляцию и запуск).
4. Внести в программу небольшие изменения (название окна с указанием вашей ФИО и № работы, выводимое сообщение, добавить вывод ещё одного окна …) и запустить новую изменённую программу.
5. Научиться пользоваться пакетом OllyDbg.
6. Изменить программу prakt1.asm в редакторе Quick Editor пакета MASM согласно варианту задания. Придумать текстовые сообщения о результате программы и заменить в примере деление на одну или несколько других операций. Нужные команды на Ассемблере можно взять из [1, 2, 5].
7. Откомпилировать программу и запустить на исполнение (в случае безошибочной компиляции, иначе исправить ошибки и провести повторную компиляцию и запуск).
8. Убедиться, что в тексте программы нет синтаксических ошибок, и компиляция прошла успешно (в вашей папке появились два файла (prakt1.obj и prakt1.exe). если ошибки имеются, то нужно их исправить и повторить действия 3,4.
9. Запустить отладчик OllyDbg и открыть исполняемый файл prakt1.ехе.
10.Отладить программу, используя раздел 2. и сайт [4], проследить изменения в регистрах.
11.Ответить на вопросы для самопроверки.
ВАРИАНТЫ ЗАДАНИЙ
№ вар Задание
1. Сравнить заданное число из ОП с некоторым порогом (констатной) и вывести сообщение (равно, больше или меньше) Иванова Е.М. Учебное пособие по разделу «Вычислительные системы»
2. Определить, является ли заданная в памяти переменная цифрой (заглавной или строчной латинской буквой) и вывести сообщение. Для любой десятичной цифры Х её ASCII-код «3Х» [см. табл. ASCII], значит надо сравнить старшие разряды с маской '0011’ и вывести сообщение. Коды букв расположены в памяти последовательно с XX по УУ, следовательно достаточно понять, что код символа больше XX и меньше УУ.
3. Сравнить два числа из ОП и вывести сообщение (равно, больше или меньше)
4. Проверить, является ли число из ОП положительным или отрицательным, и вывести сообщение
5. Определить минимальную/максимальную из трёх переменных и вывести сообщение
6. Определить, превысила ли сумма трёх однобайтовых беззнаковых переменных размер в один байт (был ли получен перенос) и вывести сообщение.
7. Проверить, допустима ли покупка нескольких товаров при заданном балансе счёта (не получается ли при вычитании отрицательное число) и вывести сообщение.
8. Определить есть ли среди нескольких чисел (переменные из ОП), совпадающие с заданным и вывести сообщение.
9. Проверить, являются ли два числа инверсными (not) и вывести сообщение.
10. Определить наличие единиц/нулей в двоичном представлении числа чётным и вывести сообщение, посчитать их количество.
11. Проверить выполнение условия aa<bb*kk+cc-dd:ff, где aa, bb, сc… - переменные и вывести сообщение.
12. Проверить выполнение условия, что операция логического ИЛИ над двумя переменными aa bb формирует все единичные биты результата и вывести сообщение.
13. Проверить выполнение условия, что операция логического И над двумя переменными aa bb формирует все нулевые биты результата и вывести сообщение.
14. Проверить значение i-ого слева бита в заданной двухбайтовой переменной (команда ВТ) и вывести сообщение.
15. Выполнить сдвиг в заданную сторону на заданное число разрядов. Проверить значение последнего выдвинутого бита и вывести сообщение (0 или 1).
16. Проверить, что в заданных как ячейки памяти числах совпадают значения битов с №, заданным как ещё одна переменная.

АРХИТЕКТУРА СИСТЕМЫ КОМАНД КОМПЬЮТЕРА.
Практическая работа №2. АДРЕСАЦИЯ ЭЛЕМЕНТОВ МАССИВА, ОРГАНИЗАЦИЯ ЦИКЛА
Данная работа является одной из ряда практических работ, предназначенных для помощи студентам в освоении архитектуры вычислительных систем через практические примеры программирования на Ассемблере Intel. Основным содержанием работы является обучение работе с массивами данных, организации программных циклов для обработки одномерных/двумерных массивов, различным видам относительной адресации переменных в памяти, а также выводу числовой информации в окно результата.
ЗАДАНИЕ
Работа может быть выполнена группой из двух студентов. Правила оценивания прежние.
1. Создать две программы согласно варианту: для Intel и MIPS, которая
• выполняет заданные действия,
• выводит на экран сообщения о результатах/ошибках.
2. Откомпилировать программу и запустить на исполнение (в случае безошибочной компиляции, иначе исправить синтаксические ошибки и провести повторную компиляцию и запуск).
3. Отладить программу либо в среде OllyDbg или др. отладчиках для Intel, либо в пакете MARS (отладчик может быть выбран студентами самостоятельно), проследить изменения в регистрах и ОП.
4. Ответить на вопросы для самопроверки.
ВАРИАНТЫ ЗАДАНИЙ
№ вар Задание (целочисленные операции)
1. Найти минимальный и максимальный элемент массива А и запомнить их номера и адреса в переменных в памяти A_min, A_max. Вывести переменные, и предусмотреть случай (вывести сообщение), когда имеются все/несколько минимальных или максимальных элементов.
2. Для заданного массива А посчитать и запомнить количество нулевых/отрицательных/положительных элементов. Вывести сообщения с этими значениями и предусмотреть случай (вывести сообщение), когда какие-то типы элементов отсутствуют.
3. Найти элементы массива А, содержащие 2 единицы в двоичном представлении и запомнить их номера и адреса в новых одномерных массивах B_nom и B_adr, предусмотреть случай, когда таких элементов нет. Вывести сообщение о количестве таких элементов или об их отсутствии.
4. Для заданного массива А составить новый массив В, каждый элемент которого В соответствует № первого слева (старшего) нулевого Иванова Е.М. Учебное пособие по разделу «Вычислительные системы» разряда элемента А. Предусмотреть случай отсутствия нулевых разрядов элемента. Вывести сообщение с числом таких элементов или штатном режиме – весь массив В заполнен.
5. Для заданного массива А составить новый массив В, каждый элемент которого В соответствует № первого справа (младшего) единичного разряда элемента А. Предусмотреть случай отсутствия единичных разрядов элемента. Вывести сообщение с числом таких элементов или штатном режиме – весь массив В заполнен.
6. Для заданного массива А составить новый массив В, каждый элемент которого В равен сумме единиц в двоичном представлении элемента А. Посчитать общее количество единиц. Предусмотреть случай отсутствия единичных разрядов элементов. Вывести сообщение с общим количеством единиц или об их отсутствии.
7. Вычислить сумму всех отрицательных, положительных элементов массива А, число нулевых элементов, число четных и нечетных элементов и запомнить эти 5 значений в указанном порядке в одномерном массиве В. Вывести сообщения о полученных результатах, предусмотреть случай, когда некоторые виды элементов отсутствуют.
8. Вычислить сумму всех нулевых и единичных битов в двоичном представлении элементов массива А, запомнить эти значения в памяти и вывести эти значения или сообщение об отсутствии некоторых видов битов.
9. Для заданного массива А рассчитать разницу между максимальным и минимальным элементом и вывести это число. Предусмотреть случай их отсутствия (когда все элементы массива равны) и вывести об этом сообщение.
10. Вычислить сумму всех элементов массива А, больше заданной переменной. Вывести сообщения о полученных результатах, предусмотреть случай, когда такие элементы отсутствуют.
11. Для заданного массива А составить новый одномерный массив символьных строк В. Первым символом строки В будет символ «Р» (positive), если элемент А положительный и «N», если отрицательный. Вторым символом строки В будет «–», третьим символом строки В будет «Z», если элемент А нулевой. Вывести сообщения об отсутствии одного из типов элементов и числе положительных элементов.

АРХИТЕКТУРА СИСТЕМЫ КОМАНД КОМПЬЮТЕРА.
Практическая работа №3. РАБОТА С ДЕЙСТВИТЕЛЬНЫМИ ЧИСЛАМИ (ФОРМАТА ЧПЗ) И РЕГИСТРАМИ БЛОКА FPU
Целью работы является закрепление теоретических знаний по разделу «архитектура набора команд» компьютера и получение практических навыков в программировании на Ассемблере под 32-разрядную Windows.
ЗАДАНИЕ
1) Запишите число А=± a1 a2 a3 a4 , a5 a6 в десятичной системе счисления,
представляющее дату вашего рождения, где
a1 a2 – год
a3 a4 – месяц
a5 a6 – число,
знак числа выберите по правилу: минус, если a4 – чётное, иначе – плюс.
2) Представьте это число А в формате IEEE754-2008 с одинарной, двойной или расширенной точностью (на ваш выбор),
3) Переведите получившееся многобайтовое число из двоичной в шестнадцатеричную систему счисления;
4) Проверьте ваши вычисления. Для этого можно создать программу на любом языке программирования, которая выведет на печать последовательно все байты числа для каждого формата (float, double, long double). Либо можно воспользоваться сервисом перевода на сайте «Википедия» в разделе «IEEE 754-2008/ IEEE754 онлайн двоично-десятичный преобразователь» или аналогичными интернет-сервисами. Либо в отладчике OllyDbg кликнув два раза мышкой по значению любого ST регистра в выпадающем окне задать исходное десятичное представления числа и увидеть автоматически формирующееся
шестнадцатеричное представление (не перевёрнутое). Иванова Е.М. Учебное пособие по разделу «Вычислительные системы».
5) Напишите отчёт о проделанной работе, куда включите пункты 1,2,3 и распечатку с результатами программы из пункта 4.
6) Создайте свою программу prakt_float.asm согласно варианту в редакторе Quick Editor пакета MASM, которая выполняет заданные действия с действительными величинами. Помните, что при копировании текста из других редакторов некоторые особенности форматирования могут рассматриваться как синтаксические ошибки в ассемблерной программе (язык ввода, точки, запятые, минус…).
7) Откомпилируйте программу, исправить ошибки, запустить на исполнение в OllyDbg, проследить изменения в регистрах, памяти.
8) Найдите в памяти все использованные в программе переменные и определить знак в их шестнадцатеричном представлении.
9) Рассчитайте погрешность результата компьютерных вычислений
10) Ответьте на вопросы для самопроверки.
ВАРИАНТЫ ЗАДАНИЙ
Работа может быть выполнена группой из двух студентов. Используйте вычисленное вами число А, при необходимости В возьмите любое. Для неподдерживаемых процессором MIPS
констант вычислите их программно или задайте их вручную (сравните точность с аналогичными данными для Intel). Как и в предыдущих случаях надо уметь объяснить, как выполнить любой из вариантов задания.
№ вар Задание (целочисленные операции)
1. Выделить из переменной А в формате ЧПЗ порядок и мантиссу. Воспользуйтесь командой fxtrcat (Intel). Результат M и P сохранить в памяти как новые переменные.
2. Вычислить выражение S=(A:4+log2e)&#215;B. Воспользуйтесь командой fldl2e (Intel). Результат S сохранить в памяти как новую переменную.
3. Сравнить два вещественных числа А и В (воспользуйтесь командами fсomi, fucomi, fucomip – Intel или c.seq./c.lt.s/c.le.s/c/bc1f/bc1t – для MIPS) и вычислить выражение S=max(A,B)+&#188;&#215;min(А,В). Результат S сохранить в памяти как новую переменную.
4. Вычислить выражение S=|A+B|:2. Воспользуйтесь командой fabs (Intel) или abs.s/abs.d для MIPS. Результат S сохранить в памяти как новую переменную.
5. Вычислить площадь круга S с радиусом А. Воспользуйтесь командой fldpi (Intel). Результат S сохранить в памяти как новую переменную.
6. Вычислить выражение S=&#8730;&#119860; + 1. Воспользуйтесь командами fldl1, fsqrt (Intel). Результат S сохранить в памяти как новую переменную.
7. Вычислить выражение S=(2В–1)+А&#215;8. Воспользуйтесь командой f2xm1 и fld1 (Intel). Результат S сохранить в памяти как новую переменную. Иванова Е.М. Учебное пособие по разделу «Вычислительные системы».
8. Вычислить площадь S треугольника по двум сторонам (А, В) и углу между ними. Воспользуйтесь командой fsin (Intel). Результат S сохранить в памяти как новую переменную.
9. Вычислить площадь прямоугольного треугольника по известным катету и прилежащему углу. Воспользуйтесь командой fcos, fsin или fptan (Intel). Результат S сохранить в памяти как новую переменную.
10. Вычислить выражение S=(A&#215;4–B):ln2. Воспользуйтесь командой fldln2 (Intel). Результат S сохранить в памяти как новую переменную.
11. Вычислить выражение S=(1+log102)&#215;А. Воспользуйтесь командами fldlg2, fld1 (Intel). Результат S сохранить в памяти как новую переменную.
12. Вычислить выражение S=(1-ln2)&#215;А. Воспользуйтесь командами fldln2, fld1 (Intel). Результат S сохранить в памяти как новую переменную.

АРХИТЕКТУРА СИСТЕМЫ КОМАНД КОМПЬЮТЕРА.
Практическая работа №4. СПЕЦИАЛЬНЫЕ ТИПЫ ДАННЫХ: ВЕКТОРНЫЕ ОПЕРАЦИИ, ДВОИЧНО-ДЕСЯТИЧНАЯ
АРИФМЕТИКА
Целью работы является закрепление теоретических знаний по разделу «архитектура набора команд» вычислительной системы и получение практических навыков в программировании на Ассемблере 32-разрядного процессора под Windows.
ЗАДАНИЕ
Работа может быть выполнена группой из двух студентов.
Создать, отладить программу согласно варианту задания с выводом результата. Проследить в отладчике OllyDbg/MARS изменения в регистрах и ячейках памяти.
Задача. В памяти задан массив действительных чисел из 4-байтовых элементов (ЧПЗ SP). Загрузить последовательно расположенные элементы массива в 2 вектора. Выполнить с ними операцию согласно вашему варианту задания (табл.1). В получившемся результате выделить 0-й, i-й и j-й элементы вектора результата (табл.2) и сохранить их как три BCD-числа (тип числа t:
упакованное или нет выбрать согласно табл.3). Если в записи чисел присутствуют недопустимые цифры – обнулите их. С помощью BCD-чисел
XMM0: 3333 3333 2222 2222 1111 1111 0000 0000
XMM2: 0000 0000 0000 0000 0000 0000 0000 0000
XMM2[127:96] XMM2[95:64] XMM2[63:32] XMM2[31:0]
XMM0[127:96] XMM0[95:64] XMM0[63:32] XMM0[31:0]
Шаг 1
Шаг 2
Состояние регистров до первого шага:
XMM0: 3333 3333 2222 2222 1111 1111 0000 0000
XMM2: 2222 2222 1111 1111 0000 0000 0000 0000
Промежуточное состояние регистров:
XMM2[127:96] XMM2[95:64] XMM2[63:32] XMM2[31:0]
XMM0[127:96] XMM0[95:64] XMM0[63:32] XMM0[31:0]
XMM0: 3333 3333 2222 2222 1111 1111 0000 0000
XMM2: 0000 0000 3333 3333 2222 2222 1111 1111
Состояние регистров после второго шага: вычислить выражение из табл.4 (предусмотреть возможность получения отрицательного результата). Получившийся результат вывести в окно.
Поскольку векторные операции в MIPS отсутствуют, и работа с векторами в MIPS аналогична работе с массивами данных, то для программы на Ассемблере MIPS предлагается ограничиться выполнением второй части задания – BCD-операциями. Задайте самостоятельно три числа (в упакованном или неупакованном формате – согласно заданию) и выполните над ними требуемые операции.
Табл. 1. Варианты выбора векторной операции
№ вар Векторная операция
1, 12
Умножить каждый элемент первый вектор на число, являющееся 0-м
элементом второго вектора (SHUFPS, MULPS)
2, 13
Вычислить минимальные элементы из двух каждой пары элементов двух векторов (MINPS)
3, 14 Вычесть первый вектор из второго (SUBPS)
4, 15
Сложить первый вектор с перевернутым вторым вектором (SHUFPS, ADDPS)
5, 16 Умножить элементы первого вектора на элементы второго (MULPS)
6, 17 Разделить элементы первого вектора на элементы второго (DIVPS)
7, 18 Вычислить обратное значение каждого элемента вектора (SQRTPS)
8, 19
Выбрать максимальный элемент из каждой пары соответствующих элементов двух векторов (MAXPS)
9, 20 Вычислить квадратный корень каждого элемента второго вектора и записать их в первый вектор (SQRTPS)
10, 21 Выполнить логическое И (ANDPS) между разрядами элементов векторов
11, 22 Выполнить логическое ИЛИ (ORPS) между разрядами элементов векторов
Табл. 2. Варианты выбора номеров i и j элементов вектора в качестве BCD
№ эл-тов
i=3
j=1
i=3
j=2
i=3
j=3
i=2
j=1
i=2
j=2
i=2
j=3
i=1
j=1
i=1
j=2
i=1
j=3
№ вар 1, 10 2, 11 3, 12 4, 13 5, 14 6, 15 7, 16 8, 17 9, 18
Табл. 3. Варианты выбора номеров i и j элементов вектора в качестве BCD
Тип BCD № варианта
Упакованное 1 2 3 4 5 6 7 8 9 10
Неупакованное 11 12 13 14 15 16 17 18 19 20
Табл. 4. Варианты операций с тремя BCD-числами: bcd1, bcd2, bcd3
№ варианта Задание
1, 8, 15 bcd4= +bcd1+bcd2–bcd3
2, 9, 16 bcd4= +bcd1–bcd2+bcd3
3, 10, 17 bcd4= +bcd1–bcd2–bcd3
4, 11, 18 bcd4= –bcd1+bcd2+bcd3
5, 12, 19 bcd4= –bcd1+bcd2–bcd3
6, 13, 20 bcd4= –bcd1–bcd2+bcd3
7, 14, 21 bcd4= –bcd1–bcd2–bcd3

АРХИТЕКТУРА СИСТЕМЫ КОМАНД КОМПЬЮТЕРА.
Практическая работа №5. СТЕК. ВЫЗОВ ПРОЦЕДУР. ПЕРЕДАЧА ПАРАМЕТРОВ
Целью работы является закрепление теоретических знаний по разделу «архитектура набора команд» вычислительной системы и получение практических навыков в программировании на Ассемблере 32-разрядного процессора под Windows.
ЗАДАНИЕ
1. В любой, написанной вами программе к одной из ПР № 2,3,4 оформить изменения данных, или вывод сообщений, или часть кода в виде внутренней процедуры с передачей параметров через стек.
2. Ответить на вопросы для самопроверки.

Год: 2020

Данный заказ (программа) выполнялся нашим сайтом в 2020-м году, в рамках этого заказа была разработана программа в среде программирования Assembler. Если у Вас похожее задание на программу, которую нужно написать на Assembler, либо на другом языке программирования, пожалуйста заполните форму, приведённую ниже, после чего Ваше задание в первую очередь рассмотрит наш программист, выполнявший в 2020-м году этот заказ, если он откажется, то Ваше задание оценят другие наши программисты в течение 48-и часов, если оценка нужна срочно, просим Вас оставить пометку об этом - напишите в тексте задания фразу "СРОЧНЫЙ ЗАКАЗ".

Купить эту работу

Тел.: +7(937)424-22-35
Viber: +7(937)424-22-35
Telegram: +7(937)424-22-35
ВКонтакте: vk.com/kursovikcom
WhatsApp +7(937)424-22-35
E-mail: info@kursovik.com
Skype: kursovik.com





ВНИМАНИЕ ! Сотрудники сайта KURSOVIK.COM в своей работе осуществляют сбор, обработку и обобщение информации по предложенным клиентам темам. Результатом данной работы является информационная подборка, которая НЕ ЯВЛЯЕТСЯ готовой НАУЧНОЙ РАБОТОЙ, она лишь служит основой для её написания самим клиентом.
Данный сайт НЕ ЯВЛЯЕТСЯ средством массовой информации.
Данный сайт НЕ ЯВЛЯЕТСЯ рекламой каких-либо товаров или услуг.
© 2001-2021 kursovik.com