Інститут менеджменту та економіки “Галицька Академія”
КУРСОВИЙ ПРОЕКТ
з дисципліни
«Архітектура комп’ютера»
Тема - Проектування програмного та апаратного забезпечення для обчислювального пристрою приймання, обробки та передавання даних на базі персонального комп'ютера.
ЗМІСТ
Стор
1. ОПИС БЛОК-СХЕМИ ТА БЛОК-СЕМА АЛГОРИТМУ ПРИЙМАННЯ,
ОБРОБКИ ТА ПЕРЕДАВАННЯ ДАНИХ НА БАЗІ ПЕРСОНАЛЬНОГО
КОМП’ЮТЕРА…...............................................................................................…….7
2. КОД ПРОГРАМИ ПРИЙМАННЯ, ОБРОБКИ ТА ПЕРЕДАВАННЯ
ДАНИХ НА БАЗІ ПЕРСОНАЛЬНОГО КОМП’ЮТЕРА…………… ………….11
ВИСНОВКИ..............................................................................................................19
ПЕРЕЛІК ВИКОРИСТАНИХ ЛІТЕРАТУРНИХ ДЖЕРЕЛ................................... 20
ДОДАТКИ:
ОПИС ПРИНЦИПОВОЇ СХЕМИ……………………………………….….…22
ПРИНЦИПОВА СХЕМА………………………………………….………..….23
Анотація
В курсовому проекті проведено проектування програмного забезпечення для обчислювального пристрою приймання, обробки та передавання даних на базі персонального комп’ютера. Розроблена принципова електрична схема.
Summary
In a course project, planning of software is conducted for the computing device of acceptance, treatment and transmission information on the base of the personal computer. Of principle chart developed electric.
1. Опис блок-схеми алгоритму приймання,
обробки та передавання даних на базі персонального комп’ютера
Оператор 1 – Початок програми.
Оператор 2 – Налаштування регістру DS на сегмент даних.
Оператор 3 – Створення файлів f1,f2,f3,f4.
Оператор 4 – Ініціалізація циклу.
Оператор 5 – Зчитування тетради 1.
Оператор 6 – Зчитування тетради 2.
Оператор 7 – Формування байта.
Оператор 8 – Запис байта даних до і-тої комірки масиву.
Оператор 9 – Обнулення регістру SI i занесення до регістру СХ
кількості байт.
Оператор 10 – Ініціалізація циклу обробки даних.
Оператор 11 – Порівняння чи a{i}>150.
Оператор 12– Запис у файл f3.
Оператор 13 – Наростити лічильник li1 на 1.
Оператор 14– Запис у файл f4.
Оператор 15 – Наростити лічильник li2 на 1.
Оператор 16 – Запис у файл f1 з масиву а.
Оператор 17 – Запис у файл f2 з масиву а.
Оператор 18 – Запис у cх.=li1.
Оператор 19 – Ініціалізація циклу.
Оператор 20 – Зчитування байта з файлу f3.
Оператор 21 – Виведення на екран.
Оператор 22 – Запис у cх.=li12.
Оператор 23 – Ініціалізація циклу.
Оператор 24 – Зчитування байта з файлу f4.
Оператор 25 – Виведення на екран.
Оператор 26 – Закриття файлів.
Оператор 27 – Кінець програми.
Блок-схема алгоритму приймання, обробки та передавання даних на базі персонального комп’ютера
2. Код програми приймання, обробки та передавання
даних на базі персонального комп’ютера з поясненнями (ремарками)
.model small
.stack 100h
.data
count equ 300
in_arr db count dup(20h)
out_arr db count dup('$')
circle dw count
stck dw ?
buf db ?
index dw 0
namef1 db 'f1.txt',0 ; вказування шляху до файлу 1
namef2 db 'f2.txt',0 ; вказування шляху до файлу 2
namef3 db 'f3.txt',0 ; вказування шляху до файлу 3
namef4 db 'f4.txt',0 ; вказування шляху до файлу 4
f3 db 'f3: $'
f4 db 'f4: $'
exit db 0ah,0dh,'$'
diskr1 dw 0
diskr2 dw 0
diskr3 dw 0
diskr4 dw 0
fmessage db "All files are created",0ah,0dh,'Please enter data to files...',0ah,0dh,'$'
.code
main proc
mov ax,@data
mov ds,ax ; настройка регістру ds на сегмент даних
mov es,ax
mov ah,00h
mov al,03h
int 10h
;входу не має
call create
call input
mov ah,00h
mov al,03h
int 10h
call output
call close
mov ah,01h
int 21h
mov ax,4c00h
int 21h
main endp
create proc
pusha
mov ah,3ch ;функція відкриття файлу
mov cx,00h ;в регістр cx занесення атрибутів файлу
mov dx,offset namef1 ; в регістр dx занесення адрес рядка, що містить
; шлях і назву файлу у форматі ASCIIZ
int 21h ; виклик переривання DOS
mov diskr1,ax ; після виклику переривання збереження
; ідентифікатора відкритого файлу
mov ah,3ch ;функція відкриття файлу
mov cx,00h ;в регістр cx занесення атрибутів файлу
mov dx,offset namef2 ; в регістр dx занесення адрес рядка, що містить
; шлях і назву файлу у форматі ASCIIZ
int 21h ; виклик переривання DOS
mov diskr2,ax ; після виклику переривання збереження
; ідентифікатора відкритого файлу
mov ah,3ch ;функція відкриття файлу
mov cx,0
mov dx,offset namef3
int 21h
mov diskr3,ax
mov ah,3ch
mov cx,0
mov dx,offset namef4
int 21h
mov diskr4,ax
mov ah,42h ;функція встановлення вказівника файлу
mov bx,diskr1 ; занесення в регістр bx ідентифікатора відкритого файлу
mov al,0 ;переміщення на початок файлу
mov cx,0
mov dx,0
int 21h
mov ah,42h ;функція встановлення вказівника файлу
mov bx,diskr2 ; занесення в регістр bx ідентифікатора відкритого файлу
mov al,0 ;переміщення на початок файлу
mov cx,0
mov dx,0
int 21h
mov ah,42h ;функція встановлення вказівника файлу
mov bx,diskr3 ; занесення в регістр bx ідентифікатора відкритого файлу
mov al,0 ;переміщення на початок файлу
mov cx,0
mov dx,0
int 21h
mov ah,42h ;функція встановлення вказівника файлу
mov bx,diskr4 ; занесення в регістр bx ідентифікатора відкритого файлу
mov al,0 ;переміщення на початок файлу
mov cx,0
mov dx,0
int 21h
mov ah,09h ;функція виводу символа
mov bh,0 ;номер відео сторінки
mov al,20h ;символ, що виводиться
mov bl,0011100b ;відео атрибут
mov cx,2000 ;кількість символів, що запишуться
int 10h ;виклик переривання BIOS
mov ah,09h ;функція виводу символа
mov dx,offset fmessage
int 21h
popa
ret
create endp
output proc
pusha
mov di,offset in_arr
mov cx,circle
ma2:
push cx
mov dx,[di]
mov stck,dx
mov ah,dh ;виділяю старший елемент
shr ah,4 ;утворюю його ASCII-код
add ah,30h
cmp ah,39h
jbe mit
add ah,7h
mit:
mov buf,ah ;записую ASCII-код в буфер
mov ah,40h ;функція запису в файл
mov bx,diskr1 ;дескриптор файлу
mov dx,offset buf ;буфер з ASCII-кодом
mov cx,1 ;кількість байт для запису
int 21h
mov ax,stck ;відновлюю два елементи з буферу
and ah,0fh ;утворюю ASCII-код
add ah,30h ;молодшої тетради першого байту
cmp ah,39h
jbe mit1
add ah,7h
mit1:
mov buf,ah ;записую в буфер ASCII-код
mov ah,40h ;функція запису до файлу
mov bx,diskr1 ;вказую дескриптор файлу
mov dx,offset buf ;ініціалізую адресу буфера з ASCII-кодом
mov cx,1 ;вказую кількість байт для запису
int 21h ;переривання
mov buf,' '
mov ah,40h ;функція запису до файлу
mov dx,diskr1 ;вказую дескриптор файлу
mov dx,offset buf ;ініціалізую адресу буфера з ASCII-кодом
mov cx,1 ;вказую кількість байт для запису
int 21h
mov ax,stck ;відновлюю введені дані
shr al,4 ;утворюю