Для студентов МГТУ им. Н.Э.Баумана по предмету Системное программированиеКП - сохранение содержимого экранаКП - сохранение содержимого экрана 2017-12-28СтудИзба

Курсовая работа: КП - сохранение содержимого экрана

Описание

Описание файла отсутствует

Характеристики курсовой работы

Учебное заведение
Семестр
Просмотров
182
Скачиваний
4
Размер
17,03 Kb

Список файлов

  • КП - сохранение содержимого экрана
  • GRABER
  • DEMO.EXE 8,97 Kb
  • GRABER.ASM 6,49 Kb
  • GRABER.COM 1,75 Kb
  • GRABER.OBJ 1,3 Kb
  • GRABER.TXT 23,01 Kb
  • Прочти меня.txt 32 b
GRABER

Turbo Assembler Version 4.0 24/11/98 23:55:35 Page 1

graber.asm

1 ;--------------------------------------- -----------------------------

2 ;

3 ; GRAB.ASM

4 ; РЕЗИДЕНТНАЯ ПРОГРАММА ДЛЯ СОХРАНЕНИЯ ГРАФИЧЕСКОГО ЭКРАНА

5 ;

6 ;--------------------------------------- -----------------------------

7

8 .286

9 jumps

10

110000 text segment

12 assume cs:text

13 org 100h

14

15 =0077 prog_id equ 77h

16 =0057 hotkey_code equ 57h

17 =001D ctrl_code equ 1Dh

18 =009D ctrlr_code equ 9Dh

19 =0016 u_code equ 16h

20

21 ;--------------------------------------- -----------------------------

22 ;

23 ; РЕЗИДЕНТНАЯ ЧАСТЬ ПРОГРАММЫ

24 ;

25 ;--------------------------------------- -----------------------------

26

270100 main proc

280100 E9 055B jmp init

29

300103 00000000 indos_ptr dd 0

31

32 rstvect macro n,e

33

34 ; восстановим вектор

35 mov ah,25h

36 mov al,n

37 lds dx,cs:old_&n

38 int 21h

39 endm

40

41

42 ; ОБРАБОТЧИК МУЛЬТИПЛЕКСНОГО ПРЕРЫВАНИЯ

43

440107 00000000 old_2Fh dd 0

45

46010B new_2Fh proc

47010B 80 FC 77 cmp ah,prog_id

48010E 75 11 90 90 90 jne end_2Fh

490113 3C 00 cmp al,0

500115 74 0F 90 90 90 je identify

51011A 3C 01 cmp al,1

52011C 74 0B 90 90 90 je uninstall

530121 end_2Fh:

540121 2E: FF 2E0107r jmp cs:old_2Fh

55

560126 identify:

570126 B0 FF mov al,0FFh

Turbo Assembler Version 4.0 24/11/98 23:55:35 Page 2

graber.asm

580128 CF iret

59

600129 uninstall:

610129 06 1E 52 push esds dx

62

63 ; востановим вектора прерываний

64 rstvect 09h

1 65012C B4 25 mov ah,25h

1 66012E B0 09 mov al,09h

1 670130 2E: C5 16014Cr lds dx,cs:old_09h

1 680135 CD 21 int 21h

69 rstvect 2Fh

1 700137 B4 25 mov ah,25h

1 710139 B0 2F mov al,2Fh

1 72013B 2E: C5 160107r lds dx,cs:old_2Fh

1 730140 CD 21 int 21h

74

75 ; выгрузимпрограмму

760142 B4 49 mov ah,49h

770144 0E push cs

780145 07 pop es

790146 CD 21 int 21h

80

810148 5A 1F 07 pop dxds es

82014B CF iret

83014C new_2Fh endp

84

85

86

87 ; ОБРАБОТЧИК ПРЕРЫВАНИЯ КЛАВИАТУРЫ

88

89014C 00000000 old_09h dd 0

900150 0000 ctrl_flag dw 0

910152 0000 key_func dw 0

92

930154 new_09h proc

94

95 ; проверимнажатуюклавишу

960154 50 push ax

970155 E4 60 in al,60h

980157 3C 57 cmp al,hotkey_code

990159 74 30 90 90 90 je hotkey

100015E 3C 1D cmp al,ctrl_code

1010160 74 17 90 90 90 je ctrl

1020165 3C 9D cmp al,ctrlr_code

1030167 74 19 90 90 90 je ctrlr

104016C 3C 16 cmp al,u_code

105016E 74 25 90 90 90 je uninst

1060173 call_old:

1070173 58 pop ax

1080174 2E: FF 2E014Cr jmp cs:old_09h

109

1100179 2E: C7 060150r 0001 ctrl: mov ctrl_flag,1

1110180 EB F1 jmp call_old

1120182 2E: C7 060150r 0000 ctrlr: mov ctrl_flag,0

1130189 EB E8 jmp call_old

114

Turbo Assembler Version 4.0 24/11/98 23:55:35 Page 3

graber.asm

115018B hotkey:

116018B 2E: C7 060152r 0000 mov key_func,0

1170192 EB 13 90 jmp key_end

118

1190195 uninst:

1200195 2E: 83 3E0150r 01 cmp ctrl_flag,1

121019B 75 D6 jne call_old

122019D 2E: C7 060152r 0001 mov key_func,1

12301A4 EB 01 90 jmp key_end

124

12501A7 key_end:

126 ; разрешимработу клавиатуры

12701A7 E4 61 in al,61h

12801A9 8A E0 mov ah,al

12901AB 0C 80 or al,80h

13001AD E6 61 out 61h,al

13101AF 86 E0 xchg ah,al

13201B1 E6 61 out 61h,al

133

134 ; пошлем вконтроллер прерываний команду EOI

13501B3 B0 20 mov al,20h

13601B5 E6 20 out 20h,al

137

13801B7 2E: 83 3E0152r 00 cmp key_func,0

13901BD 74 0C 90 90 90 je grab_func

140

141 ; выгрузимпрограмму

14201C2 B4 77 mov ah,prog_id

14301C4 B0 01 mov al,1

14401C6 CD 2F int 2Fh

14501C8 EB 04 90 jmp uninst_func

146

14701CB grab_func:

148 ; сохраняем экран

14901CB E8 0008 call acttsr

150

15101CE uninst_func:

15201CE 58 pop ax

15301CF CF iret

15401D0 new_09h endp

155

156

157

158 ; АКТИВАЦИЯ TSR

159

16001D0 0000 old_psp dw 0

16101D2 00000000 old_dta dd 0

162

16301D6 acttsr proc

16401D6 50 53 52 06 1E push axbx dx es ds

165

16601DB 2E: C4 1E0103r les bx,indos_ptr

16701E0 26: 80 3F00 cmp byte ptr es:[bx],0

16801E4 75 43 90 90 90 jne no_activate

169

17001E9 B4 62 mov ah,62h

17101EB CD 21 int 21h

Turbo Assembler Version 4.0 24/11/98 23:55:35 Page 4

graber.asm

17201ED 2E: 89 1E01D0r mov old_psp,bx

17301F2 B4 50 mov ah,50h

17401F4 8C CB mov bx,cs

17501F6 CD 21 int 21h

176

17701F8 B4 2F mov ah,2Fh

17801FA CD 21 int 21h

17901FC 2E: 89 1E01D2r mov word ptr [old_dta],bx

1800201 2E: 8C 0601D4r mov word ptr [old_dta+2],es

1810206 B4 1A mov ah,1Ah

1820208 0E push cs

1830209 1F pop ds

184020A BA 0080 mov dx,80h

185020D CD 21 int 21h

186

187020F E8 03CC call grab

188

1890212 B4 1A mov ah,1Ah

1900214 2E: 8B 1601D2r mov dx,word ptr [old_dta]

1910219 2E: 8E 1E01D4r mov ds,word ptr [old_dta+2]

192021E CD 21 int 21h

1930220 B4 50 mov ah,50h

1940222 2E: 8B 1E01D0r mov bx,old_psp

1950227 CD 21 int 21h

196

1970229 no_activate:

1980229 1F 07 5A 5B 58 pop dses dx bx ax

199022E C3 ret

200022F acttsr endp

201

202

203

204 ; ПРОЦЕДУРА ПОЛУЧЕНИЯ ПАЛИТРЫ (ПО АДРЕСУ ES:DI 768БАЙТ)

205

206022F getpal proc

207022F 50 51 52 57 push axcx dx di

208

2090233 BA 03C7 mov dx,3C7h

Прочти меня

Файл скачан с сайта StudIzba.com

Картинка-подпись
Хочешь зарабатывать на СтудИзбе больше 10к рублей в месяц? Научу бесплатно!
Начать зарабатывать

Комментарии

Поделитесь ссылкой:
Рейтинг-
0
0
0
0
0
Поделитесь ссылкой:
Сопутствующие материалы
Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Нашёл ошибку?
Или хочешь предложить что-то улучшить на этой странице? Напиши об этом и получи бонус!
Бонус рассчитывается индивидуально в каждом случае и может быть в виде баллов или бесплатной услуги от студизбы.
Предложить исправление
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5138
Авторов
на СтудИзбе
443
Средний доход
с одного платного файла
Обучение Подробнее