Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовой Assembler.doc
Скачиваний:
5
Добавлен:
22.12.2018
Размер:
426.5 Кб
Скачать

3 Инструкция оператору

Программа написана и откомпилирована на языке Turbo Assembler 2.51.

Для нормальной работы программы оператор должен проделать следующие шаги:

  1. Загрузить компьютер под управлением операционной системы MS DOS либо Windows 98/XP/2000.

  2. Запустить программу (файл KURS.EXE).

  3. На экран выведутся обработанные данные (символьная строка, которая была прочитана с ГМД и переведена в обратный порядок с удалением пробелов и дата).

  4. Затем программа будет ожидать нажатия любой клавиши для завершения работы.

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

риложение F

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

риложение
H

Приложение 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-день.