Лабораторная работа №7 Тема: «Арифметические операции. Битовые команды»

Лабораторная работа №7 Тема: «Арифметические операции. Битовые команды»


Скачать 59.73 Kb.
Название Лабораторная работа №7 Тема: «Арифметические операции. Битовые команды»
Тип Лабораторная работа
rykovodstvo.ru > Руководство эксплуатация > Лабораторная работа

Методические указания к выполнению лабораторных работ по МДК 01.01 «Системное программирование»

для специальности 09.02.03 «Программирование в компьютерных системах»


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

Тема: «Арифметические операции. Битовые команды»

Цель работы: изучить арифметические операции языка ассемблера; научиться их использовать при составлении программ; научиться применять битовые команды.

Ход работы:
  1. Изучить теоретическую часть

  2. Выполнить задание в соответствии с указаниями

  3. Ответить на контрольные вопросы

  4. Предъявить преподавателю результаты работы: проект и исходный код

  5. Оформить отчет в соответствии с ходом работы


Теоретическая часть:

Арифметические операции на языке ассемблера выполняются над целыми числами четырех типов:

Беззнаковыми двоичными, знаковыми двоичными, упакованными десятичными и неупакованными десятичными.

В данной лабораторной работе рассматриваются арифметические операции над беззнаковыми числами.

Используются следующие команды:

ADD – сложить, SUB – вычесть.

Описание команд: Работают с 8 и 16 битовыми операндами, инструкция ADD выполняет сложение операнда источника (правого операнда) с содержимым операнда приемника (левый операнд), результат помещается в операнд приемник. Инструкция SUB делает тоже самое, только она вычитает операнд источник из операнда приемника, результат помещается в операнд приемник. Операндами могут быть регистры, константы, ячейки памяти в различных комбинациях, но нельзя добавить (вычесть) значение одной ячейки памяти к другой, а также в качестве операнда источника использовать константу (непосредственное значение). Команда воздействует на шесть флагов: AF, CF, OF, PF, SF, ZF.

Например, флаг переноса CF=1 если результат действия не помещается в операнде приемнике, в противном случае CF=0.

MUL - умножить.

Описание команд: инструкция MUL перемножает 8 и 16 битовые беззнаковые множители, создавая 16 или 32 битовое произведение. При 8 битовом произведении один из операндов в регистре AL другой может быть 8 битовым регистром общего назначения или переменной памяти соответствующего назначения. Результат помещается в регистр AX (16 битовый). При 16 битовых множителях один из сомножителей в 16 битовом регистре общего назначения другой в переменной памяти, 32 битовый результат в регистрах DX:AX. При этом младшие 16 бит в AX старшие в DX.

Команда воздействует на два флага: CF, OF.

DIV – разделить.

Описание команд: позволяет разделить 32 битовое значение на 16 битовое значение или 16 битовое на 8 битовое. При делении 16 битового значения делимое помещается в AX, 8 битовый делитель помещается в регистр или в переменную соответствующего размера. Результат (8 битовый) помещается в AL, остаток в AH.

Состояние флагов не определено, но если частное не помещается в регистре AL (AX) процессор генерирует прерывание типа 0 (деление на 0). В заданиях используются директивы и команды, изученные в предыдущих лабораторных работах.

БИТОВЫЕ КОМАНДЫ

Битовые команды рассматривают свои операнды не в виде привычных уже байтов, слов и двойных слов, в виде последовательности битов. Эти команды реализуют логические операции и команды сдвигов.

Логические операции (или булевы команды) – как, следует из названия, выполняют логические операции – отрицание, конъюнкцию, дизъюнкцию и им присуще ряд черт.



Команда not на флаги не действует и работает по следующему принципу. Например:



Все остальные команды сбрасывают CF и OF, а флаги SF, ZF, PF изменяют по обычным правилам.

Команда and производит поразрядное логическое умножение операндов и записывает результат на место первого операнда. Например:



Команда test, аналог предыдущей команды, но результат логического умножения никуда не записывается, основное назначение – установка флагов, особенно флаг нуля ZF.



Команда or производит поразрядное логическое сложение операндов и записывает результат на место первого операнда. Например:



Команда xor производит поразрядное логическое сложение операндов и записывает результат на место первого операнда. Данная операция соответствует фразе «или то, или другое, но не то и не другое», т.е. если биты совпадают, записывается 0, иначе 1.



Команды сдвига – эти команды перемещают содержимое ячейки влево или вправо. Одним из операндов этих команд является количество сдвигов cnt. Оно либо равно 1, либо определяется содержимым регистра CL (при этом CL сохраняет своё содержимое после операции).

Логические сдвиги – команды сдвига, где участвуют все биты первого операнда, при этом бит, уходящий за пределы ячейки. Заносится в флаг СА, а с другого конца в операнд добавляется ноль.





Арифметические сдвиги – предназначены для реализации быстрого умножения и деления знаковых чисел на степени двойки.



Примечание: команда sal при трансляции будет воспринята как shl, так кА это разные мнемонические названия одной и той машинной команды.

Циклические сдвиги. Особенность циклических сдвигов в том, что «уходящий» бит не теряется, а возвращается в операнд, но с другого конца.



Задание 1. Задача заключается в вычислении результата выполнения арифметического выражения, в котором некоторые числа постоянны, а другие переменные.

Формула вычислений: X=(A*2+B*C)/(D-3)

Приведенная программа сначала резервирует ячейки памяти под переменные, затем выполняет умножение однобайтовых чисел (А*2), результат умножения – двухбайтовое число в регистре АХ, сохраняется в регистре СХ, далее выполняется умножение однобайтовых чисел (B*C), результат – двухбайтовое число храниться в аккумуляторе AX. После сложения двух сомножителей и вычисления знаменателя (В-3) выполняется деление. Результат присваивается переменной X.

  1. Наберите приведенную программу 1, запишите исходный файл с расширением *.asm, получите файл с расширением *.exe.

  2. Выполните программу с 5 вариантами различных начальных значений переменных A, B, C, D по шагам (см. таблицу 1) и запишите результат выполнения в таблицу (в регистре AL – частное, AH – остаток). Переведите результат в десятичную систему.







  1. Наберите приведенную программу 2, запишите исходный файл с расширением *.asm, получите файл с расширением *.exe.

  2. Выполните программу с 5 вариантами различных начальных значений регистра al. Переведите результат и запишите таблицу 2 в двоичной и десятичной системе.




Контрольные вопросы:

  1. Чем отличается выполнение арифметических операций на языке ассемблера от языков высокого уровня?

  2. По какому биту регистра флагов можно установить, что предшествующее вычитание привело к отрицательному результату?

  3. По какому биту регистра флагов можно установить, что результат арифметической операции превысил разрядную сетку?

  4. В чем особенность выполнения арифметических операций с знаковыми и беззнаковыми числами?

  5. В каком регистре необходимо указывать величину сдвига в команде сдвига?




Похожие:

Лабораторная работа №7 Тема: «Арифметические операции. Битовые команды» icon Лабораторная работа 1 4 лабораторная работа 2 13 лабораторная работа...
Интернете разнообразную информацию – описательную, графическую, картографическую и пр. При разработке сайтов необходимо уметь работать...
Лабораторная работа №7 Тема: «Арифметические операции. Битовые команды» icon Лабораторная работа №9 59 Лабораторная работа №10 72 Лабораторная...
Рабочая тетрадь для выполнения лабораторных работ по мдк. 03. 01. «Техническое обслуживание и ремонт компьютерных систем и комплексов»...
Лабораторная работа №7 Тема: «Арифметические операции. Битовые команды» icon Лабораторная работа 1 Тема работы: Установка операционной системы....
Оответствии с инструкциями преподавателя, последовательность действий, описанных в частях 1 и 2, может быть скорректирована с учетом...
Лабораторная работа №7 Тема: «Арифметические операции. Битовые команды» icon Методические указания для студентов по выполнению лабораторных работ...
Лабораторная работа 4, 5 Исследование регистров, счетчиков и дешифраторов Лабораторная работа 6, 7 Исследование генератора псевдослучайной...
Лабораторная работа №7 Тема: «Арифметические операции. Битовые команды» icon Лабораторная работа №10. Изучение принципа действия и функциональной...
Лабораторная работа № Изучение принципов построения системы автоматической подстройки частоты (апч) радиолокационной станции
Лабораторная работа №7 Тема: «Арифметические операции. Битовые команды» icon Лабораторная работа №1 «Создание общих ресурсов и управление ими»
Лабораторная работа №6-7 «Изучение типов серверов, их настройка и конфигурирование»
Лабораторная работа №7 Тема: «Арифметические операции. Битовые команды» icon Лабораторная работа №5 Тема: Работа в командной строке и консультации...
После этого вы оказываетесь в так называемом вашем домашнем каталоге (Home Directory)
Лабораторная работа №7 Тема: «Арифметические операции. Битовые команды» icon Лабораторная работа №3 по дисциплине: «Операционные системы»
Зарегистрироваться в системе. Изучить правила входа в систему и завершения работы (команды login, logout, passwd, exit, shutdown,...
Лабораторная работа №7 Тема: «Арифметические операции. Битовые команды» icon Лабораторная работа №
Лабораторная работа №1. Изучение основных возможностей программного продукта Яндекс. Сервер. Установка окружения, установка и настройка...
Лабораторная работа №7 Тема: «Арифметические операции. Битовые команды» icon Лабораторная работа №5 Тема: Использование элементов управления, cookie, сессии. Работа с почтой
Запустите файл из папки лабораторной работы №7 для установки Denver. Внимательной следуйте инструкциям программы – установки. Установку...
Лабораторная работа №7 Тема: «Арифметические операции. Битовые команды» icon Лабораторная работа №27 Лабораторная работа №28 Контрольные работы...
Пм «Сборка монтаж (демонтаж) элементов судовых конструкций, корпусов, устройств и систем металлических судов»
Лабораторная работа №7 Тема: «Арифметические операции. Битовые команды» icon Лабораторная работа №1 Тема. Основы работы с электронной таблицей Excel
Цель. Приобрести практические навыки по созданию и оформлению эт, вводу данных, использованию функции Автосумма
Лабораторная работа №7 Тема: «Арифметические операции. Битовые команды» icon Лабораторная работа №9
Данная лабораторная работа оформляется в виде файла word с расширением файла docx или doc и прикрепляется в виде ссылки на файл к...
Лабораторная работа №7 Тема: «Арифметические операции. Битовые команды» icon Лабораторная работа Тема. Изучение конструкции и проверка работоспособности...
Цель: 1 Изучить принцип действия и конструкцию одновиткового трубчатого манометра
Лабораторная работа №7 Тема: «Арифметические операции. Битовые команды» icon Лабораторная работа 2 12 лабораторная работа 3 17 лабораторная работа...
«Проектирование систем реального времени» для студентов специальности 09. 05. 01 «Применение и эксплуатация автоматизированных систем...
Лабораторная работа №7 Тема: «Арифметические операции. Битовые команды» icon Методическая разработка практического занятия для студента Тема :...
Тема: «Приходные и расходные кассовые операции. Налично-денежные расчёты с населением»

Руководство, инструкция по применению




При копировании материала укажите ссылку © 2024
контакты
rykovodstvo.ru
Поиск