Автор работы: Пользователь скрыл имя, 22 Ноября 2011 в 20:29, курсовая работа
Цель курсового проекта: разработать вычислительное устройство для выполнения операции умножения двоичных чисел.
Исходные данные:
числа с фиксированной запятой со знаком, представленные в прямом коде;
количество разрядов: 4;
алгоритм умножения: на один разряд множителя, начиная со старших;
разрядов множителя, со сдвигом частного произведения влево.
ВВЕДЕНИЕ 4
1 СЛОВЕСНОЕ ОПИСАНИЕ ОПЕРАЦИИ УМНОЖЕНИЯ 5
2 БЛОК-СХЕМА АЛГОРИТМА ВЫПОЛНЕНИЯ ОПЕРАЦИИ 8
3 ОПРЕДЕЛЕНИЕ НАБОРА УПРАВЛЯЮЩИХ СИГНАЛОВ 9
4 СИНТЕЗ АЛУ 10
5 ВРЕМЕННАЯ ДИАГРАММА УПРАВЛЯЮЩИХ СИГНАЛОВ 12
6 СХЕМНОЕ РЕШЕНИЕ УСТРОЙСТВА УПРАВЛЕНИЯ 13
7 МИКРОПРОГРАММА ВЫПОЛНЕНИЯ КОМАНДЫ УМНОЖЕНИЯ 16
ЗАКЛЮЧЕНИЕ 18
ПРИЛОЖЕНИЕ 1 Структурная схема арифметического устройства 19
ПРИЛОЖЕНИЕ 2 Листинг программы 20
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 23
Структурная
схема устройства представлена в приложении
1.
На
рисунке 5.1 изображена временная диаграмма
управляющих сигналов.
Рисунок 5.1– Временная диаграмма управляющих сигналов
Чтобы
обеспечить автоматические вычисления
по программе, процессор должен уметь
выполнять еще целый ряд
Как
и АЛУ, УУ содержит несколько важных
регистров для хранения информации,
необходимой в ходе выполнения текущей
команды. Наиболее важными из них
являются счетчик (регистр) адреса
очередной команды программы и регистр
команд, в который считывается код выполняемой
в данный момент операции. На рисунке 6.1
структура УУ и взаимодействие его элементов
в процессе функционирования.
Рисунок
6.1– Структура
устройства управления
Блок центрального управления генерирует сигнал о начале выполнения очередной команды (связь 1). Ее адрес А находится в счетчике адреса команд.
Блок выборки из памяти по сигналу считывает из ОЗУ по адресу А, который выбирается из счетчика адреса команд (связь 8), очередную команду (связь 2) и помещает ее на временное хранение в регистр команд (связь 3).
Дешифратор кода операции выбирает код (связь 4) и расшифровывает его. Затем передает информацию блоку формирования управляющих сигналов (связь 10):
Схема работы устройства управления изображена на рисунке 6.2.
Рисунок
6.2– Функциональная
схема устройства управления
Для разработки программы был использован транслятор TurboAssembler (TASM) и редактор связей TLINK.
Код программы (приложение 2) сохранен в файле umnojenie с расширением .asm.
Компиляция - процесс перевода программы из текстового вида в машинный код. Запускаем компилятор tasm и передаем с командной строки имя файла, содержащего программу.В случае успешной компиляции будет создан файл, содержащий объектный код программы с расширение .obj , который ещё не является исполняемым модулем.
Компоновка - создание из файла объектного кода исполняемого модуля.
В
качестве параметра компоновщик tlink
принимает имя файла
Рисунок
7.1– Компиляция
икомпоновка программы
Запускаем umn.exe (рисунок 7.2).
Рисунок
7.2 –
Запуск и тестирование
программы
Для тестирования работоспособности программы были выбраны числа -5 и -7 в двоичной системе счисления 11111011 и 11111001 соответственно.
Результатом
произведения должно получиться число
35 или 100011(в двоичной системе счисления),
что видно на рисунке выше.
День ото дня технологии не стоят на месте, они развиваются, а вместе с ними развиваемся и мы. Появляются новые технологии, совершенствуются старые. Сравнительно небольшие габаритные размеры, простота конструкции, проблемно-ориентированный язык программирования обеспечивают ЭВМ высокую экономическую эффективность и широкое использование во всех сферах человеческой деятельности. Невозможно представить жизнь современного человека без компьютера. Все исполнения современных машин выполнены на конструктивной единой и технологической базе, что позволяет максимально упростить техническое обслуживание и ремонт ЭВМ. Единство входного языка всех исполнений существенно упрощает и ускоряет подготовку программистов, создание и тиражирование программного обеспечения, которое является наиболее дорогостоящим.
В курсовом проекте было разработано вычислительное устройство для выполнения операции умножения двоичных чисел.
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