Главная » Просмотр файлов » -4. Текст Программы

-4. Текст Программы (1071407)

Файл №1071407 -4. Текст Программы (КП - загрузчик шрифта, 2 вариант)-4. Текст Программы (1071407)2017-12-28СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла

12


Московский государственный технический университет им. Н.Э.Баумана

____________________________________________________________________

Утверждаю:

Большаков С.А.

"__"_____________2004 г.

Курсовая работа по системному программированию

Загрузчик текстового шрифта в память дисплея ”

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

(вид документа)

писчая бумага

(вид носителя)

12

(количество листов)

ИСПОЛНИТЕЛЬ:

студент группы ИУ5-53

_____________________

Цирулёв А.С.

"__"_____________2004 г.





Москва - 2004

________________________________________________________________

Turbo Assembler Version 2.51 12/01/05 04:51:35 Page 1

font.asm

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

2 ;

3 ; FONT.ASM

4 ; REZIDENTNAIA PROGRAMMA DLIA ZAMENY SHRIFTA

5 ;

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

7

8 .286

9 jumps

10

11 0000 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 ; REZIDENTNAIA CHAST" PROGRAMMY

24 ;

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

26

27 0100 main proc

28 0100 E9 0259 jmp init

29

30 0103 00000000 indos_ptr dd 0

31

32 rstvect macro n,e ;macrokomanda vosstanovlenia vectorov

33

34

35 mov ah,25h

36 mov al,n

37 lds dx,cs:old_&n

38 int 21h

39 endm

40

41

42 ; OBRABOTCHIK MYL"TIPLEKSORNOGO PRERYVANIA

43 0107 8F E0 AE A3 E0 A0 AC+ msg1 db 'Џа®Ја ¬¬ ўлЈа㦥­ $'

44 AC A0 20 A2 EB A3 E0+

45 E3 A6 A5 AD A0 20 24

46 011C 00000000 old_2Fh dd 0

47

48 0120 new_2Fh proc

49 0120 80 FC 77 cmp ah,prog_id

50 0123 75 11 90 90 90 jne end_2Fh

51 0128 3C 00 cmp al,0

52 012A 74 0F 90 90 90 je identify

53 012F 3C 01 cmp al,1

54 0131 74 0B 90 90 90 je uninstall

55 0136 end_2Fh:

56 0136 2E: FF 2E 011Cr jmp cs:old_2Fh

57 013B identify:

Turbo Assembler Version 2.51 12/01/05 04:51:35 Page 2

font.asm

58 013B B0 FF mov al,0FFh

59 013D CF iret ;vozvrat iz p/p, vosstanovlenie flagov i registrov cx ip

60 013E uninstall:

61 013E 06 1E 52 push es ds dx

62

63 ;vosstanovlenie vectorov

64 rstvect 09h

1 65 0141 B4 25 mov ah,25h

1 66 0143 B0 09 mov al,09h

1 67 0145 2E: C5 16 01ADr lds dx,cs:old_09h

1 68 014A CD 21 int 21h

69 rstvect 2Fh

1 70 014C B4 25 mov ah,25h

1 71 014E B0 2F mov al,2Fh

1 72 0150 2E: C5 16 011Cr lds dx,cs:old_2Fh

1 73 0155 CD 21 int 21h

74

75 ;vygryzka iz pamiati

76 0157 B4 49 mov ah,49h

77 0159 0E push cs

78 015A 07 pop es

79 015B CD 21 int 21h

80

81 015D BE 0107r mov si, offset cs:msg1

82 0160 8C C8 mov ax, cs

83 0162 8E D8 mov ds, ax

84 0164 E8 0035 call crlf

85 0167 E8 0007 call str_out

86 016A E8 002F call crlf

87

88 016D 5A 1F 07 pop dx ds es

89 0170 CF iret ;vozvrat iz p/p, vosstanovlenie flagov i registrov cx ip

90 0171 new_2Fh endp

91

92 0171 str_out proc

93 0171 60 pusha

94

95 0172 B4 03 mov ah, 03h ; poly4aem poziciu kyrsora(dh -

96 0174 B7 00 mov bh, 0

97 0176 CD 10 int 10h

98

99 0178 next_smbl:

100 0178 B4 0E mov ah, 0Eh ; vyvod simvola

101 017A 8A 04 mov al, byte ptr ds:[si]

102 017C 3C 24 cmp al, '$'

103 017E 74 1A 90 90 90 je fin_str_out

104

105 0183 CD 10 int 10h

106 0185 46 inc si

107

108 0186 FE C2 inc dl

109 0188 80 FA 50 cmp dl, 80

110 018B 7E 07 90 90 90 jng set_cur

111 0190 B2 00 mov dl, 0

112 0192 FE C6 inc dh

113

114 0194 set_cur:

Turbo Assembler Version 2.51 12/01/05 04:51:35 Page 3

font.asm

115 0194 B4 02 mov ah, 02h ; perevod kyrsora (dh - stroka,

116 0196 CD 10 int 10h

117 0198 EB DE jmp next_smbl

118

119 019A fin_str_out:

120 019A 61 popa

121 019B C3 ret

122 019C str_out endp

123

124 019C crlf proc

125 019C 50 push ax

126 019D 53 push bx

127

128 019E B4 0E mov ah, 0Eh

129 01A0 B7 00 mov bh, 0

130 01A2 B0 0D mov al, 0Dh

131 01A4 CD 10 int 10h

132 01A6 B0 0A mov al, 0Ah

133 01A8 CD 10 int 10h

134

135 01AA 5B pop bx

136 01AB 58 pop ax

137 01AC C3 ret

138 01AD crlf endp

139

140 ; OBRABOTCHIK PRERYVANIA KLAVIATYRY

141

142 01AD 00000000 old_09h dd 0

143 01B1 0000 ctrl_flag dw 0

144 01B3 0000 key_func dw 0

145

146 01B5 new_09h proc

147 ; polu4enie skan-koda klavishi

148 01B5 50 push ax

149 01B6 E4 60 in al,60h

150 01B8 3C 57 cmp al,hotkey_code

151 01BA 74 30 90 90 90 je hotkey

152 01BF 3C 1D cmp al,ctrl_code

153 01C1 74 17 90 90 90 je ctrl

154 01C6 3C 9D cmp al,ctrlr_code

155 01C8 74 19 90 90 90 je ctrlr

156 01CD 3C 16 cmp al,u_code

157 01CF 74 25 90 90 90 je uninst

158 01D4 call_old:

159 01D4 58 pop ax

160 01D5 2E: FF 2E 01ADr jmp cs:old_09h

161 01DA 2E: C7 06 01B1r 0001 ctrl: mov ctrl_flag,1

162 01E1 EB F1 jmp call_old

163 01E3 2E: C7 06 01B1r 0000 ctrlr:mov ctrl_flag,0

164 01EA EB E8 jmp call_old

165 01EC hotkey:

166 01EC 2E: C7 06 01B3r 0000 mov key_func,0

167 01F3 EB 13 90 jmp key_end

168 01F6 uninst:

169 01F6 2E: 83 3E 01B1r 01 cmp ctrl_flag,1

170 01FC 75 D6 jne call_old

171 01FE 2E: C7 06 01B3r 0001 mov key_func,1

Turbo Assembler Version 2.51 12/01/05 04:51:35 Page 4

font.asm

172 0205 EB 01 90 jmp key_end

173 0208 key_end:

174 ; zaglatyvanie v port

175 0208 E4 61 in al,61h

176 020A 8A E0 mov ah,al

177 020C 0C 80 or al,80h

178 020E E6 61 out 61h,al

179 0210 86 E0 xchg ah,al

180 0212 E6 61 out 61h,al

181

182 ; vozvrat EOI

183 0214 B0 20 mov al,20h

184 0216 E6 20 out 20h,al

185

186 0218 2E: 83 3E 01B3r 00 cmp key_func,0

187 021E 74 0C 90 90 90 je swap_func

188

189 ; vozvrat parametrov

190 0223 B4 77 mov ah,prog_id

191 0225 B0 01 mov al,1

192 0227 CD 2F int 2Fh

193 0229 EB 04 90 jmp uninst_func

194 022C swap_func:

195 022C E8 00A3 call SwapChars

196 022F uninst_func:

197 022F 58 pop ax

198 0230 CF iret

199 0231 new_09h endp

200

201 0231 00 flag db 0 ; 0=>1-i zapysk; 1=>gryzit' novyi shrift; 2=>staryi

202 0232 50*(00) oldchar db 80 dup(0) ; byfer dlia starogo shrifta

203

204 ;novyi shrift dlia bykv ЂЃ‚ѓ„

205 0282 00 newchar db 00000000b

206 0283 FF db 11111111b

207 0284 FF db 11111111b

208 0285 FF db 11111111b

209 0286 FF db 11111111b

210 0287 FF db 11111111b

211 0288 42 db 01000010b

212 0289 7E db 01111110b

213 028A 42 db 01000010b

214 028B 5A db 01011010b

215 028C 42 db 01000010b

216 028D 00 db 00000000b

217 028E FF db 11111111b

218 028F 00 db 00000000b

219 0290 00 db 00000000b

220 0291 00 db 00000000b

221 ; Ѓ

222 0292 00 db 00000000b

223 0293 00 db 00000000b

224 0294 00 db 00000000b

225 0295 7E db 01111110b

226 0296 40 db 01000000b

227 0297 40 db 01000000b

228 0298 7C db 01111100b

Turbo Assembler Version 2.51 12/01/05 04:51:35 Page 5

font.asm

229 0299 42 db 01000010b

230 029A 42 db 01000010b

231 029B 42 db 01000010b

232 029C 7C db 01111100b

233 029D 00 db 00000000b

234 029E FF db 11111111b

235 029F 00 db 00000000b

236 02A0 00 db 00000000b

237 02A1 00 db 00000000b

238 ; ‚

239 02A2 FF db 11111111b

240 02A3 FF db 11111111b

241 02A4 FF db 11111111b

242 02A5 FF db 11111111b

243 02A6 FF db 11111111b

244 02A7 52 db 01010010b

245 02A8 7C db 01111100b

246 02A9 52 db 01010010b

247 02AA 52 db 01010010b

248 02AB 52 db 01010010b

249 02AC 7C db 01111100b

250 02AD 00 db 00000000b

251 02AE FF db 11111111b

252 02AF 00 db 00000000b

253 02B0 00 db 00000000b

254 02B1 00 db 00000000b

255 ; ѓ

256 02B2 00 db 00000000b

257 02B3 00 db 00000000b

258 02B4 00 db 00000000b

259 02B5 7E db 01111110b

260 02B6 40 db 01000000b

261 02B7 40 db 01000000b

262 02B8 40 db 01000000b

263 02B9 40 db 01000000b

264 02BA 40 db 01000000b

265 02BB 40 db 01000000b

266 02BC 40 db 01000000b

267 02BD 00 db 00000000b

268 02BE FF db 11111111b

269 02BF 00 db 00000000b

270 02C0 00 db 00000000b

271 02C1 00 db 00000000b

272 ; „

273 02C2 00 db 00000000b

274 02C3 00 db 00000000b

275 02C4 00 db 00000000b

276 02C5 3E db 00111110b

277 02C6 42 db 01000010b

278 02C7 42 db 01000010b

279 02C8 42 db 01000010b

280 02C9 42 db 01000010b

281 02CA 42 db 01000010b

282 02CB FF db 11111111b

283 02CC 81 db 10000001b

284 02CD 00 db 00000000b

285 02CE FF db 11111111b

Turbo Assembler Version 2.51 12/01/05 04:51:35 Page 6

font.asm

286 02CF 00 db 00000000b

287 02D0 00 db 00000000b

288 02D1 00 db 00000000b

289

290

291 02D2 SwapChars proc

292 02D2 60 pusha

293 02D3 06 push ES

294 02D4 2E: 80 3E 0231r 01 cmp flag,1

295 02DA 74 2A 90 90 90 je LoadNew

296 02DF 2E: 80 3E 0231r 02 cmp flag,2

297 02E5 74 4A 90 90 90 je LoadOld

298 02EA 1E push DS

299 02EB B8 1130 mov AX,1130h ; poly4aem adres starogo shrifta

300 02EE B7 01 mov BH, 01h

301 02F0 CD 10 int 10h

302 ; ES:BP - adres starogo shrifta

303 02F2 1E 06 push DS ES

304 02F4 1F 07 pop DS ES

305 02F6 8B F5 mov SI,BP

306 02F8 81 C6 0800 add SI,'Ђ'*16 ; na4al'nyi simvol

307 02FC BF 0232r mov DI,offset oldchar

308 02FF FC cld

309 0300 B9 0050 mov CX,16*5

310 0303 F3> A4 rep movsb

311 0305 1F pop DS

312 0306 LoadNew:

313 0306 B8 B800 mov AX,0B800h

314 0309 8E C0 mov ES, AX

315 030B 26: C7 06 0000 0F07 mov ES:0,0F07h

316 0312 8C C8 mov AX, CS ; ES:=CS

317 0314 8E C0 mov ES, AX

318 0316 B8 1110 mov AX, 1110h

319 0319 B7 10 mov BH,16 ; vysota simvola

320 031B B3 00 mov BL,0 ; gluk znakogeneratora

321 031D B9 0005 mov CX,5 ; koli4estvo simvolov

322 0320 BA 0080 mov DX,'Ђ'

323 0323 BD 0282r mov BP, offset newchar

324 0326 CD 10 int 10h

325 0328 2E: C6 06 0231r 02 mov flag,2 ; sledyuwii raz nado bydet zagrygat' staryi wrift

326 032E EB 29 90 jmp Fin

327

328 0331 LoadOld:

329 0331 B8 B800 mov AX,0B800h

330 0334 8E C0 mov ES, AX

331 0336 26: C7 06 0000 0F09 mov ES:0,0F09h

332 033D 8C C8 mov AX, CS ; ES:=CS

333 033F 8E C0 mov ES, AX

334

335 0341 B8 1110 mov AX, 1110h

336 0344 B7 0E mov BH,14

337 0346 B3 00 mov BL,0

338 0348 B9 0005 mov CX,5

339 034B BA 0080 mov DX,'Ђ'

340 034E BD 0232r mov BP, offset oldchar

341 0351 CD 10 int 10h

342 0353 2E: C6 06 0231r 01 mov flag,1 ; sledyuwii raz nado bydet zagrygat' novyi wrift

Turbo Assembler Version 2.51 12/01/05 04:51:35 Page 7

font.asm

343

344 0359 Fin:

345 0359 07 pop ES

346 035A 61 popa

347 035B C3 ret

348 035C SwapChars endp

349

350 = TEXT:035C end_tsr=$

351 035C main endp

352

353 ;--------------------------------------------------------------------

354 ;

355 ; OBLAST" INICIALIZACII

356 ;

357 ;--------------------------------------------------------------------

358

359 ; procedyra ystanovki i sovranenia vectora

360

361 setvect macro n ;macroprogramma ystanovki vectorov

362

363 mov ah,35h

Характеристики

Тип файла
Документ
Размер
100,5 Kb
Тип материала
Высшее учебное заведение

Тип файла документ

Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.

Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.

Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.

Список файлов курсовой работы

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