- •Курсовой проект по дисциплине «Организация эвм и систем»
- •Содержание
- •Введение
- •1.3.2 Схема программы
- •1.3.3 Схема взаимодействия программ
- •2 Гибкий магнитный диск
- •2.1 Устройство гмд
- •2.2 Способ записи на гибкий диск
- •3 Инструкция оператору
- •4. Тестирование программы.
- •Список используемых источников
3 Инструкция оператору
Программа написана и откомпилирована на языке Turbo Assembler 2.51.
Для нормальной работы программы оператор должен проделать следующие шаги:
-
Загрузить компьютер под управлением операционной системы MS DOS либо Windows 98/XP/2000.
-
Запустить программу (файл KURS.EXE).
-
На экран выведутся обработанные данные (символьная строка, которая была прочитана с ГМД и переведена в обратный порядок с удалением пробелов и дата).
-
Затем программа будет ожидать нажатия любой клавиши для завершения работы.
4. Тестирование программы.
Для проверки правильности работы разработанной программы было произведено ее тестирование.
Посмотрим с помощью программы Disk Editor, что записано на диске А (сторона 1, дорожка 0, сектор 16) (рисунок В.1). Строка содержит 29 символов, из них 1 пробел. Дата тестирования – 27.11.2011.
В ходе тестирования программы данные с гибкого магнитного диска были обработаны в соответствии с заданием, удалены пробелы, затем эти данные были выведены на видеотерминал.
Тестирование показало, что на данном наборе данных и при соблюдении всех необходимых условий, указанных выше, разработанное программное обеспечение функционировало правильно (рисунок В.2).
Приложения
Приложение A
Листинг программы ввода-вывода на языке Ассемблер.
stseg segment para stack
dw 16 dup(?)
db 256 dup(0) ; отводим по сегмент стека 256 байт
stseg ends
dseg segment para
buffer db 4000 dup(?)
str1 db 'Date: '
str2 db ' '
str3 db 0AH,0DH
dseg ends
cseg segment para
kurs proc far
assume cs:cseg,ds:dseg,ss:stseg
org 100h
push ds
mov ax,0
push ax
mov ax,dseg
mov ds,ax
mov ax,seg buffer
mov es,ax
mov bx, offset buffer
sti ;разрешение прерываний
mov dl,0 ;номер накопителя
mov dh,1 ;головки
mov ch,0 ;дорожки/цилиндр
mov cl,16 ;сектора
mov al,1 ;секторов для чтения
mov ah,2 ;функция для чтения
int 13h
mov al,01h
mov ah, 00h ;режим экрана
int 10h
mov cx, 24
mov si, 23
begin:
mov al,[bx][si] ;Выводимый символ
;cmp al,'D'
;je print
;cmp al,' '
;je met2
;mov[bx][si],al
;sub si,1
;met2:
;dec bx
call color
sub si,1
inc dl
loop begin
mov bx,offset str3
mov cx,2
call print
mov bx,offset str3
mov cx,2
call print
mov bx,offset str1 ;Вывод строки "Дата"
mov cx,5
call print
;Дата
mov cx,00
mov dx,00
mov ah,04h
int 1Ah
push cx
mov al,dl
call back
mov al,2Eh
mov ah,0eh
int 10h
mov ax,00
mov al,dh
call back
mov al,2Eh
mov ah,0eh
int 10h
pop cx
push cx
mov ax,00
mov al,ch
call back
pop cx
mov ax,00
mov al,cl
call back
mov ah,01h
int 21h
ret
kurs endp
color proc
push bx
push cx
push dx
mov bx,0
mov ah,02h
int 10h
mov cx,1
mov ah,09h
mov bl,00100001b
int 10h
pop dx
pop cx
pop bx
ret
color endp
print proc near
assume cs:cseg,ds:dseg,ss:stseg
begins1:
mov al,[bx]
mov ah,0eh
int 10h
inc bx
loop begins1
ret
Print endp
back proc near
assume cs:cseg,ds:dseg,ss:stseg
mov cl,16
div cl
mov dl,al
mov al,0
mov al,ah
add al,48
push ax
mov ax,0
mov al,dl
add al,48
mov ah,0eh
int 10h
pop ax
mov ah,0eh
int 10h
ret
back endp
cseg ends
end kurs
Приложение B
Результаты тестирования программы
Рисунок 1 – Проверка информации на ГМД
Рисунок 2 – Результат тестирования программы
Приложение С
1
2
3
5
4
6
7
8
9
8
9
Приложение D
2
1
3
7
4
3 5
6 7
8
9
Приложение E
2 10
13
11
12
14
15
16
3
4
5
6
7
8
9
17
18
19
20
21
22
23
24
29 33 26 31 25
34 36 37
38 39
35
27
28
30
32
41
42
43 51 52
44 53
45 47 46 48 49
50 54 55
56
57
58 59
60 61 62 63 64 63
П
1
2
3
4
5
10
11
12
13
14
6
7
15
8
9
16
17
Приложение G
2 1 3 4 5 6 7 8 9 12 13 14 15 11 10
П
1 2 3 4 5 6 7
Приложение J
Описание форматов управляющей информации (функций BIOS и DOS) всех используемых устройств
Видеотерминал:
Int10-0E - Вывод спецсимволов (BIOS).
Вход:
ah=0E,
al=ASCII код символа,
Int 10-09 – 16-цветовой графический режим вывода на видеотерминал.
Вход:
bl,00100001b =1-разрешение вывода, ,2-3-4-цвет фона, 5-разрешение мерцания, 6-7-8-цвет текста.
Периферия:
Int13-02 - Чтение с ГМД (BIOS).
Вход:
ah=02,
dl=номер диска,
dh=номер головки,
ch=номер дорожки,
cl=номер сектора,
al=число секторов для чтения.
Выход:
ah=состояние после выполнения операции,
es:bx=буфер содержит данные, прочитанные из диска.
Другие:
Int1а-04 – Чтение даты из часов реального времени (CMOS).
Вход:
ah=04.
Выход:
В BCD формате
ch=столетие,
cl=год,
dh=месяц,
dl-день.