3Listing (КП - индикатор регистров, 1 вариант)

2017-12-28СтудИзба

Описание файла

Файл "3Listing" внутри архива находится в следующих папках: КП - индикатор регистров, 1 вариант, Оперативный индикатор регистров микропроцессора. Документ из архива "КП - индикатор регистров, 1 вариант", который расположен в категории "". Всё это находится в предмете "системное программирование" из 5 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "курсовые/домашние работы", в предмете "системное программирование" в общих файлах.

Онлайн просмотр документа "3Listing"

Текст из документа "3Listing"

15


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

Утверждаю:

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

"__"_____________2004 г.

Курсовая работа по системному программированию “Оперативный индикатор регистров микропроцессора”

Исходные текcты программы

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

бумага А4

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

14

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

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

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

_____________________

Новиков И.А.

"__"_____________2004 г.

Москва 2004

________________________________________________________________

Содержание

1. Листинг программы 3-

Turbo Assembler Version 3.1 26/11/04 10:49:21 Page 1

kurs.asm

1 0000 cseg segment 'code'

2 assume cs:cseg

3 org 100h

4 0100 mainproc:

5 0100 E9 033A jmp init

6 ;резидентная часть программы

7 ;наш обработчик прерывания 09h

8 0103 new_09h proc

9 0103 2E: 8C 1E 0403r mov cs:my_ds,ds

10 0108 2E: 89 26 03FFr mov cs:my_sp,sp

11 010D 2E: A3 03F3r mov cs:my_ax,ax

12 0111 2E: 89 1E 03F5r mov cs:my_bx,bx

13 0116 2E: 89 0E 03F7r mov cs:my_cx,cx

14 011B 2E: 89 16 03F9r mov cs:my_dx,dx

15 0120 2E: 89 2E 0401r mov cs:my_bp,bp

16 0125 2E: 8C 06 0407r mov cs:my_es,es

17 012A 2E: 89 3E 03FDr mov cs:my_di,di

18 012F 2E: 89 36 03FBr mov cs:my_si,si

19 0134 2E: 8C 16 0409r mov cs:my_ss,ss

20 0139 2E: 8C 0E 0405r mov cs:my_cs,cs

21 013E 9C pushf

22 ;вызов системного обработчика прерывания от клавиатуры

23 013F 2E: FF 1E 040Br call cs:old_09h

24 ;сохраняем регистры

25 0144 50 push ax

26 0145 53 push bx

27 0146 51 push cx

28 0147 52 push dx

29 0148 55 push bp

30 0149 1E push ds

31 014A 06 push es

32 014B 57 push di

33 014C 56 push si

34 ;ds=cs

35 014D 0E push cs

36 014E 1F pop ds

37 ;получаем первый необработанный скан-код клавиатуры

38 014F B8 0040 mov ax,40h

39 0152 8E C0 mov es,ax

40 0154 26: 8B 1E 001A mov bx,es:1ah

41 0159 26: 8B 07 mov ax,es:bx

42 ;пpовеpка на клавишу F7

43 015C 3D 4100 cmp ax,4100h

44 015F 75 11 jne home

45 ;вывод значений pегистpов

46 0161 print_regs:

47 0161 0E push cs

48 0162 1F pop ds

49 0163 B4 03 mov ah,3

50 0165 32 FF xor bh,bh

51 0167 CD 10 int 10h

52 0169 52 push dx

53 016A E8 00A3 call dump

54 016D 5A pop dx

55 016E B4 02 mov ah,2

56 0170 CD 10 int 10h

57 ;выход из обработчика прерываний и восстановление используемых регистров

Turbo Assembler Version 3.1 26/11/04 10:49:21 Page 2

kurs.asm

58 0172 home:

59 0172 5E pop si

60 0173 5F pop di

61 0174 07 pop es

62 0175 1F pop ds

63 0176 5D pop bp

64 0177 5A pop dx

65 0178 59 pop cx

66 0179 5B pop bx

67 017A 58 pop ax

68 017B endi:

69 017B CF iret

70 017C new_09h endp

71 ;наш обработчик прерывания 2fh

72 017C new_2fh proc

73 ;AX=C001H - сигнал выгрузки

74 017C 3D C001 cmp ax,0c001h

75 017F 75 02 jne ch_c000

76 0181 EB 0D jmp quit1

77 ;AX=C000H - проверка на загрузку резидента. Помещает в AL значение 255 (FFh)

78 0183 ch_c000:

79 0183 3D C000 cmp AX,0c000h

80 0186 75 03 jne not_my

81 0188 B0 FF mov AL,0ffh

82 018A CF iret

83 018B not_my:

84 018B 2E: FF 2E 040Fr jmp cs:old_2fh

85 ;выгрузка резидента

86 0190 quit1:

87 0190 1E push ds

88 0191 06 push es

89 0192 33 C0 xor ax,ax

90 0194 8E C0 mov es,ax

91 0196 8C C8 mov ax,cs

92 0198 26: 3B 06 0026 cmp ax,word ptr es:26h

93 019D 75 53 jne home1

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

95 019F 1E push ds

96 01A0 B8 2509 mov ax,2509h

97 01A3 2E: C5 16 040Br lds dx,cs:old_09h

98 01A8 CD 21 int 21h

99 01AA B8 252F mov ax,252fh

100 01AD 2E: C5 16 040Fr lds dx,cs:old_2fh

101 01B2 CD 21 int 21h

102 01B4 1F pop ds

103 ;выведем сообщение о выгрузке программы на экран

104 01B5 33 D2 xor dx,dx

105 01B7 33 DB xor bx,bx

106 01B9 B8 0002 mov ax,2

107 01BC CD 10 int 10h

108 01BE E8 0227 call crlf

109 01C1 l1:

110 01C1 53 push bx

111 01C2 2E: 8A 87 0423r mov al,mesr[bx]

112 01C7 E8 0200 call putch

113 01CA 5B pop bx

114 01CB 43 inc bx

Turbo Assembler Version 3.1 26/11/04 10:49:21 Page 3

kurs.asm

115 01CC 83 FB 1A cmp bx,mesrlen

116 01CF 72 F0 jb l1

117 ;собственно выгрузка резидента из памяти

118 01D1 8C C8 mov ax,cs

119 01D3 48 dec ax

120 01D4 8E D8 mov ds,ax

121 01D6 BB 0001 mov bx,1

122 01D9 C7 07 0000 mov word ptr ds:bx,word ptr 0

123 01DD 8C C8 mov ax,cs

124 01DF 8E D8 mov ds,ax

125 01E1 BB 002C mov bx,002ch

126 01E4 8B 07 mov ax,word ptr ds:bx

127 01E6 48 dec ax

128 01E7 8E D8 mov ds,ax

129 01E9 BB 0001 mov bx,1

130 01EC C7 07 0000 mov word ptr ds:bx,word ptr 0

131 01F0 EB 00 jmp home1

132 01F2 home1:

133 ;выход из обработчика прерываний и восстановление используемых регистров

134 01F2 07 pop es

135 01F3 1F pop ds

136 01F4 CF iret

137 01F5 new_2fh endp

138 ;конец обработчика прерывания

139

140 ;перевод в 16-ричный вид

141 01F5 TRAN proc

142 01F5 50 push ax

143 01F6 D0 E8 D0 E8 D0 E8 D0+ shr al,4

144 E8

145 01FE BB 0413r lea bx,table1

146 0201 D7 xlatb

147 0202 E8 01C5 call putch

148 0205 58 pop ax

149 0206 24 0F and al,15

150 0208 BB 0413r lea bx,table1

151 020B D7 xlatb

152 020C E8 01BB call putch

153 020F C3 ret

154 0210 TRAN endp

155 ;вывод регистров

156 0210 DUMP proc

157 0210 33 D2 xor dx,dx

158 0212 B4 02 mov ah,2

159 0214 CD 10 int 10h

160 0216 B0 41 mov al,'A'

161 0218 E8 01AF call putch

162 021B B0 58 mov al,'X'

163 021D E8 01AA call putch

164 0220 B0 3D mov al,'='

165 0222 E8 01A5 call putch

166 0225 2E: A1 03F3r mov ax,my_ax

167 0229 8A C4 mov al,ah

168 022B E8 FFC7 call tran

169 022E 2E: A1 03F3r mov ax,my_ax

170 0232 E8 FFC0 call tran

171 0235 B0 20 mov al,20h

Turbo Assembler Version 3.1 26/11/04 10:49:21 Page 4

kurs.asm

172 0237 E8 0190 call putch

173

174 023A B0 42 mov al,'B'

175 023C E8 018B call putch

176 023F B0 58 mov al,'X'

177 0241 E8 0186 call putch

178 0244 B0 3D mov al,'='

179 0246 E8 0181 call putch

180 0249 2E: A1 03F5r mov ax,my_bx

181 024D 8A C4 mov al,ah

182 024F E8 FFA3 call tran

183 0252 2E: A1 03F5r mov ax,my_bx

184 0256 E8 FF9C call tran

185 0259 B0 20 mov al,20h

186 025B E8 016C call putch

187

188 025E B0 43 mov al,'C'

189 0260 E8 0167 call putch

190 0263 B0 58 mov al,'X'

191 0265 E8 0162 call putch

192 0268 B0 3D mov al,'='

193 026A E8 015D call putch

194 026D 2E: A1 03F7r mov ax,my_cx

195 0271 8A C4 mov al,ah

196 0273 E8 FF7F call tran

197 0276 2E: A1 03F7r mov ax,my_cx

198 027A E8 FF78 call tran

199 027D B0 20 mov al,20h

200 027F E8 0148 call putch

201

202 0282 B0 44 mov al,'D'

203 0284 E8 0143 call putch

204 0287 B0 58 mov al,'X'

205 0289 E8 013E call putch

206 028C B0 3D mov al,'='

207 028E E8 0139 call putch

208 0291 2E: A1 03F9r mov ax,my_dx

209 0295 8A C4 mov al,ah

210 0297 E8 FF5B call tran

211 029A 2E: A1 03F9r mov ax,my_dx

212 029E E8 FF54 call tran

213 02A1 B0 20 mov al,20h

214 02A3 E8 0124 call putch

215

216 02A6 B0 42 mov al,'B'

217 02A8 E8 011F call putch

218 02AB B0 50 mov al,'P'

219 02AD E8 011A call putch

220 02B0 B0 3D mov al,'='

221 02B2 E8 0115 call putch

222 02B5 2E: A1 0401r mov ax,my_bp

223 02B9 8A C4 mov al,ah

224 02BB E8 FF37 call tran

225 02BE 2E: A1 0401r mov ax,my_bp

226 02C2 E8 FF30 call tran

227 02C5 B0 20 mov al,20h

228 02C7 E8 0100 call putch

Turbo Assembler Version 3.1 26/11/04 10:49:21 Page 5

kurs.asm

229

230 02CA B0 53 mov al,'S'

231 02CC E8 00FB call putch

232 02CF B0 50 mov al,'P'

233 02D1 E8 00F6 call putch

234 02D4 B0 3D mov al,'='

235 02D6 E8 00F1 call putch

236 02D9 2E: A1 03FFr mov ax,my_sp

237 02DD 8A C4 mov al,ah

238 02DF E8 FF13 call tran

239 02E2 2E: A1 03FFr mov ax,my_sp

240 02E6 E8 FF0C call tran

241 02E9 B0 20 mov al,20h

242 02EB E8 00DC call putch

243

244 02EE B0 53 mov al,'S'

245 02F0 E8 00D7 call putch

246 02F3 B0 49 mov al,'I'

247 02F5 E8 00D2 call putch

248 02F8 B0 3D mov al,'='

249 02FA E8 00CD call putch

250 02FD 2E: A1 03FBr mov ax,my_si

251 0301 8A C4 mov al,ah

252 0303 E8 FEEF call tran

253 0306 2E: A1 03FBr mov ax,my_si

254 030A E8 FEE8 call tran

255 030D B0 20 mov al,20h

256 030F E8 00B8 call putch

257

258 0312 B0 44 mov al,'D'

259 0314 E8 00B3 call putch

260 0317 B0 49 mov al,'I'

261 0319 E8 00AE call putch

262 031C B0 3D mov al,'='

263 031E E8 00A9 call putch

264 0321 2E: A1 03FDr mov ax,my_di

265 0325 8A C4 mov al,ah

266 0327 E8 FECB call tran

267 032A 2E: A1 03FDr mov ax,my_di

268 032E E8 FEC4 call tran

269 0331 B0 20 mov al,20h

270 0333 E8 0094 call putch

271 0336 E8 00AF call crlf

272

273 0339 B0 43 mov al,'C'

274 033B E8 008C call putch

275 033E B0 53 mov al,'S'

276 0340 E8 0087 call putch

277 0343 B0 3D mov al,'='

278 0345 E8 0082 call putch

279 0348 2E: A1 0405r mov ax,my_cs

280 034C 8A C4 mov al,ah

281 034E E8 FEA4 call tran

282 0351 2E: A1 0405r mov ax,my_cs

283 0355 E8 FE9D call tran

284 0358 B0 20 mov al,20h

285 035A E8 006D call putch

Turbo Assembler Version 3.1 26/11/04 10:49:21 Page 6

kurs.asm

286

287 035D B0 44 mov al,'D'

288 035F E8 0068 call putch

289 0362 B0 53 mov al,'S'

290 0364 E8 0063 call putch

291 0367 B0 3D mov al,'='

292 0369 E8 005E call putch

293 036C 2E: A1 0403r mov ax,my_ds

294 0370 8A C4 mov al,ah

295 0372 E8 FE80 call tran

296 0375 2E: A1 0403r mov ax,my_ds

297 0379 E8 FE79 call tran

298 037C B0 20 mov al,20h

299 037E E8 0049 call putch

300

301 0381 B0 45 mov al,'E'

302 0383 E8 0044 call putch

303 0386 B0 53 mov al,'S'

304 0388 E8 003F call putch

305 038B B0 3D mov al,'='

306 038D E8 003A call putch

307 0390 2E: A1 0407r mov ax,my_es

308 0394 8A C4 mov al,ah

309 0396 E8 FE5C call tran

310 0399 2E: A1 0407r mov ax,my_es

311 039D E8 FE55 call tran

312 03A0 B0 20 mov al,20h

313 03A2 E8 0025 call putch

314

315 03A5 B0 53 mov al,'S'

316 03A7 E8 0020 call putch

317 03AA B0 53 mov al,'S'

318 03AC E8 001B call putch

319 03AF B0 3D mov al,'='

320 03B1 E8 0016 call putch

321 03B4 2E: A1 0409r mov ax,my_ss

322 03B8 8A C4 mov al,ah

323 03BA E8 FE38 call tran

324 03BD 2E: A1 0409r mov ax,my_ss

325 03C1 E8 FE31 call tran

326 03C4 B0 20 mov al,20h

327 03C6 E8 0001 call putch

328 03C9 C3 ret

329 03CA DUMP endp

330 ;вывод одного символа

331 03CA PUTCH proc

332 03CA B4 09 mov AH,9

333 03CC BB 000E mov bx,14

334 03CF B9 0001 mov cx,1

335 03D2 CD 10 Int 10h

336 03D4 B4 02 mov ah,2

337 03D6 32 FF xor bh,bh

338 03D8 80 FA 50 cmp dl,80

339 03DB 73 04 jae nl

340 03DD FE C2 inc dl

341 03DF EB 04 jmp m001

342 03E1 nl:

Turbo Assembler Version 3.1 26/11/04 10:49:21 Page 7

kurs.asm

343 03E1 FE C6 inc dh

344 03E3 32 D2 xor dl,dl

345 03E5 m001:

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