листанг (1071429), страница 2

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

Текст из файла (страница 2)

318 ;---

319 03BD 8B 1E 017Cr mov bx, my_bp ;печать bp

320 03C1 E8 0060 call encodeascii

321 03C4 B6 01 mov dh, 1

322 03C6 B2 1E mov dl, 30

323 03C8 BD 0103r mov bp, offset regstring

324 03CB B9 0004 mov cx, 4

325 03CE E8 007C call printstr

326 ;---

327

328 ;---

329 03D1 8B 1E 017Er mov bx, my_ds ;печать ds

330 03D5 E8 004C call encodeascii

331 03D8 B6 02 mov dh, 2

332 03DA B2 03 mov dl, 3

333 03DC BD 0103r mov bp, offset regstring

334 03DF B9 0004 mov cx, 4

335 03E2 E8 0068 call printstr

336 ;---

337

338 ;---

339 03E5 8B 1E 0182r mov bx, my_es ;печать es

340 03E9 E8 0038 call encodeascii

341 03EC B6 02 mov dh, 2

342 03EE B2 0C mov dl, 12

Turbo Assembler Version 3.1 24/12/00 23:09:51 Page 7

fin.ASM

343 03F0 BD 0103r mov bp, offset regstring

344 03F3 B9 0004 mov cx, 4

345 03F6 E8 0054 call printstr

346 ;---

347

348 ;---

349 03F9 8B 1E 0184r mov bx, my_ss ;печать ss

350 03FD E8 0024 call encodeascii

351 0400 B6 02 mov dh, 2

352 0402 B2 15 mov dl, 21

353 0404 BD 0103r mov bp, offset regstring

354 0407 B9 0004 mov cx, 4

355 040A E8 0040 call printstr

356 ;---

357

358 ;---

359 040D 8B 1E 0180r mov bx, my_cs ;печать cs

360 0411 E8 0010 call encodeascii

361 0414 B6 02 mov dh, 2

362 0416 B2 1E mov dl, 30

363 0418 BD 0103r mov bp, offset regstring

364 041B B9 0004 mov cx, 4

365 041E E8 002C call printstr

366 ;---

367

368 0421 E9 FE47 jmp home

369

370 ;-----------------------------------------------------------------------------

371 0424 encodeascii proc

372 0424 56 push si

373 0425 BE 0000 mov si,0

374 0428 write: ;напечатает hex число в BX

375 0428 51 push cx

376 0429 52 push dx

377 042A 50 push ax

378 042B B5 04 mov ch,4

379 042D rotate:

380 042D B1 04 mov cl,4

381 042F D3 C3 rol bx,cl

382 0431 8A C3 mov al,bl

383 0433 24 0F and al,0Fh

384 0435 04 30 add al,30h

385 0437 3C 3A cmp al,'9'+1

386 0439 7C 02 jl print_it

387 043B 04 07 add al,07h

388 043D print_it:

389 043D 88 84 0103r mov regstring[si],al

390 0441 83 C6 01 add si,1

391 0444 FE CD dec ch

392 0446 75 E5 jnz rotate

393 0448 58 pop ax

394 0449 5A pop dx

395 044A 59 pop cx

396 044B 5E pop si

397 044C C3 ret

398 044D encodeascii endp

399

Turbo Assembler Version 3.1 24/12/00 23:09:51 Page 8

fin.ASM

400

401 044D printstr:

402 044D 8C D8 mov ax, ds

403 044F 8E C0 mov es, ax

404 0451 B4 13 mov ah, 13h

405 0453 B0 00 mov al, 0h

406 0455 BB 000E mov bx, 000eh

407 0458 CD 10 int 10h

408 045A C3 ret

409

410 ;--------------

411 =035B endres equ $-myproc

412 ;----------------------------------------------------------------

413 ; СЕКЦИЯ ИНИЦИАЛИЗИЦИИ

414 045B init:

415 ;проверка на ключ помощи

416 045B B9 0003 90 mov CX,help_string_len

417 045F BB 0081 mov BX,81h

418 0462 BE 0526r mov SI,offset help_string

419 0465 help_loop:

420 0465 8A 27 mov AH,byte ptr [BX]

421 0467 3A 24 cmp AH,byte ptr [SI]

422 0469 75 11 jne not_help

423 046B 43 inc BX

424 046C 46 inc SI

425 046D E2 F6 loop help_loop

426

427 046F BA 0529r lea DX,help_mes

428 0472 B9 012C 90 mov CX,help_mes_len

429 0476 E8 01DC call writeln

430 0479 EB 54 90 jmp quit

431 ;установление обработчика прерывания 2F для проверки повторной загрузки.

432 ;проверка на установку:

433 047C not_help:

434 047C B8 C000 mov AX,0c000h

435 047F CD 2F int 2fh

436 0481 3C FF cmp AL,0FFh

437 0483 74 40 je installed

438 ;установка своего значения прерывания 2fh

439 0485 B4 35 mov AH,35h

440 0487 B0 2F mov AL,2fh

441 0489 CD 21 int 21h

442 ;сохраним это значение в преременной old_2fh

443 048B 89 1E 018Ar mov word ptr old_2fh,BX

444 048F 8C 06 018Cr mov word ptr old_2fh+2,ES

445 ;установление своего обработчика прерывания 2fh

446 0493 B4 25 mov AH,25h

447 0495 B0 2F mov AL,2fh

448 0497 BA 02FBr mov DX,offset new_2fh

449 049A CD 21 int 21h

450 ;Заполнение вектора прерывания 09 на свой

451 049C B4 35 mov AH,35h

452 049E B0 09 mov AL,09h

453 04A0 CD 21 int 21h

454 ;получениение адреса обработчика прерывания 09 в ES:BX

455 04A2 89 1E 0186r mov word ptr old_09h,BX

456 04A6 8C 06 0188r mov word ptr old_09h+2,ES

Turbo Assembler Version 3.1 24/12/00 23:09:51 Page 9

fin.ASM

457 ;сохраним это значение в преременной

458 04AA B4 25 mov AH,25h

459 04AC B0 09 mov AL,09h

460 04AE BA 01EAr mov DX,offset new_09h

461 04B1 CD 21 int 21h

462

463 ;сообщение о том, что программа загружена

464 04B3 BA 04D4r lea DX,string_starting

465 04B6 B9 0022 90 mov CX,string_starting_len

466 04BA E8 0198 call writeln

467 04BD BA 0046 mov DX,(endres+10Fh)/16

468 04C0 B8 3100 mov AX,3100h

469 04C3 CD 21 int 21h

470 ;выгрузимся, оставив программу резидентной

471

472 ;выход в случае установки.

473 04C5 installed:

474 04C5 BA 04F6r lea DX,string_installed

475 04C8 B9 0030 90 mov CX,string_installed_len

476 04CC E8 0186 call writeln

477 04CF B8 4C00 quit: mov AX,4c00h

478 04D2 CD 21 int 21h

479

480 ;данные нерезидентной части программы

481 04D4 90 A5 A7 A8 A4 A5 AD+ string_starting db 'Резидентная программа стартовала',10,13

482 E2 AD A0 EF 20 AF E0+

483 AE A3 E0 A0 AC AC A0+

484 20 E1 E2 A0 E0 E2 AE+

485 A2 A0 AB A0 0A 0D

486 =0022 string_starting_len=$-string_starting

487 04F6 57 41 52 4E 49 4E 47+ string_installed db 'WARNING: Резидентная программа уже установлена',10,13

488 3A 20 90 A5 A7 A8 A4+

489 A5 AD E2 AD A0 EF 20+

490 AF E0 AE A3 E0 A0 AC+

491 AC A0 20 E3 A6 A5 20+

492 E3 E1 E2 A0 AD AE A2+

493 AB A5 AD A0 0A 0D

494 =0030 string_installed_len=$-string_installed

495 0526 20 2F 3F help_string db ' /?'

496 =0003 help_string_len=$-help_string

497 0529 84 A0 AD AD A0 EF 20+ help_mes db 'Данная программа является резидентом, ' ,10,13

498 AF E0 AE A3 E0 A0 AC+

499 AC A0 20 EF A2 AB EF+

500 A5 E2 E1 EF 20 E0 A5+

501 A7 A8 A4 A5 AD E2 AE+

502 AC 2C 20 0A 0D

503 0551 AE AD A0 20 A2 EB A2+ db 'она выводит в верхнем левом углу содержимое регистров МП',10,13

504 AE A4 A8 E2 20 A2 20+

505 A2 A5 E0 E5 AD A5 AC+

506 20 AB A5 A2 AE AC 20+

507 E3 A3 AB E3 20 E1 AE+

508 A4 A5 E0 A6 A8 AC AE+

509 A5 20 E0 A5 A3 A8 E1+

510 E2 E0 AE A2 20 8C 8F+

511 0A 0D

512 058B A2 EB A2 AE A4 20 E1+ db 'вывод содержимого регистров производится при нажатии ',10,13

513 AE A4 A5 E0 A6 A8 AC+

Turbo Assembler Version 3.1 24/12/00 23:09:51 Page 10

fin.ASM

514 AE A3 AE 20 E0 A5 A3+

515 A8 E1 E2 E0 AE A2 20+

516 AF E0 AE A8 A7 A2 AE+

517 A4 A8 E2 E1 EF 20 AF+

518 E0 A8 20 AD A0 A6 A0+

519 E2 A8 A8 20 0A 0D

520 05C2 AA AB A0 A2 A8 E8 A8+ db 'клавиши F12,при повторных нажатиях клавиши F12, выводятся ',10,13

521 20 46 31 32 2C AF E0+

522 A8 20 AF AE A2 E2 AE+

523 E0 AD EB E5 20 AD A0+

524 A6 A0 E2 A8 EF E5 20+

525 AA AB A0 A2 A8 E8 A8+

526 20 46 31 32 2C 20 A2+

527 EB A2 AE A4 EF E2 E1+

528 EF 20 20 0A 0D

529 05FF A8 A7 AC A5 AD A5 AD+ db 'измененные значения регистров МП',10,13

530 AD EB A5 20 A7 AD A0+

531 E7 A5 AD A8 EF 20 E0+

532 A5 A3 A8 E1 E2 E0 AE+

533 A2 20 8C 8F 0A 0D

534 0621 8F E0 AE A3 E0 A0 AC+ db 'Программа выгружается по сочетанию клавиш Ctrl+u/U',10,13

535 AC A0 20 A2 EB A3 E0+

536 E3 A6 A0 A5 E2 E1 EF+

537 20 AF AE 20 E1 AE E7+

538 A5 E2 A0 AD A8 EE 20+

539 AA AB A0 A2 A8 E8 20+

540 43 74 72 6C 2B 75 2F+

541 55 0A 0D

542

543 =012C help_mes_len=$-help_mes

544 ;процедура для вывода строки на экран.

545 ;вход : CX - длина сообщения DX - смещение.

546 0655 writeln proc

547 0655 B4 40 mov AH,40h

548 0657 BB 0001 mov BX,1

549 065A CD 21 int 21h

550 065C C3 ret

551 065D writeln endp

552 065D text ends

553 end myproc

Turbo Assembler Version 3.1 24/12/00 23:09:51 Page 11

Symbol Table

Symbol Name Type Value

??DATE Text "24/12/00"

??FILENAME Text "fin "

??TIME Text "23:09:51"

??VERSION Number 030A

@CPU Text 0101H

@CURSEG Text TEXT

@FILENAME Text FIN

@WORDSIZE Text 2

ALTQ Near TEXT:0279

ALT_Q Number 0016

ENCODEASCII Near TEXT:0424

ENDI Near TEXT:0274

ENDRES Number 035B

HELP_LOOP Near TEXT:0465

HELP_MES Byte TEXT:0529

HELP_MES_LEN Number 012C

HELP_STRING Byte TEXT:0526

HELP_STRING_LEN Number 0003

HOME Near TEXT:026B

INIT Near TEXT:045B

INSTALLED Near TEXT:04C5

L Near TEXT:02CD

MESR Byte TEXT:018E

MESRLEN Number 005C

MYPROC Near TEXT:0100

MY_AX Word TEXT:016E

MY_BP Word TEXT:017C

MY_BX Word TEXT:0170

MY_CS Word TEXT:0180

MY_CX Word TEXT:0172

MY_DI Word TEXT:0178

MY_DS Word TEXT:017E

MY_DX Word TEXT:0174

MY_ES Word TEXT:0182

MY_SI Word TEXT:0176

MY_SP Word TEXT:017A

MY_SS Word TEXT:0184

NEW_09H Near TEXT:01EA

NEW_2FH Near TEXT:02FB

NOT_HELP Near TEXT:047C

NOT_MY Near TEXT:0303

NOT_U Near TEXT:026B

OLD_09H Dword TEXT:0186

OLD_2FH Dword TEXT:018A

PRINTSTR Near TEXT:044D

PRINT_IT Near TEXT:043D

PRINT_REGS Near TEXT:0308

PRINT_REGS1 Near TEXT:0276

QUEUE_CONT Near TEXT:02AB

QUEUE_END Near TEXT:02C0

QUIT Near TEXT:04CF

REGSTRING Byte TEXT:0103

REGS_S1 Byte TEXT:0108

REGS_S1_LEN Number 0022

Turbo Assembler Version 3.1 24/12/00 23:09:51 Page 12

Symbol Table

REGS_S2 Byte TEXT:012A

REGS_S2_LEN Number 0022

REGS_S3 Byte TEXT:014C

REGS_S3_LEN Number 0022

ROTATE Near TEXT:042D

STRING_INSTALLED Byte TEXT:04F6

STRING_INSTALLED_LEN Number 0030

STRING_STARTING Byte TEXT:04D4

STRING_STARTING_LEN Number 0022

WRITE Near TEXT:0428

WRITELN Near TEXT:0655

Groups & Segments Bit Size Align Combine Class

TEXT 16 065D Para none CODE

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

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

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

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