Інститут менеджменту та економіки "Галицька Академія" Кафедра комп'ютерних та телекомунікаційних систем
КУРСОВИЙ ПРОЕКТ
з дисципліни Архітектура ПК
Тема - Проектування програмного забезпечення для обчислювального пристрою приймання, обробки та передавання даних на базі персонального комп'ютера.
1. Тема проекту -. Проектування програмного та апаратного забезпечення для обчислювального пристрою приймання, обробки та передавання даних на базі персонального комп'ютера.
Вихідні дані :
1.1 Приймання інформації: побайтово через послідовний порт з швидкістю 9600 біт/сек.; кількість байт – 1024;
1.2 Обробка інформації:
створення файлів f1 та f2 однакового об'єму;
файл 'f3' утвоpити iз чисел, кожне з яких є pезультатом наступної аpифметичної опеpацiї :
(f3)i = 8 * (f1)i + 0,125 * (f2)i
2.Термін здачі студентом закінченого проекту – 23 грудня 2008 року.
3. Зміст пояснювальної записки :
3.1 Розробка блок-схеми алгоритму приймання, обробки та передавання даних на базі персональногокомп’ютера
3.2 Асемблер-програма приймання, обробки та передавання даних на базі персонального комп’ютера
4. Дата видачі завдання – 4 грудня 2008 року.
Анотація
В курсовому проекті проаналізований алгоритм приймання, обробки та передавання даних. Розроблена асемблер-програмама блоку передавання.
Summary
In a course project there is the analysed algorithm of acceptance, treatment and data communication . Asembler-programama is developed of block of transmission.
ЗМІСТ
1. Опис блок – схеми……………………………………………………5 . 2. Розробка блок-схеми алгоритму........................................................6
3. Розробка Assembler- програми...........................................................8
4. Висновок…………………………………………………................12
5. Список використаної літератури.......................................................13
1. Опис блок-схеми.
Оператор 1 – Початок програми.
Оператор 2 – Настроювання регістру DS на сегмент даних.
Оператор 3 – Настроювання СОМ порту на: швидкість передачі
даних 9600 біт/сек, із параметрами : перевірка
непарності, 2 стоп-біти, 8 біт даних.
Оператор 4 – Ініціалізація циклу.
Оператор 5 – Очікування прийняття 1 байта з СОМ порту.
Оператор 6 – Якщо байт не прийнято, то повторення очікування.
Оператор 7 – Запису байта даних до і-тої комірки масиву.
Оператор 8 – Обнулення регістрів SI i DI, занесення до регістру
СХ кількості очікуваних байт.
Оператор 9 – Ініціалізація циклу обробки даних.
Оператор 10 – 512 байт даних починаючи з нульової адреси
зсувом вліво і додаємо до них 512 байт даних
починаючи з 512 адреси зсунутих вправо.
Оператор 11– Запис байта даних до і-тої комірки масиву.
Оператор 12– Утворення нових адрес масивів.
Оператор 13 – Створення і відкриття файлу f1.
Оператор 14 – Запису даних з комірки масиву А починаючи
з 0 адреси в файл f1.
Оператор 15 – Створення і відкриття файлу f2.
Оператор 16 – Запису даних з комірки масиву А починаючи
з 512 адреси в файл f2.
Оператор 17 – Створення і відкриття файлу f3.
Оператор 18 – Запису даних з комірки масиву А починаючи
з 1024 адреси в файл f3.
Оператор 19 – Закриття файлів.
Оператор 20 – кінець програми.
2.Розробка блок – схеми алгоритму.
3. Розробка Assembler – прграми.
DOSSEG
.model small
.stack 100h
.data
f1 db 'c:\f1.txt',0 ; вказування шляху до файлу 1
f2 db 'c:\f2.txt',0 ; вказування шляху до файлу 2
f3 db 'c:\f3.txt',0 ; вказування шляху до файлу 3
a db 1024 dup(0) ; оголошення масиву вхідних елементів - а
var1 dw 0 ; ідентифікатор файлу f1
var2 dw 0 ; ідентифікатор файлу f2
var3 dw 0 ; ідентифікатор файлу f3
.code
.startup
mov ax,@data
mov ds,ax ; настройка регістру ds на сегмент даних
;настройка COM1
mov ah,0h ; ініціалізація СОМ порту
mov al,11101111b ; в регістр al занесення режиму роботи СОМ порту .
; ( швидкість передачі даних 9600 біт/сек.,
2 стоп біта, 8 байт)
mov dx,0 ; в регістр dx занесення 0 ( настройка СОМ1)
int 14h ; виклик переривання int 14h BIOS
;Приймання даних у масив
mov cx,1024 ; в регістр СХ занесення 1024 байт
mov bx,0 ; обнулення регістру bx
m1:
mov ah,02h ; функція приймання 1-го байту даних
mov dx,0 ; в регістр dx занесення 0 ( настройка СОМ1)
int 14h ;виклик переривання BIOS
cmp ah,0 ; формування затримки ( перевірка на те, чи
; прийшов байт)
jne m1 ;якщо байт не прийшов, то повернення на m1
mov ah,02h ; функція виводу на екран
mov dl,al ; в регістр dl занесення прийнятого байта
з регістру al
int 21h ; виклик переривання DOS
mov a.[bx],al ; зберігання прийнятих даних в масиві а
inc bx ; збільшення регістру bx на 1
loop m1 ; цикл поки не прийнято 1024 байт
;формування даних для запису в 3-й файл
mov cx,1024 ; в регістр СХ занесення 1024 байт
mov si,0 ; обнулення регістру si
mov di,0 ;обнулення регістру dx
m3:
xor ax,ax ; обнулення регістру ax
xor bx,bx ; обнулення регістру bx
mov al,a.[si] ; в регістр al занесення даних з комірки масиву а
; починаючи з адреси 0
sub al,30h ; переведення даних в десяткові числа з ASCII коду
shl ax,3 ; зсув регістру ax вліво
mov bl,a.[512+si] ; в регістр bl занесення даних з комірки масиву a
; починаючи з адреси 512
sub bl,30h ;переведення даних в десяткові числа з ASCII коду
shr bx,3 ; зсув регістру bx вправо
add ax,bx ; вміст регістру bx додаємо до регістру ax
add ax,30h ; переведення даних в ASCII код
mov word ptr a.[1024+di],ax ; занесення даних з регістру ах в комірку
; масиву а починаючи з адреси 1024
add di,2 ; до регістру di додаємо 2
inc si ; збільшення регістру si на 1
loop m3 ; цикл поки не прийнято 1024 байт
;відкриття