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

Предоплата всего

Подписываем
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Предоплата всего
Подписываем
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ
ОБРАЗОВАТЕЛЬНАЯ АВТОНОМНАЯ НЕКОММЕРЧЕСКАЯ ОРГАНИЗАЦИЯ
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
«ВОЛЖСКИЙ УНИВЕРСИТЕТ имени В.Н. ТАТИЩЕВА» (институт)
В.Ф. ЛАРИНА
Лабораторный практикум
по дисциплинам «ЭВМ и периферийные устройства»,
«Организация ЭВМ и систем», «Архитектура ЭВМ и систем»
Часть 1
Тольятти 2012
ББК 32. 973
В.Ф.Ларина. Лабораторный практикум по дисциплинам «ЭВМ и периферийные устройства», «Организация ЭВМ и систем», «Архитектура ЭВМ и систем». Часть 1. - Тольятти: Волжский университет им. В.Н.Татищева, 2012.- 105 с.
Содержит теоретические сведения и примеры, касающиеся систем счисления, особенностей операций сложения и вычитания с данными разного типа, прерываний, а также подробно прокомментированные примеры программ на языке Ассемблер.
Для студентов очного и заочного отделений специальностей 230101.65 «Вычислительные машины, комплексы, системы и сети» и 230201.65 «Информационные системы и технологии», для бакалавров очного и заочного отделений направления 230100 «Информатика и вычислительная техника».
Утверждено Ученым советом ВУиТ 22.03.2012
© ВОЛЖСКИЙ УНИВЕРСИТЕТ им. В.Н.ТАТИЩЕВА, 2012
ВВЕДЕНИЕ
Архитектура ЭВМ охватывает перечень большого количества характеристик, одной из которых является описание набора и форматов машинных команд.
Язык Ассемблера является специфическим языком машинного уровня, его команды имеют взаимно-однозначное соответствие с системой машинных команд, они согласованы с архитектурой компьютера. Язык Ассемблера существует для каждого типа процессора или целого семейства процессоров, в частности, Ассемблер для IBM PC имеет систему команд, понимаемую различными процессорами производства INTEL.
Наиболее часто язык Ассемблера используется для непосредственного управления аппаратурой ЭВМ. Он необходим также при оптимизации критических блоков в прикладных программах для повышения их быстродействия.
Целью данного лабораторного практикума является ознакомление с основными командами и приемами программирования на Ассемблере, а также с теоретическими сведениями и примерами, касающимися систем счисления, особенностей операций сложения и вычитания с данными разного типа, прерываний.
В конце каждого раздела представлены задания, предназначенные для самостоятельного решения.
Лабораторная работа 1
СИСТЕМЫ СЧИСЛЕНИЯ
Изучение позиционных систем счисления: перевод чисел из одной системы в другую; сложение и вычитание чисел в различных системах счисления.
1.2.1 Под системой счисления понимают способ представления любого числа с помощью некоторого алфавита символов, называемых цифрами.
Позиционные системы счисления характеризуются тем, что одна и та же цифра имеет различное значение, определяемое позицией цифры в последовательности цифр, изображающих число. Десятичная система счисления - позиционная, римская система счисления - непозиционная.
Количество S различных цифр, употребляемых в позиционной системе счисления, называется ее основанием.
Любое число X в позиционной системе счисления можно представить в виде полинома от основания S:
X = kiSi + ki-1Si-1 + … + k1S1 + k0S0 + k-1S-1 + k-2S-2 + …
Для краткости число принято изображать в виде последовательности цифр:
X = kiki-1 … k1k0.k-1k-2 …
Позиции цифры, отсчитанные от запятой (точки), отделяющей целую часть от дробной, называются разрядами.
В ЭВМ используются только позиционные системы счисления с различными основаниями.
Систему счисления, в которой записано число, обозначают подстрочным индексом, заключенным в круглые скобки, например: 1101(2), 369(10), BF(16) и т.д.
ПРИМЕР
1101(10) = 1103+ 1102 + 0101 + 1100
1101(16) = 1163 + 1162 + 0161 + 1160
1101(2) = 1 23 + 1 22 + 0 21 + 1 20
1.2.2 В ЭВМ применяют двоичную, восьмеричную и шестнадцатеричную системы счисления. В компьютерной документации принято дополнять число спецификатором буквой, указывающей, в какой системе оно записано. В конце двоичного числа ставится буква b (binary), в конце восьмеричного буква o (octal) или q ( буква o похожа на нуль, поэтому рекомендуется использовать q), в конце 16-ричного буква h. Ради общности спецификатор d (decimal) можно указывать в конце десятичного числа, но обычно это не делается.
В двоичной системе счисления используются два символа: 0 и 1 ( S = 2 ). Одним из главных достоинств этой системы является тот факт, что для представления в ЭВМ разряда двоичного числа может быть использован любой простой элемент, имеющий всего два устойчивых состояния. Другое преимущество двоичной системы - простота двоичной арифметики.
Каждая позиция, занимаемая двоичной цифрой, называется бит. Бит является наименьшей единицей информации в ЭВМ.
В восьмеричной системе счисления употребляются восемь цифр ( 0...7 ), то есть S = 8. Восьмеричная система счисления удобна для компактной формы записи чисел.
Шестнадцатеричная система счисления имеет основание S, равное 16. В общем виде шестнадцатеричное число выглядит следующим образом:
X = ki16i + ki-116i-1 + … + k1161 + k0160 + k-116-1 + …
где km = 0 … 9, A, B, C, D, E, F, при этом:
A(16) = 10(10) B(16) = 11(10) C(16) = 12(10)
D(16) = 13(10) E(16) = 14(10) F(16) = 15(10)
Шестнадцатеричная система счисления позволяет короче записывать многоразрядные двоичные числа.
Для перевода целого числа из любой системы счисления в десятичную необходимо записать его в виде полинома от основания своей системы счисления и подсчитать результат.
ПРИМЕР
Преобразовать целые числа из двоичной, восьмеричной и шестнадцатеричной систем счисления в десятичную:
1001100(2) = 1 27 + 1 26+ 0 25+ 0 24 + 1 23+ 1 22+ 0 21+ 0 20 =
= 128 + 64 + 0 + 0 + 8 + 4 + 0 + 0 =
= 204(10)
1100(8) = 1 83 + 1 82 + 0 81+ 0 80 =
= 512 + 64 + 0 + 0 = 576(10)
1A8F(16) = 1 163 + A 162 + 8 161 + F 160 =
= 1 4096 + 10 256 + 8 16 + 15 1 =
= 4096 + 2560 + 128 + 15 = 6799(10)
Исходное целое десятичное число необходимо разделить на основание новой системы счисления. Полученное частное снова делить на то же число, и так до тех пор, пока частное, полученное в результате очередного деления, станет меньше основания новой системы счисления. Последнее частное и все полученные остатки от деления составляют число в новой системе счисления (остатки записываются «от конца к началу»).
ПРИМЕР
Десятичное число 57(10) преобразовать в двоичное число.
последовательность записи остатков
ПРИМЕР
Десятичное число 577(10) преобразовать в шестнадцатеричное число.
Двоичное число нужно разбить влево и вправо от запятой (точки) на тетрады и представить каждую тетраду цифрой в шестнадцатеричной системе счисления. Если тетрада неполная, добавить нужное количество незначащих нулей.
Замечание: для удобства оперирования с рассматриваемыми числами следует помнить, что любая двоичная тетрада записывается в виде полинома:
(0 или 1) 23 + (0 или 1) 22 + (0 или 1) 21 + (0 или 1) 20 =
(0 или 1) 8 + (0 или 1) 4 + (0 или 1) 2 + (0 или 1) 1
ПРИМЕР
Целое двоичное число 10101011111101(2) записать в шестнадцатеричной системе.
0010 1010 1111 1101 (2) = 2AFD (16)
2 A F D
ПРИМЕР
Дробное двоичное число 11101.01111 (2) записать в шестнадцатеричной системе.
0001 1101. 0111 1000 (2)
1 D. 7 8 = 1D.78 (16)
Каждую цифру шестнадцатеричного числа заменить двоичной тетрадой.
ПРИМЕР
Шестнадцатеричное число 2AFD (16) записать в двоичной системе.
2 A F D (16)
2 10 15 13 (10)
0010 1010 1111 1101 (2)
2AFD (16) = 10101011111101(2)
Преобразования выполняются по тем же правилам, что и для шестнадцатеричных чисел, но вместо тетрады работают с двоичной триадой.
ПРИМЕР
Двоичное число 10101011111101(2) записать в восьмеричной системе.
010 101 011 111 101 (2)
Восьмеричное число 3406 (8) записать в двоичной системе
3 4 0 6 (8)
011 100 000 110 (2)
Основание двоично-десятичной системы счисления равно 10, но каждая цифра изображается четырехразрядным двоичным числом. Обычно данная система счисления используется в ЭВМ при вводе и выводе больших объемов информации.
Перевод чисел из десятичной системы в двоично-десятичную заключается в замене каждой десятичной цифры двоичной тетрадой.
ПРИМЕР
Записать десятичное число 572.38(10) в двоично-десятичной системе счисления.
5 7 2. 3 8 (10)
0101 0111 0010. 0011 1000 (2-10)
Обратный перевод: двоично-десятичное число разбить на тетрады от точки влево (для целой части) и вправо (для дробной), дописать необходимое число незначащих нулей, а затем каждую тетраду записать в виде десятичной цифры.
ПРИМЕР
Записать двоично-десятичное число 10010,010101(2-10) в десятичной системе счисления.
0001 0010. 0101 0100 (2-10)
1 2. 5 4 (10)
1.9.1 Правила выполнения арифметических действий над двоичными числами определяются арифметическими действиями над одноразрядными двоичными числами.
Сложение Вычитание Умножение
0 + 0 = 0 0 - 0 = 0 0 * 0 = 0
0 + 1 = 1 1 - 0 = 1 1 * 0 = 0
1 + 0 = 1 1 - 1 = 0 0 * 1 = 0
1 + 1 =10 10 - 1 = 1 1 * 1 = 1
Правила выполнения арифметических действий во всех позиционных системах счисления аналогичны.
1.9.2 Сложение двоичных чисел начинается с правых (младших) разрядов. Если результат сложения цифр обоих слагаемых не помещается в этом же разряде результата, то происходит перенос. Цифра, переносимая в соседний разряд слева, добавляется к его содержимому. Такая операция выполняется над всеми разрядами слагаемых.
ПРИМЕР
Выполнить сложение чисел, представленных в десятичной и двоичной системах счисления (формат - 1 байт).
1 1 1111111 перенос единицы
Слагаемое 1 099 (10) 01100011(2)
Слагаемое 2 095 (10) 01011111(2)
Сумма 194 (10) 11000010(2)
1.9.3 Операция вычитания двоичных чисел аналогична операции в десятичной системе счисления. Операция вычитания начинается с младшего разряда. Если содержимое разряда уменьшаемого меньше содержимого одноименного разряда вычитаемого, то происходит заем 1 из соседнего старшего разряда. Операция повторяется последовательно над всеми разрядами операндов.
ПРИМЕР
Выполнить вычитание чисел, представленных в десятичной и двоичной системах счисления (формат - 1 байт).
9 10 1 2 заем
Уменьшаемое 1 0 0 9 (10) 0 1 0 0 1 1 0 1 (2)
Вычитаемое 0 0 4 9 (10) 0 0 1 1 0 0 0 1 (2)
Разность 0 9 6 0 (10) 0 0 0 1 1 1 0 0 (2)
В качестве базы для получения исходных данных принять дату рождения студента в форматах ММДД, ГГММДД и ДДММГГГГ десятичные числа соответственно A, B и С.
Преобразовать числа B и С следующим образом: заменить нечетные цифры единицами, четные нулями и приписать единицу слева к каждому из преобразованных чисел. Полученные числа обозначить D и Е.
16 10
10 2
8 10
10 2-10
10 16 2 10
ПРИМЕР получения исходных данных
Пусть дата рождения студента 28 марта 1988 года. В указанных выше форматах она записывается так: 0328, 880328 и 28031988, это соответственно числа A, B и С.
Преобразование числа B: 880328 (1)000100 1000100 = D
Преобразование числа С: 28031988 (1)00011100 100011100 = Е