Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
25
Добавлен:
01.05.2014
Размер:
249.34 Кб
Скачать

Лабораторная работа 5.

Прерывания ДОС и БИОС. Функции ДОС и БИОС

Задание:

Составить программу, вызывающую один или несколько обработчиков

прерываний ДОС или БИОС. Программа должна содержать средства,

подтверждающие исполнение прерывания, например, с использованием

других обработчиков прерываний.

Обработчик прерывания назначается преподавателем индивидуально

каждому студенту в соответствии с таблицей 1. Принимаются и обсуждаются

предложения студента. Предпочтения отдаются вводу с клавиатуры и из

файла и выводу на терминал и в файл. Рекомендуются функции ДОС

обработчика прерывания 21Н и функции БИОС.

Отчет должен содержать:

- текст задания;

- постановку индивидуального задания в виде, сформулированном

самим студентом;

- текст программы и ее листинг;

- протокол пошаговой отладки;

- результат тестирования программы.

Таблица 1.

Вар. INT Код функции Функция

2 10H 06h,07h,0fh Прокрутка экрана

Постановка задания:

Требуется осуществить прокрутку экрана указанными функциями за счет прерывания 10h. Также требуется показать факт срабатывания прерывания, для чего перед прокруткой экрана на него выводятся строки какого-то текста.

Текст программы:

EOFLine EQU '$'

AStack SEGMENT STACK

DW 256 DUP(?)

AStack ENDS

DATA SEGMENT

HELLO DB '‡¤а ўбвўг©вҐ!', 0AH, 0DH,EOFLine

GREETING DB '‚ б ЇаЁўҐвбвўгҐв бв.Ја.2342 -Khomyakov M.U.', 0AH, 0DH, EOFLine

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE, DS:DATA, SS:AStack

WriteMsg PROC NEAR

mov AH,9

int 21h

ret

WriteMsg ENDP

clr PROC NEAR

mov ah,6

mov al,0

mov ch,0

mov cl,0

mov dh,24

mov dl,79

int 10h

ret

clr ENDP

kursor PROC NEAR

mov ah,2

mov dh,0

mov dl,0

mov bh,0

int 10h

ret

kursor ENDP

prokrutka PROC NEAR

mov ah,06

mov al,3

mov ch,0

mov cl,0

mov dh,24

mov dl,79

int 10h

ret

prokrutka ENDP

Main PROC FAR

push DS

sub AX,AX

push AX

mov AX,DATA

mov DS,AX

;call clr

;call kursor

mov cx,10

mov bh,0

wrt: mov DX, OFFSET HELLO

call WriteMsg

mov DX, OFFSET GREETING

call WriteMsg

loop wrt

call prokrutka

ret

Main ENDP

CODE ENDS

END Main

Листинг файл программы:

Microsoft (R) Macro Assembler Version 5.10 4/11/4

Page 1-1

1 page 100,132

2 = 0024 EOFLine EQU '$'

3

4 0000 AStack SEGMENT STACK

5 0000 0100[ DW 256 DUP(?)

6 ????

7 ]

8

9 0200 AStack ENDS

10

11 0000 DATA SEGMENT

12

13 0000 87 A4 E0 A0 A2 E1 HELLO DB '‡¤а ўбвўг©вҐ!', 0AH, 0DH,EOFLine

14 E2 A2 E3 A9 E2 A5

15 21 0A 0D 24

16 0010 82 A0 E1 20 AF E0 GREETING DB '‚ б ЇаЁўҐвбвўгҐв бв.Ја.2342 -Khomyakov M.U.', 0AH, 0DH, EOFLine

17 A8 A2 A5 E2 E1 E2

18 A2 E3 A5 E2 20 E1

19 E2 2E A3 E0 2E 32

20 33 34 32 20 2D 4B

21 68 6F 6D 79 61 6B

22 6F 76 20 4D 2E 55

23 2E 0A 0D 24

24 003E DATA ENDS

25

26 0000 CODE SEGMENT

27 ASSUME CS:CODE, DS:DATA, SS:AStack

28

29 0000 WriteMsg PROC NEAR

30 0000 B4 09 mov AH,9

31 0002 CD 21 int 21h

32 0004 C3 ret

33 0005 WriteMsg ENDP

34

35 0005 clr PROC NEAR

36 0005 B4 06 mov ah,6

37 0007 B0 00 mov al,0

38 0009 B5 00 mov ch,0

39 000B B1 00 mov cl,0

40 000D B6 18 mov dh,24

41 000F B2 4F mov dl,79

42 0011 CD 10 int 10h

43 0013 C3 ret

44 0014 clr ENDP

45

46 0014 kursor PROC NEAR

47 0014 B4 02 mov ah,2

48 0016 B6 00 mov dh,0

49 0018 B2 00 mov dl,0

50 001A B7 00 mov bh,0

51 001C CD 10 int 10h

52 001E C3 ret

53 001F kursor ENDP

54

55 001F prokrutka PROC NEAR

56 001F B4 06 mov ah,06

57 0021 B0 03 mov al,3

58 0023 B5 00 mov ch,0

59 0025 B1 00 mov cl,0

60 0027 B6 18 mov dh,24

61 0029 B2 4F mov dl,79

62 002B CD 10 int 10h

63 002D C3 ret

64 002E prokrutka ENDP

65

66 002E Main PROC FAR

67 002E 1E push DS

68 002F 2B C0 sub AX,AX

69 0031 50 push AX

70 0032 B8 ---- R mov AX,DATA

71 0035 8E D8 mov DS,AX

72 ;call clr

73 ;call kursor

74 0037 B9 000A mov cx,10

75 003A B7 00 mov bh,0

76 003C BA 0000 R wrt: mov DX, OFFSET HELLO

77 003F E8 0000 R call WriteMsg

78 0042 BA 0010 R mov DX, OFFSET GREETING

79 0045 E8 0000 R call WriteMsg

80 0048 E2 F2 loop wrt

81 004A E8 001F R call prokrutka

82 004D CB ret

83 004E Main ENDP

84 004E CODE ENDS

85 END Main

Microsoft (R) Macro Assembler Version 5.10 4/11/4

Symbols-1

Segments and Groups:

N a m e Length Align Combine Class

ASTACK . . . . . . . . . . . . . 0200 PARA STACK

CODE . . . . . . . . . . . . . . 004E PARA NONE

DATA . . . . . . . . . . . . . . 003E PARA NONE

Symbols:

N a m e Type Value Attr

CLR . . . . . . . . . . . . . . N PROC 0005 CODE Length = 000F

EOFLINE . . . . . . . . . . . . NUMBER 0024

GREETING . . . . . . . . . . . . L BYTE 0010 DATA

HELLO . . . . . . . . . . . . . L BYTE 0000 DATA

KURSOR . . . . . . . . . . . . . N PROC 0014 CODE Length = 000B

MAIN . . . . . . . . . . . . . . F PROC 002E CODE Length = 0020

PROKRUTKA . . . . . . . . . . . N PROC 001F CODE Length = 000F

WRITEMSG . . . . . . . . . . . . N PROC 0000 CODE Length = 0005

WRT . . . . . . . . . . . . . . L NEAR 003C CODE

@CPU . . . . . . . . . . . . . . TEXT 0101h

@FILENAME . . . . . . . . . . . TEXT lr5

@VERSION . . . . . . . . . . . . TEXT 510

73 Source Lines

73 Total Lines

17 Symbols

46472 + 384724 Bytes symbol space free

0 Warning Errors

0 Severe Errors

Соседние файлы в папке Лабораторная работа №5
  • #
    01.05.20141.47 Кб24LR5.ASM
  • #
    01.05.2014249.34 Кб25LR5.doc
  • #
    01.05.2014231 б15LR5.MAP
  • #
    01.05.2014288 б15LR5.OBJ