49902 (Програма Txtprint.com - резидентна програма для швидкого і зручного друкування виборчого тексту з екрану), страница 4

2016-07-30СтудИзба

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

Документ из архива "Програма Txtprint.com - резидентна програма для швидкого і зручного друкування виборчого тексту з екрану", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "курсовые/домашние работы", в предмете "информатика, программирование" в общих файлах.

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

Текст 4 страницы из документа "49902"

mov di,int_09h_vect-shift

call cx

mov al,2fh ; Восстановити вектор преривання Int2fh.

mov di,int_2fh_vect-shift

call cx

mov al,28h ; Восстановити вектор преривання Int28h.

mov di,int_28h_vect-shift

call cx

mov al,08h ; Восстановити вектор преривання Int08h.

mov di,int_08h_vect-shift

call cx

cli

push cs

pop es

mov ah,49h ; Освободити займаєму пам`ять.

int 21h

ret

remove_mess db ' has been',0,'REMOVED form memory. ',0

notremove_mess db ' UNABLE to',0,'remove. Not on the top. ',0

remove endp

;********************* Кінець файлу REMOVE.ASM ***********************

; Файл MESSAGE.ASM

; Модуль основної програми.

;*************************************************************

xchgmess proc

mov di,code_table-shift ; Загрузити сміщення

mov si,attribute_table-shift ; таблиць кодів і

; атрибутів вікна повідомлення.

mov cx,6

mov dh,10

loop_1: ; Цикл по строках.

push cx

mov cx,30

mov dl,25

loop_2: ; Цикл по стовбцях.

push cx

mov ah,2

call callvideo

mov ah,8

call callvideo

cmp dh,15

jb lab_1

cmp dl,27

jb exch_noth

jmp short exch_attr

lab_1:

cmp dh,11

jb lab_2

cmp dl,52

ja exch_attr

jmp short exch_code

lab_2:

cmp dl,52

ja exch_noth

exch_code:

xchg al,byte ptr [di] ; Заменити код символа.

inc di

exch_attr:

xchg ah,byte ptr [si] ; Заменити атрибут.

inc si

exch_noth:

mov bl,ah ; Вивести символ.

mov cx,1

mov ah,9

call callvideo

inc dx

pop cx

loop loop_2

inc dh

pop cx

loop loop_1

mov dx,1900h ; Убрати курсор.

mov ah,02h

call callvideo

ret ; Вийти з процедури.

xchgmess endp

mess proc

push bp

mov bp,sp

push bx

mov bh,byte ptr ds:[current_video_page-shift]

mov bl,byte ptr ds:[attribute_table-shift]

push bx ; Вивести вікно повідомлення.

call xchgmess

pop bx

mov dx,0b29h ; Вивести текст повідомлення.

mov si,word ptr [bp+6]

call typestr

mov dx,0c1bh

call typestr

push bx ; Подати звуковий сигнал.

mov cx,2

mess_loop:

mov di,550

mov bx,30

call beep

mov di,1100

call beep

loop mess_loop

pop bx

wait_mess:

mov ah,0 ; Ждати натиснення клавиши.

int 16h

call xchgmess ; Восстановити екран.

pop bx

pop bp

ret 4 ; Вийти з процедури.

mess endp

; Таблиця атрибутів вікна повідомлення.

attribute_table db 29 dup(4eh),14 dup (206),13 dup (4eh)

db 07h,07h

db 28 dup (4eh)

db 07h,07h

db 4eh,26 dup (206),4eh

db 07h,07h

db 28 dup (4eh)

db 30 dup (07h)

; Образ атрибутів вікна повідомлення.

code_table db '============================'

db '!Screen Printer: !'

db '! !'

db '! press any key... !'

db '============================'

;****************** Кінець файлу MESSAGE.ASM *************************

; Файл TYPESTR.ASM

; Модуль основної програми.

;*************************************************************

typestr proc

typestr_loop:

mov ah,2 ; Встановити курсор в нужну позицию.

call callvideo

lodsb

or al,al ; Якщо зустрився кінець строки,

jz end_typestr ; то вихід.

mov cx,1

mov ah,9

call callvideo

inc dx ; Определити позицію для вивода

jmp short typestr_loop ; следуючого символу.

end_typestr:

push dx ; Убрати курсор.

mov dx,1900h

mov ah,2

call callvideo

pop dx

ret ; Вийти з процедури.

typestr endp

;******************** Кінець файлу TYPESTR.ASM ************************

; Файл BEEP.ASM

; Модуль основної програми.

;*************************************************************

beep proc

; Подає звуковой сигнал заданої частоти і тривання.

push bx ; Сохранити регістри.

push cx

push di

mov di,1000

mov al,0b6h ; Записати у регістр режим таймеру.

out 43h,al

mov dx,14h ; Делитель часу равен

mov ax,4f38h ; 1331000/частота.

div di

out 42h,al ; Записати молодший байт лічильника таймера 2.

mov al,ah

out 42h,al ; Записати молодший байт лічильника таймера 2.

in al,61h ; Считати поточну установку порта В

push ax ; й сохранити її.

or al,3

out 61h,al ; Включити динамик.

wait_beep:

mov cx,01fffh

speaker_on:

loop speaker_on

dec bx ; Лічильник тривалісті ісчерпан ?

jnz wait_beep ; Ні. Продовжити звучання.

pop ax ; Да. Восстановити похідну установку

out 61h,al ; Порта В.

pop di ; Восстановити всі регистри.

pop cx

pop bx

ret ; Вийти з процедури.

beep endp

;********************* Кінець файлу BEEP.ASM *************************

; Файл TELETYPE.ASM

; Модуль основної програми.

;*************************************************************

teletype proc

mov bh,0 ; Обрати нулеву відеосторінку.

cld

type_next_char:

lodsb ; Загрузити наступний символ в AL.

mov ah,0eh

cmp al,0 ; Якщо кінець строки, то вихід.

je end_teletype

call callvideo ; Вивести символ.

jmp short type_next_char

end_teletype:

ret

teletype endp

;******************** Кінець файлу TELETYPE.ASM **********************

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Нет! Мы не выполняем работы на заказ, однако Вы можете попросить что-то выложить в наших социальных сетях.
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
4121
Авторов
на СтудИзбе
667
Средний доход
с одного платного файла
Обучение Подробнее