Разработка вычислительного устройства для выполнения операции умножения двоичных чисел
Курсовая работа, 22 Ноября 2011, автор: пользователь скрыл имя
Краткое описание
Цель курсового проекта: разработать вычислительное устройство для выполнения операции умножения двоичных чисел.
Исходные данные:
числа с фиксированной запятой со знаком, представленные в прямом коде;
количество разрядов: 4;
алгоритм умножения: на один разряд множителя, начиная со старших;
разрядов множителя, со сдвигом частного произведения влево.
Содержание работы
ВВЕДЕНИЕ 4
1 СЛОВЕСНОЕ ОПИСАНИЕ ОПЕРАЦИИ УМНОЖЕНИЯ 5
2 БЛОК-СХЕМА АЛГОРИТМА ВЫПОЛНЕНИЯ ОПЕРАЦИИ 8
3 ОПРЕДЕЛЕНИЕ НАБОРА УПРАВЛЯЮЩИХ СИГНАЛОВ 9
4 СИНТЕЗ АЛУ 10
5 ВРЕМЕННАЯ ДИАГРАММА УПРАВЛЯЮЩИХ СИГНАЛОВ 12
6 СХЕМНОЕ РЕШЕНИЕ УСТРОЙСТВА УПРАВЛЕНИЯ 13
7 МИКРОПРОГРАММА ВЫПОЛНЕНИЯ КОМАНДЫ УМНОЖЕНИЯ 16
ЗАКЛЮЧЕНИЕ 18
ПРИЛОЖЕНИЕ 1 Структурная схема арифметического устройства 19
ПРИЛОЖЕНИЕ 2 Листинг программы 20
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 23
Содержимое работы - 1 файл
ВВЕДЕНИЕ.docx
— 289.98 Кб (Скачать файл) Структурная
схема устройства представлена в приложении
1.
5 ВРЕМЕННАЯ ДИАГРАММА УПРАВЛЯЮЩИХ СИГНАЛОВ
На
рисунке 5.1 изображена временная диаграмма
управляющих сигналов.
Рисунок 5.1– Временная диаграмма управляющих сигналов
6 СХЕМНОЕ РЕШЕНИЕ УСТРОЙСТВА УПРАВЛЕНИЯ
Чтобы
обеспечить автоматические вычисления
по программе, процессор должен уметь
выполнять еще целый ряд
- извлекать из памяти очередную команду;
- расшифровывать ее и преобразовывать в последовательность необходимых действий;
- заносить в АЛУ исходные данные;
- сохранять полученный в АЛУ результат;
- обеспечивать синхронную работу всех узлов машины. Для выполнения всех этих функций и служит устройство управления.
Как
и АЛУ, УУ содержит несколько важных
регистров для хранения информации,
необходимой в ходе выполнения текущей
команды. Наиболее важными из них
являются счетчик (регистр) адреса
очередной команды программы и регистр
команд, в который считывается код выполняемой
в данный момент операции. На рисунке 6.1
структура УУ и взаимодействие его элементов
в процессе функционирования.
Рисунок
6.1– Структура
устройства управления
Блок центрального управления генерирует сигнал о начале выполнения очередной команды (связь 1). Ее адрес А находится в счетчике адреса команд.
Блок выборки из памяти по сигналу считывает из ОЗУ по адресу А, который выбирается из счетчика адреса команд (связь 8), очередную команду (связь 2) и помещает ее на временное хранение в регистр команд (связь 3).
Дешифратор кода операции выбирает код (связь 4) и расшифровывает его. Затем передает информацию блоку формирования управляющих сигналов (связь 10):
- если операция арифметическая, от блока формирования управляющих сигналов поступает сигнал в блок выборки из памяти (связь 5) с командой считать из ОЗУ операнды, расположенные по адресам, указанным в регистрах первого и второго операндов (связь 6), и поместить их в соответствующие регистры АЛУ (о структуре АЛУ см. в п. 9.3). Затем формируется сигнал в АЛУ на выполнение нужной операции (связь 7). Счетчик адреса команд увеличивается на объем команды (связь 9);
- если операция ввода-вывода, блок формирования управляющих сигналов формирует сигнал УВв и УВыв (связь 7). Счетчик адреса увеличивается на объем команды (по связи 9);
- если операция условного перехода, блок центрального управления анализирует результат предыдущей операции, находящийся в АЛУ. Если знак результата отрицателен, в счетчик адреса команд записывается адрес из регистра первого операнда. Если знак положителен, в счетчик адреса команд записывается адрес из регистра второго операнда. Если результат равен 0, в счетчик адреса команд добавляется 1 (эти связи не показаны). Так реализуется принцип условного перехода.
- если операция безусловного перехода, в счетчик адреса команд пересылается содержимое регистра первого операнда (связь не показана).
Схема работы устройства управления изображена на рисунке 6.2.
Рисунок
6.2– Функциональная
схема устройства управления
7 МИКРОПРОГРАММА ВЫПОЛНЕНИЯ КОМАНДЫ УМНОЖЕНИЯ
Для разработки программы был использован транслятор TurboAssembler (TASM) и редактор связей TLINK.
Код программы (приложение 2) сохранен в файле umnojenie с расширением .asm.
Компиляция - процесс перевода программы из текстового вида в машинный код. Запускаем компилятор tasm и передаем с командной строки имя файла, содержащего программу.В случае успешной компиляции будет создан файл, содержащий объектный код программы с расширение .obj , который ещё не является исполняемым модулем.
Компоновка - создание из файла объектного кода исполняемого модуля.
В
качестве параметра компоновщик tlink
принимает имя файла
Рисунок
7.1– Компиляция
икомпоновка программы
Запускаем umn.exe (рисунок 7.2).
Рисунок
7.2 –
Запуск и тестирование
программы
Для тестирования работоспособности программы были выбраны числа -5 и -7 в двоичной системе счисления 11111011 и 11111001 соответственно.
Результатом
произведения должно получиться число
35 или 100011(в двоичной системе счисления),
что видно на рисунке выше.
ЗАКЛЮЧЕНИЕ
День ото дня технологии не стоят на месте, они развиваются, а вместе с ними развиваемся и мы. Появляются новые технологии, совершенствуются старые. Сравнительно небольшие габаритные размеры, простота конструкции, проблемно-ориентированный язык программирования обеспечивают ЭВМ высокую экономическую эффективность и широкое использование во всех сферах человеческой деятельности. Невозможно представить жизнь современного человека без компьютера. Все исполнения современных машин выполнены на конструктивной единой и технологической базе, что позволяет максимально упростить техническое обслуживание и ремонт ЭВМ. Единство входного языка всех исполнений существенно упрощает и ускоряет подготовку программистов, создание и тиражирование программного обеспечения, которое является наиболее дорогостоящим.
В курсовом проекте было разработано вычислительное устройство для выполнения операции умножения двоичных чисел.
ПРИЛОЖЕНИЕ
1
Структурная схема
арифметического устройства
ПРИЛОЖЕНИЕ
2
Листинг программы
MODELsmall
.386
.STACK 386
.DATA
Mn1 db 7, 10, 13, 'Mnogitel1: ','$'
Mn2 db 7, 10, 13, 'Mnogitel2: ','$'
Prdb 7, 10, 13, 'Proizvedenie','$'
Pr2 db 7, 10, 13, '','$'
bufdb 17, ?, 17 dup ('$')
.CODE
ProgramStart:
mov ax, @data
mov ds, ax
mov dx, offset Mn1
mov ah, 9h
int 21h
leadx, buf
mov ah, 0Ah
int 21h
mov dx, offset Mn2
movah, 9h
int 21h
lea dx, buf
mov ah, 0Ah
int 21h
mov dx, offset Pr
mov ah, 9h
lea dx, buf
mov ah, 0Ah
int 21h
mov dx, offset Pr2
mov ah, 9h
int 21h
lea dx, buf
mov ah, 0Ah
int 21h
movbl, 11111011b
negbl
xorbh,bh
mov cl, 11111001b
neg cl
xorch,ch
mov ax,00
mov ax, cx
xorcx,cx
test ax, 1000b
jnz m2
m2proc
movcx,bx
m2endp
test ax, 1000b
jz m1
m1proc
xorcx,cx
m1endp
test ax, 100b
jz m3
m3proc
add cx,0
m3endp
test ax, 100b
jnz m4
m4proc
addcx,bx
shl cx,1
m4endp
test ax, 10b
jz m5
m5proc
add cx,0
m5endp
test ax, 10b
jnz m6
m6proc
shl bx,2
addcx,bx
m6endp
test ax, 1b
jz m7
m7proc
add cx,0
m7endp
test ax, 1b
jnz m8
m8proc
shl bx,1
addcx,bx
sar cx,1
m8endp
xorax,ax
movax,cx
xor cx,cx
mov bx,2
isDiv:
xor dx,dx
div bx
push dx
inc cx
or ax,ax
jnz isDiv
isOut: pop ax
or al,30h
int 29h
loop isOut
mov ah,4ch
int 21h
END ProgramStart
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
- Юров. В.И. Assembler. Учебник для вузов. 2-е изд. — СПб.: Питер, 2003. — 637 с.
- Марек Р. Ассемблер на примерах. Базовый курс. — СПб: Наука и Техника, 2005. — 240 с.
- Демидович Е.М. Конструирование программ и языки программирования (ассемблер, Си, С++) Часть 2: Пособие для студентов БГУИР. – Мн. Бестпринт, 2003. – 292 с.
- Пирогов В.Ю. ASSEMBLER. Учебный курс. – М.: Издатель Молгачева С.В., Издательство Нолидж, 2001. – 848 с.
- Ю.А. Луцик, И.В. Лукъянова. Арифметические и логические основы вычислительной техники: Учеб.пособие по курсу «Арифметические и логические основы вычислительной техники» - Мн.: БГУИР, 2003. - 120 с.
- Самофалов К.Г., Романкевич А.М., и др. Прикладная теория цифровых автоматов. - Киев. “Вища школа” 1987.
- Соловьев Г.Н. Арифметические устройства ЭВМ. - М. “Энергия”. 1978.
- Савельев А.Я. Прикладная теория цифровых автоматов - М. “Высшая школа”. 1987.
- Каган Б.М. Электронные вычислительные машины и системы. - М. Энергоатомиздат. 1985.
- Лысиков Б.Г. Арифметические и логические основы цифровых автоматов. Минск. “Вышэйшая школа”. 1980.