Микропрограммное устройство деления двоично-десятичных чисел с плавающей точкой
Общая характеристика и преимущество использования двоично-десятичных чисел с плавающей точкой. Разработка цифрового автомата. Функциональное назначение выводов корпуса МК51, арифметико-логического устройства, портов. Примеры деления данных чисел.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 12.09.2015 |
Размер файла | 719,3 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Микропрограммное устройство деления двоично-десятичных чисел с плавающей точкой
Содержание
двоичный число деление автомат
- Введение
- 1. Деление двоично-десятичных чисел с плавающей точкой
- 1.1 Выбор формата данных
- 1.2 Числа с плавающей запятой
- 2. Разработка цифрового автомата
- 2.1 Функциональное назначение выводов корпуса МК51
- 2.2 Арифметико-логическое устройство
- 2.3 Порты ввода/вывода информации
- 3. Примеры деления чисел на ДСДК
- 3.1 Алгоритм работы автомата
- 3.2 Программирование на языке низкого уровня
- Заключение
- Список использованной литературы
- Приложения
Введение
Постоянно расширяющаяся сфера применения микропроцессорной техники требует разработки новых, более производительных средств обработки данных. Развитие данного направления связано как с разработкой сопроцессоров, использующих плавающую арифметику, так и с совершенствованием устройств управления, обеспечивающих более эффективное использование систем обработки.
В настоящее время большинство процессоров (в том числе Intel, SPARC и JVM) содержат команды с плавающей точкой, которые соответствуют этому стандарту. В отличие от многих стандартов, ставших плодом неудачных компромиссом и мало кого устраивавших, этот стандарт неплох, причем в значительной степени благодаря тому, что его изначально разрабатывал один человек, профессор математики университета Беркли Вильям Каган (William Kahan). Старший разряд двоичного представления вещественного числа всегда кодирует знак числа. Остальная часть разбивается на две части: экспоненту и мантиссу. Если 1M<2, то такое число называется нормализованным. При хранении нормализованных чисел сопроцессор отбрасывает целую часть мантиссы (она всегда 1), сохраняя лишь дробную часть. Экспонента кодируется со сдвигом на половину разрядной сетки, таким образом, удается избежать вопроса о кодировании знака экспоненты.
Цифровые электронные вычислительные машины, т.е. компьютеры, предназначены для обработки цифровой информации и являются частным, но наиболее распространенным видом цифровых автоматов. Для успешного изучения общих принципов обработки цифровой информации рационально, по возможности максимально, отвлечься от реального аппаратного обеспечения компьютера и рассматривать компьютер как некоторый абстрактный цифровой автомат, предназначенный для обработки информации, представленной в цифровой форме. Знания по прикладной теории таких автоматов необходимы для успешного поиска новых принципов построения компьютеров, совершенствования уже известных алгоритмов обработки цифровой информации, грамотной эксплуатации вычислительной техники и разработки различного программного обеспечения.
Данные методические указания закладывают основу для создания высокопроизводительных вычислительных систем, использующих операции с плавающей точкой, а также определяют методику проектирования микропрограммных устройств управления с жесткой и программируемой логикой. Излагаемая методика поддерживается разработанной на базе пакета PCAD системой моделирования, позволяющей оценить работоспособность и эффективность устройств управления, реализованных как на основе микропрограммы записанной в ПЗУ, так и реализованных аппаратно на элементах цифровой логики.
Курсовая работа состоит из 3 частей, введения, заключения и списка используемых источников.
1. Деление двоично-десятичных чисел с плавающей точкой
1.1 Выбор формата данных
Системой счисления называется совокупность цифр и правил для записи чисел. Запись числа в некоторой системе счисления называется кодом. Все системы счисления делятся на позиционные и непозиционные. Для записи чисел в позиционной системе счисления используют определенное количество графических знаков(цифр и букв), которые отличаются один от другого. Число таких знаков q называют основанием позиционной системы счисления.
При выборе системы счисления для ЭВМ необходимо учитывать, что во-первых, основание системы счисления определяет количество устойчивых состояний, которые должен иметь функциональный элемент, выбранный для изображения разрядов числа; во-вторых - длина числа существенно зависит от основания системы счисления; в третьих - система счисления должна обеспечить простые алгоритмы выполнения арифметических и логических операций. Наиболее удобны условия реализации двоичных цифр, т.к. физических процессов, имеющих два устойчивых состояния, гораздо больше, чем процессов с числом четко различимых состояний больше двух. К тому же в процессах с двумя устойчивыми состояниями различие между этими состояниями носит качественный, а не количественный характер, что обеспечивает надежную реализацию двоичных цифр.
Таким образом, простота арифметических и логических действий, минимум используемого оборудования для представления чисел и наиболее удобные условия реализации только двух устойчивых состояний определили применение двоичных систем счисления практически во всех существующих и проектируемых цифровых вычислительных машинах [3].
1.2 Числа с плавающей запятой
Плавающая запятая -- форма представления действительных чисел, в которой число хранится в форме мантиссы и показателя степени. При этом число с плавающей запятой имеет фиксированную относительную точность и изменяющуюся абсолютную.
Преимущество использования представления чисел в формате с плавающей запятой над представлением в формате с фиксированной запятой (и целыми числами) состоит в том, что можно использовать существенно больший диапазон значений при неизменной относительной точности. Например, в форме с фиксированной запятой число, занимающее 8 разрядов в целой части и 2 разряда после запятой, может быть представлено в виде 123456,78; 8765,43; 123,00 и так далее. В свою очередь, в формате с плавающей запятой (в тех же 8 разрядах) можно записать числа 1,2345678; 1234567,8; 0,000012345678; 12345678000000000 и так далее, но для этого необходимо двухразрядное дополнительное поле для записи показателей степени 10 от 0 до 1610, при этом общее число разрядов составит 8+2=10.
Нормальной формой числа с плавающей запятой называется такая форма, в которой мантисса (без учёта знака) находится на полуинтервале [0; 1) (). Число с плавающей запятой, находящееся не в нормальной форме, теряет точность по сравнению с нормальной формой. Такая форма записи имеет недостаток: некоторые числа записываются неоднозначно (например, 0,0001 можно записать в 4 формах -- 0,0001Ч100, 0,001Ч10?1, 0,01Ч10?2, 0,1Ч10?3), поэтому распространена (особенно в информатике) также другая форма записи -- нормализованная, в которой мантисса десятичного числа принимает значения от 1 (включительно) до 10 (не включительно), а мантисса двоичного числа принимает значения от 1 (включительно) до 2 (не включительно) (). В такой форме любое число (кроме 0) записывается единственным образом. Недостаток заключается в том, что в таком виде невозможно представить 0, поэтому представление чисел в информатике предусматривает специальный признак (бит) для числа 0.
Таблица 1 - Деление чисел c плавающей точкой
№п/п |
Наименование МО, условия ее выполнения и представление в операторах присваивания |
Признаки, вырабатываемые в результате выполнения МО и комментарии |
|
1 |
Запись исходных чисел в регистры мантисс и порядков ОА: - числа в прямом коде (модули чисел) РСМм(0/n):=Mx(0/n), Р2м(0/n-1):=Mx(n+1/2n), Р1м:=[My], РСМp:=[Px]2, Р1p:=[Py]2; - числа в дополнительном коде РСМм(0/n):=[Mx(0/n)]2, Р2м(0/n-1):=[Mx(n+1/2n)]2, Р1м:=[My]2, РСМn:=[Px]2 ,Р1n:=[Py]2 |
Мантиссы делимого располагаются так, чтобы старший разряд мантиссы располагался в старшем разряде РСМ после кода знака делимого. Для чисел в прямом коде в знаковые разряды регистров устанавливаются нули |
|
2 |
Проверка исходных чисел на нуль |
Осуществляется так же как и для чисел с фиксированной точкой |
|
3 |
Пробное вычитание (сложение) для анализа на переполнение выполняется так же как и для деления двоичных чисел с фиксированной точкой |
При наличии переполнения для чисел с плавающей точкой осуществляется восстановление мантиссы делимого с последующей ее денормализацией |
|
4 |
Восстановление мантиссы делимого после пробного вычитания (сложения) при РСМ(0)1=x0. Для этой цели в сумматоре выполняется: - сложение, если при анализе на переполнение выполнялось вычитание РСМм:=РСМ(0)1+P1м; - вычитание, если при анализе на переполнение выполнялось сложение |
При отсутствии переполнения формируется код знака частного для чисел в дополнительном коде и осуществляется сдвиг в РСМ и Р2 после чего начинаются такты деления чисел обоих кодов |
|
5 |
Денормализация мантиссы делимого после анализа на переполнение производится при РСМ(0)1=x0 сдвигом мантиссы Mx вправо на 1 разряд и увеличением порядка Px на единицу Px=Px+1; Mx:=ARS(Mx,1); РСМp:=РСМp+1 |
Знак мантиссы делимого после сдвига сохраняется, так как сдвиг арифметический |
|
6 |
Деление мантисс после анализа на переполнение осуществляется по алгоритму деления чисел с фиксированной точкой (для p=0); при этом необходимо иметь в виду, что при наличии переполнения деление мантисс может производиться только после восстановления мантиссы делимого и ее денормализации Mz:=Mx/My |
Если переполнение имело место, то код знака частного для мантисс в дополнительном коде может сформироваться только в результате первого такта деления, выполняемого после денормализации делимого. В результате деления нор-мализованных мантисс и в случае деления денормали-зованных мантисс результат деления представляется в нормализованном виде |
|
7 |
Определение кода знака частного и его запись в регистр частного. Если переполнения не было, то определение кода знака частного и его запись в регистр Р2 производится так же как и для чисел с фиксированной точкой. Если переполнение было, то код знака частного для мантисс в дополнительном коде определяется только в результате первого такта деления мантисс после денормализации делимого. Запись кода знака частного в младший разряд регистра Р2 при наличии переполнения осуществляется только после первого такта деления Р2(n):=z0 |
Для чисел в прямом коде наличие сигнала переполнения не влияет на определение кода знака частного, так как он определяется по формуле z0=x0 y0 |
|
8 |
Восстановление последнего остатка делимого и коррекция частного |
Производится так же как и при делении чисел с фиксированной точкой |
|
9 |
Определение порядка результата с учетом возможной денормализации делимого Pz=Px-Py |
Возможны особые случаи: - при Pz > Pmax.доп. вырабатывается сигнал переполнения порядка ОV=1; - при Pz < Pmin.доп. вырабатывается сигнал антипереполнения Uп=1 |
На рисунке 1 для примера представлен фрагмент ГСА операции сложения двоичных чисел с плавающей точкой - сложение мантисс после выравнивания порядков слагаемых и нормализация результата сложения. Для этого фрагмента ГСА в целях его завершенности предполагается, что начальному оператору соответствует размещение результатов выполненных микроопераций выравнивания порядков слагаемых в регистрах РСМм и Р1м, а конечному оператору - микрооперации записи результатов сложения в ОЗУ. Во фрагменте ГСА использованы два возможных способа записи логических условий: в первом случае значение сигнала переполнения разрядной сетки мантисс V, равное единице, свидетельствует о нарушении нормализации результата сложения мантисс влево; во втором случае условие нарушения нормализации результата сложения мантисс вправо записано в виде отношения HR = 0, при его ложности производится нормализация мантиссы результата влево. Операционный автомат включает:
· блок из 8-ми регистров общего назначения Р0-Р7, предназначенных для хранения промежуточных результатов;
· регистр адреса РА, определяющий адрес оперативной памяти при чтении и записи данных;
· регистр аккумулятор АС, хранящий один из операндов или результат выполнения микрооперации;
· арифметико-логическое устройство АЛУ, в котором выполняются заданные микрооперации;
· регистр признаков РП, хранящий признаки выполненной микрооперации.
Все регистры операционного автомата 8-ми разрядные. В табл 7 приведен состав микроопераций Мj их 8-ми разрядная кодировка, а также описаны действия выполняемые каждой из них.
Рисунок 1 - Фрагмент ГСА операции сложения чисел с плавающей точкой
Таблица 2 - Состав микроопераций
N |
Код микрооперации |
Действие |
|
п/п |
м8 м7 м6 м5 м4 м3 м2 м1 |
||
1 |
0000 0000 |
АС = РА |
|
2 |
0000 0001 |
РА = РА + АС |
|
3 |
0000 0010 |
Арифметический сдвиг вправо АС |
|
4 |
0000 0011 |
Арифметический сдвиг вправо Р7 |
|
5 |
0000 0100 |
Циклический сдвиг вправо АС |
|
6 |
0000 0101 |
Циклический сдвиг вправо Р7 |
|
7 |
0000 0110 |
Арифметический сдвиг влево АС |
|
8 |
0000 0111 |
Арифметический сдвиг влево Р7 |
|
9 |
0000 1000 |
Циклический сдвиг влево АС |
|
10 |
0000 1001 |
Циклический сдвиг влево Р7 |
|
11 |
0000 1010 |
Пустая микрокоманда (NOP ) |
|
12 |
0000 1011 |
Стоп |
|
13 |
0000 1100 |
П(РА) = АС, запись в память содержимого аккумулятора по адресу в регистре РА |
|
14 |
0000 1101 |
АС = П(РА), чтение в аккумулятор из памяти по адресу в регистре РА |
|
15 |
0000 1110 |
АС Стек |
|
16 |
0000 1111 |
АС Стек |
2. Разработка цифрового автомата
2.1 Функциональное назначение выводов корпуса МК51
Микроконтроллер выполнен на основе высокоуровневой n-МОП технологии и выпускается в корпусе БИС, имеющем 40 внешних выводов. Цоколевка корпуса МК51 и наименования выводов показаны на рисунке 2 Для работы MK51 требуется один источник электропитания +5 В. Через четыре программируемых порта ввода/вывода MK51 взаимодействует со средой в стандарте ТТЛ-схем с тремя состояниями выхода. Корпус МК51 имеет два вывода для подключения кварцевого резонатора, четыре вывода для сигналов, управляющих режимом работы МК, и восемь линий порта 3, которые могут быть запрограммированы пользователем на выполнение специализированных (альтернативных) функций обмена информацией со средой.
Рисунок 2 - Цоколевка корпуса МК51 и наименование выводов
Основу структурной схемы МК51 образует внутренняя двунаправленная 8-битная шина, которая связывает между собой все основные узлы и устройства: резидентную память, АЛУ, блок регистров специальных функций, устройство управления и порты ввода/вывода. Рассмотрим основные элементы структуры и особенности организации вычислительного процесса в МК51.
Рисунок 3 - Структурная схема МК51
2.2 Арифметико-логическое устройство
8-битное АЛУ может выполнять арифметические операции сложения, вычитания, умножения и деления; логические операции И, ИЛИ, исключающее ИЛИ, а также операции циклического сдвига, сброса, инвертирования и т.п.
В АЛУ имеются программно недоступные регистры T1 и T2, предназначенные для временного хранения операндов, схема десятичной коррекции и схема формирования признаков.
Простейшая операция сложения используется в АЛУ для инкрементирования содержимого регистров, продвижения регистра-указателя данных и автоматического вычисления следующего адреса РПП. Простейшая операция вычитания используется в АЛУ для декрементирования регистров и сравнения переменных.
Простейшие операции автоматически образуют "тандемы" для выполнения в АЛУ таких операций, как, например, инкрементирование 16-битных регистровых пар. В АЛУ реализуется механизм каскадного выполнения простейших операций для реализации сложных команд. Так, например, при выполнении одной из команд условной передачи правления по результату сравнения в АЛУ трижды инкрементируется СК, дважды производится чтение из РПД, выполняется арифметическое сравнение двух переменных, формируется 16-битный адрес перехода и принимается решение о том, делать или не делать переход по программе. Все перечисленные операции выполняются в АЛУ всего лишь за 2 мкс.
Важной особенностью АЛУ является его способность оперировать не только байтами, но и битами.
Отдельные программно-доступные биты могут быть установлены, сброшены, инвертированы, переданы, проверены и использованы в логических операциях.
Эта способность АЛУ, оперировать битами, столь важна, что во многих описаниях МК51 говорится о наличии в нем "булевского процессора". Для управления объектами часто применяются алгоритмы, содержащие операции над входными и выходными булевскими переменными (истина/ложь), реализация которых средствами обычных микропроцессоров сопряжена с определенными трудностями.
Таким образом, АЛУ может оперировать четырьмя типами информационных объектов: булевскими (1 бит), цифровыми (4 бита), байтными (8 бит) и адресными (16 бит). В АЛУ выполняется 51 различная операция пересылки или преобразования этих данных.
Так как используется 11 режимов адресации (7 для данных и 4 для адресов), то путем комбинирования "операция/ режим адресации" базовое число команд 111 расширяется до 255 из 256 возможных при однобайтном коде операции.
Система команд МК51 содержит 111 базовых команд, которые удобно разделить по функциональному признаку на пять групп: команды передачи данных, арифметических операций, логических операций, передачи управления и операций с битами.
Система команд МК51 много мощнее и шире системы команд МК48, так как кроме всех команд МК48 в ее состав входят команды умножения, деления, вычитания, операций над битами, операций со стеком и расширенный набор команд передачи управления. Большинство команд (94) имеют формат один или два байта и выполняются за один или два машинных цикла.
При тактовой частоте 2 МГц длительность машинного цикла составляет 1 мкс. На рис. 3.19 показаны 13 типов команд МК51. Первый байт команды любых типа и формата всегда содержит код операции (КОП). Второй и третий байты содержат либо адреса операндов, либо непосредственные операнды.
Типы операндов. Состав операндов МК51 шире, чем МК48, и включает в себя операнды четырех типов: биты, 4-битные цифры, байты и 16-битные слова.
Например, символическое имя пятого бита аккумулятора будет следующим: АСС.5. Символические имена РСФ, портов и их бит являются зарезервированными словами для ASM51, и их не надо определять с помощью директив ассемблера.
Рисунок 4 - Карта адресуемых бит в блоке регистров специальных функций
Большую часть команд данной группы (табл. 3.2) составляют команды передачи и обмена байтов. Команды пересылки бит представлены в группе команд битовых операций. Все команды данной группы не модифицируют флаги результата, за исключением команд загрузки PSW и аккумулятора (флаг паритета).
Структура информационных связей. В зависимости от способа адресации и места расположения операнда можно выделить девять типов операндов, между которыми возможен информационный обмен. Аккумулятор (А) представлен на этом графе отдельной вершиной, так как многие команды используют неявную (подразумеваемую) адресацию (рисунок 5).
Рисунок 5 - Граф путей передачи данных в МК51
В отличие от МК48 передачи данных в МК51 могут выполняться без участия аккумулятора.
Аккумулятор. В отличие от МК48 обращение к аккумулятору может быть выполнено в МК51 с использованием неявной и прямой адресации. В зависимости от способа адресации аккумулятора применяется одно из символических имен: A или ACC (прямой адрес). При прямой адресации обращение к аккумулятору производится как к одному из РСФ, и его адрес указывается во втором байте команды.
Использование неявной адресации аккумулятора предпочтительнее, однако не всегда возможно, например при обращении к отдельным битам аккумулятора.
Обращение к внешней памяти данных. Режим косвенной адресации ВПД, имеющийся в МК48, реализован также и в МК51. При использовании команд MOVX @Ri обеспечивается доступ к 256 байтам внешней памяти данных.
Существует также режим обращения к расширенной ВПД, когда для доступа используется 16-битный адрес, хранящийся в ретистре-указателе данных (DPTR). Команды MOVX @DPTR обеспечивают доступ к 65 536 байтам ВПД.
2.3 Порты ввода/вывода информации
Все четыре порта МК51 предназначены для ввода или вывода информации побайтно. Схемотехника портов ввода/вывода МК51 для одного бита показана на рисунке 6 (порты 1 и 2 имеют примерно такую же структуру, как и порт 3). Каждый порт содержит управляемые регистр-защелку, входной буфер и выходной драйвер.
Рисунок 6 - Схемотехника портов ввода/вывода
Выходные драйверы портов 0 и 2, а также входной буфер порта 0 используются при обращении к внешней памяти (ВП). При этом через 1 порт 0 в режиме временного мультиплексирования сначала выводится младший байт адреса ВП, а затем выдается или принимается байт данных. Через порт 2 выводится старший байт адреса в тех случаях, когда 1 разрядность адреса равна 16 бит.
3. Примеры деления чисел на ДСДК
Пример 1.
A = 65; B = -13
A= 1000001 Am=00.1000001000.00.0111
B = 1101, Bm=11.1101000000.00.0100, B доп = 11.0011000000.00.0100
Знак:
SC = SA SB = 0 1 = 1
Экпонента:
00.111
+11.100
100.011
Мантисса:
00.1000001000
+11.0011000000
11.1011001000 > 0, восстановление остатка
+00.1101000000
100.1000001000
>01.0000010000
+11.1101000000
00.1101010000 > 1
>01.1010100000
+11.0011000000
100.1101100000> 0, восстановление остатка
>01.1011000000
+00.1101000000
00.0000000000> 1
MC = 0101000000
Ответ: С = 11.1010000000.00.0011(=5)
Пример 2:
A = -39; B = 13
A=100111 An=11.1001110000.00.0110
B=1101 Bn=00.1101000000.00.0100 Bдоп=00.0011000000.00.0100
Знак:
SC = SA SB = 1 0 = 1
Экпонента:
00.1101
+11.0110
100.0101
Мантисса:
00.101010000
+11.010000000
11.111010000 > 0, восстановление остатка
+00.110000000
100.101010000
>01.010100000
+ 11.010000000
100.100100000> 1
>01.001000000
+11.010000000
100.011000000> 1
>00.110000000
+11.010000000
100.000000000> 1
MC = 0111000000
Ответ: С =11.1110000000.00.0011(=7)
3.1 Алгоритм работы автомата
Любые действия, процедуры, по обработке информации, в частности цифровой, выполняются по тому или иному алгоритму.
Перед тем, как подробно рассматривать алгоритмы арифметических действий, выполняемых в цифровых автоматах, приведем определение самого понятия алгоритма и общие принципы составления любых алгоритмов.
Совокупность правил перехода цифрового автомата из одного состояния в другое в зависимости от входной информации и внутренних состояний автомата называется алгоритмом преобразования (переработки) информации.
Процесс распределения может быть реализован двумя методами: с возобновлением остатка и без возобновления остатка.
В нашем случае, по условию варианта, процесс распределения пойдет по методу c возобновлением остатка.
Трудности разработки эффективного алгоритма синтеза связаны с многочисленностью алгоритмов выполнения операций деления и многообразием структурных решений, используемых при реализации алгоритма.
Поэтому, выбор алгоритма, исходных операций, структур, способов превращения информации и процессов управления с точки зрения улучшения ЦА или приближение его к оптимальным характеристикам требует профессионального опыта [2].
При делении двоичных чисел представленных в формате с плавающей запятой, операцию деления проводят над мантиссами чисел.
Само же деление выполняется по следующему алгоритму: определение знака результата деления.
Определяется взятием суммы по mod2 знаков делимого и делителя
Зн(C) = Зн(A) Зн(B).
Таблица истинности функции mod2 () представлена в таблице 2;
Таблица 2- Таблица истинности функции mod2
A |
0 |
0 |
1 |
1 |
|
B |
0 |
1 |
0 |
1 |
|
C |
0 |
1 |
1 |
0 |
· представить делимое в прямом коде со знаком "+", делитель в прямом и дополнительном коде со знаком "-";
· Начиная со старших разрядов, к делимому прибавляется делитель в дополнительном коде, что равнозначно вычитанию из делимого делителя и анализируется знак промежуточного результата
· проверить знак промежуточного результата: если знак положительный, то записать в результат 1, иначе 0 и произвести возобновление остатка - сложить промежуточный результат с делителем в прямом коде со знаком "+";
· если промежуточный результат равен 0, то алгоритм заканчивается, иначе продолжается с пункта №6;
· сдвинуть делитель влево и снести следующий разряд делимого, перейти в пункт 3.
Проанализировав вышесказанное, мы можем установить алгоритм работы разрабатываемого цифрового автомата и изобразить его в виде блок-схемы (рисунок 8), в свою очередь на рисунке 9 представлена закодированная блок-схема, на рисунке 7 представлен граф ЦА.
Рисунок 7- Граф ЦА
Рисунок 8 - Блок-схема алгоритма деления
Рисунок 9 - Закодированная блок-схема
3.2 Программирование на языке низкого уровня
Кроме алгоритмических языков программирования (языков высокого уровня) существуют языки программирования низкого уровня, т.е. машинные языки (система команд в виде кодов) и соответствующий им ассемблер (т.е. тот же машинный язык, но команды записываются не в виде кодов, а с использованием мнемонических обозначений более понятных для человека). Для каждого типа микропроцессора существует свой ассемблер, т.е. своя система машинных команд, которым соответствуют команды на ассемблере. Причем эта система команд очень сильно "привязана" к архитектуре микропроцессора.
Для приобретения навыков программирования на ассемблере удобно воспользоваться ассемблером для однокристальной микро-ЭВМ типа КМ1816ВЕ48 (микроконтроллер). Несмотря на то, что указанный микроконтроллер достаточно "древний", он хорош с точки зрения простоты архитектуры и требует минимальных временных затрат на ее освоение. При этом основное время будет затрачено студентом на изучение ассемблера и приобретения навыков программирования на нем, которые с успехом можно использовать при освоении других типов микропроцессоров и микроконтроллеров. Кроме того, микроконтроллер типа КМ1816ВЕ51 являющийся более совершенным продолжением микроконтроллера типа КМ1816ВЕ48 и "понимающим" его команды, оказался настолько удачной разработкой, что до сих пор используется при построении средств измерений, контроля и диагностики.
Аккумулятор (АКК) - 8-разрядный регистр, через который осуществляется все логические, арифметические операции, операции ввода/вывода, многие операции пересылки данных.
Арифметико-Логическое Устройство (АЛУ) - для выполнения арифметических и логических операций.
Десятичный корректор (ДК) - для преобразования двоичного кода в двоично-десятичный.
Регистр Т - для хранения промежуточного результата.
ССП - регистр "слово состояния процессора" (PSW).
М - мультиплексор.
ОЗУ данных - для хранения данных.
ДШ - дешифратор.
РА - регистр адреса.
Т/С - таймер-счетчик событий.
СППЗУ программ - стираемое, перепрограммируемое ЗУ - для хранения программ (1кБ).
СК - счетчик команд (12 двоичных разрядов) указывает (содержит адрес) на очередную выполняемую команду из ПЗУ.
Устройство управления осуществляет общее управление МК.
РК - регистр команд.
Т0, Т1 - тест-выводы.
INT - вход внешнего прерывания.
Порты ввода/вывода:
BUS - 8-разрядный двунаправленный порт ввода/вывода.
Р1 и Р2 - квазидвунаправленные порты ввода/вывода.
Однокристальный 8-разрядный МК представляет собой сверхбольшую интегральную схему, имеющую в своем составе все атрибуты маленькой ЭВМ (АЛУ, ОЗУ, ПЗУ, УУ, Р1, Р2, BUS) иногда называемую однокристальной микроЭВМ и используется в качестве встроенного МК в различных устройствах для измерения, контроля и диагностики. Возможно расширение возможностей МК за счет дополнительных микросхем (ОЗУ, ПЗУ, устройств ввода/вывода). МК может работать с тактовой частотой от 1 до 6 МГц. Команды однобайтные и двухбайтные. Цикл однобайтной команды - 2,5 мкс; двухбайтной - 5 мкс. Программный код находится в приложении.
Заключение
В ходе выполнения курсовой работы был спроектированный цифровой автомат, предназначенный для выполнения арифметической операции деления двоичных чисел, представленных в виде с плавающей запятой, так как преимущество использования представления чисел в формате с плавающей запятой над представлением в формате с фиксированной запятой (и целыми числами) состоит в том, что можно использовать существенно больший диапазон значений при неизменной относительной точности, на сумматоре дополнительного модифицированного кода методом восстановления остатка.
Выбран тип элементов памяти управляющего автомата JK- триггер, так как JK-триггер в отличие от RS-триггера не имеет запрещённых состояний на основных входах и на базе JK-триггера возможно построить D-триггер или Т-триггер.
Список использованной литературы
1. Вашкевич Н.П. Синтез микропрограммных управляющих автоматов. Учеб. пособие. - Пенза: Пенз. политехн. ин-т, 1990. - 115 с.
2. Сергеев Н.П., Вашкевич Н.П. Основы вычислительной техники: Учеб. пособие. 2-е изд. перераб. и доп. - М.: Высш. шк., 1988. - 311 c.
3. Вашкевич Н.П., Вашкевич С.Н. Недетерминированные автоматы и их использование для синтеза систем управления. Часть 1. Эквивалентные преобразования НДА: Учеб. пособие. - Пенза: Изд-во Пенз. гос. техн. ун-та, 1996. - 88 с.
4. Захаров А.П., Чулков В.А., Аксенов М.П. Моделирование цифровых и аналоговых схем на ПЭВМ. Учеб. пособие. - Пенза: Изд-во Пенз. гос. техн. ун-та, 1997. - 81 с.
5. Разевиг В.Д. Применение программ Р-CAD и Pspice для схемотехнического моделирования на ПЭВМ. Вып. 1, 2, 3, 4. М.: Радио и связь, 1992.
6. Баранов С.И. Синтез микропрограммных автоматов. - 2-е изд. перераб. и доп. - Л.: Энергия, Ленингр. отд-ние, 1979. - 232 с.
7. Майоров С.А., Новиков Г.И. Структура электронных вычислительных машин. - Л.: Машиностроение. Ленингр. отд-ние, 1979. - 384 с.
Приложения
Приложение 1
MOV AL,5
ADD AL,2
;AL=7 AF=0
MOV AL,0Fh
ADD AL,1
;AL=10h перенос из 3-го бита в 4-ый AF=1
MOV AL,10h
SUB AL,1
;AL=0Fh заем из 4-го бита в 3-ий AF=1
Приложение 2
Сложение и вычитание:
MOV AX,69h ;к упакованному BCD-числу 69
ADD AL,74h ;добавить упакованное BCD-число 74
DAA;преобразуем результат AL=0DDh в упакованное BCD-число
ADC AH,0 ;CF=1, AL=43H учитываем перенос и AX=0143h
Приложение 3
Сумма вычислений
.code
start: xor ebx,ebx;начинаем обработку с нулевого байта
mov ecx,4;наши числа из 4 байтов
a1: mov al,byte ptr [a+ebx];в AL очередной байт
adc al,byte ptr [b+ebx];учет переноса при сложении
daa ;коррекция результата сложения
mov byte ptr [result+ebx],al;сохраняем обработанный байт
inc ebx;переходим к следующему байту
loop a1
push dword ptr sum
push offset format
push offset buffer
call _imp__wsprintfA
pop ecx;корректируем стек
pop ecx
pop ecx
push 0
push offset caption;заголовок
push offset buffer;текст
push 0
call _imp__MessageBoxA@16
ret
.data
a dd 71067h ;два упакованных BCD числа
b dd 61975h
result db 4 dup (0);место под результат
format db '%04x',0
buffer db 25 dup (0)
caption db 'DAA',0
end start
code
xor ebx,ebx;начинаем обработку с нулевого байта
mov ecx,4;наши числа из 4 байтов
a1: mov al,byte ptr [a+ebx];в AL очередной байт
sbb al,byte ptr [b+ebx];учет займа при вычитании
das;коррекция результата вычитания
mov byte ptr [result+ebx],al;переходим к следующему байту
inc ebx
loop a1
. . . . .
.data
a dd 71067h
b dd 61975h
Размещено на Allbest.ru
Подобные документы
Основные форматы данных и их представление. Запись чисел в формат с плавающей точкой. Вычитание чисел в формате с плавающей точкой. Регистры операндов и результата, размером формата числа с плавающей точкой, двойной точности. Поля смещённого порядка.
курсовая работа [78,9 K], добавлен 09.09.2014Анализ двоичной, восьмеричной и шестнадцатеричной систем счисления и перевода десятичных чисел. Форматы хранения чисел с плавающей точкой. Программа для преобразования массива констант в формат числа с плавающей точкой на эмуляторе микро-ЭВМ СМ-1800.
курсовая работа [266,9 K], добавлен 24.12.2013Проектирование цифрового автомата для выполнения арифметической операции деления двоичных чисел, алгоритм работы. Числа с плавающей запятой. Типы элементов памяти управляющего автомата JK-триггер, не имеющего запрещенных состояний на основных входах.
курсовая работа [747,4 K], добавлен 25.03.2012Выполнение операции деления в ЭВМ. Умножение чисел, представленных в форме с плавающей запятой. Методы ускорения операции умножения. Матричный метод умножения. Деление чисел в машинах с плавающей запятой. Деление чисел с восстановлением остатков.
реферат [49,4 K], добавлен 18.01.2011Функциональное диагностирование вычислительного устройства (ВУ), требования к нему по производительности, диапазону представления чисел, точности вычислений, сложности реализации и достоверности функционирования. Контроль по модулю ВУ с плавающей точкой.
реферат [1,2 M], добавлен 14.12.2012Операции, осуществляемые при реализации алгоритмов цифровой обработки сигналов. Применение процессора ADSP-2106x для операций с фиксированной и плавающей точкой. Исключения при выполнении операций с плавающей точкой, режимы и границы округления.
реферат [35,2 K], добавлен 13.11.2009Понятие двоично-десятичного кода (ДДК), его получение и использование. Изучение арифметико-логических устройств, использующихся для обработки ДДК. Алгоритмы сложения, вычитания, умножения и деления ДДК при помощи арифметико-логических устройств.
контрольная работа [145,5 K], добавлен 05.09.2010Расчет статического модуля оперативной памяти и накопителя. Построение принципиальной схемы и временной диаграммы модуля оперативного запоминающего устройства. Проектирование арифметико-логического устройства для деления чисел с фиксированной точкой.
курсовая работа [3,2 M], добавлен 13.06.2015Символы, целые, числа с плавающей точкой в языке Си. Машинное представление значений типа char, double, float, беззнаковых чисел. Представление целых чисел в позиционных системах счисления с произвольным основанием. Алгоритм перевода b-ичной записи.
презентация [296,3 K], добавлен 05.01.2014Синтез множительного устройства для умножения чисел с плавающей запятой, представленных в двоично-четверичной системе счисления. Перевод сомножителей из десятичной системы счисления в четверичную. Затраты на умножение шестиразрядных сомножителей.
курсовая работа [133,5 K], добавлен 06.10.2011