-Рубрики

 -Цитатник

Блокнот ( Notepad): полезные функции и другие программы - (0)

Блокнот ( Notepad): полезные функции Блокнот (англ. Notepad) — простой текстов...

Ответы на вопросы - (0)

1) нигде 2) blog.ru знает, наверное 3) нельзя 4) нельзя Здесь находятся вопросы

О ЛЮБВИ ... - (1)

О ЛЮБВИ ... О совсем другой любви знаете ли вы? О любви, в которой чудо просыпается внутри,...

Теги в оформлении постов в блоге - (0)

ВСЕ о тегах и оформлении постов Элементарные формы оформления   ...

Help по ЛиРу - (1)

советы по ЛиРу   Что делать, если забыли пароль? Общие вопросы Что та...

 -Видео

Я специалист
Смотрели: 7 (0)
Ночь
Смотрели: 0 (0)
Приветствие
Смотрели: 0 (0)
Хочу сказать
Смотрели: 0 (0)
Моя линия жизни
Смотрели: 350 (0)

 -Фотоальбом

Посмотреть все фотографии серии 2019
2019
06:33 15.09.2019
Фотографий: 21
Посмотреть все фотографии серии 2018
2018
06:46 01.10.2018
Фотографий: 10
Посмотреть все фотографии серии 2017
2017
09:10 24.05.2017
Фотографий: 5

 -неизвестно

 -Поиск по дневнику

Поиск сообщений в Aleksey_Malysh

 -Подписка по e-mail

 

 -Интересы

научная деятельность конструирование языки про

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 26.05.2010
Записей: 5010
Комментариев: 127
Написано: 5912


Копирование содержимое экрана монитора в файл *.BMP

Пятница, 25 Января 2013 г. 12:36 + в цитатник

 

Малыш Алексей Александрович

Aleksey_Malysh

 

Я разработал программу, которая копирует содержимое экрана монитора на диск в файл типа BMP. Программа написана на языке Ассемблер. В данной программе применил тип цветности 256К, чтобы использовать другой тип цветности надо переписывать программу, но скажу, эту программу можно использовать с любым типом цветности, только файл на диске будет записываться с цветностью 256К. Эту программу можно использовать, как подпрограмму вызывая из любых других языков программирования.

Дальше идет код программы.

 

                JUMPS

                .modellarge

                .stack100h

                .data

pixel            db 646 dup(?)

;fileheader      db 0

colm             db 1

FileType         dw 19778

FileSize         dd 308278   ;размер всего файла

Reserved1        dw 0

Reserved2        dw 0

OffsetBits       DD 1078

;infoheader      db 0

InfoSize         dd 40

Wh               dd 640  ;ширина X

Ht               dd 480  ;высота Y

Planes           dw 1

BitCount         dw 8

Compression      dd 0

SizeImage        dd 307200

XPelsPerMeter    dd 0

YPelsPerMeter    dd 0

ColorsUsed       dd 100h

ColorsImportant  dd 100h

rgb              db 0,0,0,0

                 db 0ffh,0,0,0

                 db 0,0ffh,0,0

                 db 0ffh,0ffh,0,0

                 db 0,0,0ffh,0

                 db 0ffh,0,0ffh,0

                 db 0,50h,80h,0

                 db 0bah,0bch,0bah,0

                 db 80h,80h,80h,0

                 db 0ffh,0ffh,80h,0

                 db 80h,0ffh,80h,0

                 db 0ffh,0ffh,80h,0

                 db 80h,80h,0ffh,0

                 db 0ffh,80h,0ffh,0

                 db 0,0ffh,0ffh,0

                 db 0ffh,0ffh,0ffh,0 ;белый

                 db 0BBh,0CDh,0CDh,0;   //ЧЕРНЫЙ     0     0

                 db 0B2h,0C5h,0C4h,0;  //СИНИЙ   1

                 db 049h,062h,06Ah,0;  //ЗЕЛЕНЫЙ    2     1

                 db 031h,038h,041h,0; //ГОЛУБОЙ      3     8

                 db 083h,083h,09Ch,0;  //КРАСНЫЙ  4          2

                 db 041h,05Ah,062h,0;  //МАЛИНОВЫЙ       5  9

                 db 0AFh,0BBh,0CFh,0;  //КОРИЧНЕВЫЙ  6     3

                 db 08Eh,0C6h,0DFh,0;  //СВЕТЛО-СЕРЫЙ   7  10

                 db 050h,077h,08Eh,0; //ТЕМНО-СЕРЫЙ  8      4

                 db 085h,079h,07Bh,0; //СВЕТЛО-СИНИЙ    9  11

                 db 08Dh,09Dh,0A3h,0; //СВЕТЛО-ЗЕЛЕНЫЙ 10    5

                 db 079h,082h,09Ch,0;//СВЕТЛО-ГОЛУБОЙ    11   12

                 db 041h,052h,059h,0; //СВЕТЛО-КРАСНЫЙ  12  6

                 db 049h,05Ah,06Ah,0; //СВЕТЛО-МАЛИНОВЫЙ   13  13

                 db 096h,0B3h,0CDh,0; //ЖЕЛТЫЙ  14      7

                 db 0A2h,0B4h,0B9h,0;  //БЕЛЫЙ       15

                 db 062h,06Ah,072h,0;   //ЧЕРНЫЙ     0     0

                 db 0DEh,0DEh,0E6h,0;  //СИНИЙ   1

                 db 049h,062h,073h,0;  //ЗЕЛЕНЫЙ    2     1

                 db 0D5h,0DEh,0D5h,0; //ГОЛУБОЙ      3     8

                 db 0D5h,0D6h,0DEh,0;  //КРАСНЫЙ  4          2

                 db 041h,03Dh,041h,0;  //МАЛИНОВЫЙ       5  9

                 db 067h,082h,09Ch,0;  //КОРИЧНЕВЫЙ  6     3

                 db 073h,07Bh,094h,0;  //СВЕТЛО-СЕРЫЙ   7  10

                 db 06Ah,074h,07Ah,0; //ТЕМНО-СЕРЫЙ  8      4

                 db 031h,031h,039h,0; //СВЕТЛО-СИНИЙ    9  11

                 db 087h,0B3h,0CEh,0; //СВЕТЛО-ЗЕЛЕНЫЙ 10    5

                 db 083h,0A2h,0BEh,0;//СВЕТЛО-ГОЛУБОЙ    11   12

                 db 06Ah,073h,08Ch,0; //СВЕТЛО-КРАСНЫЙ  12  6

                 db 051h,06Ah,07Bh,0; //СВЕТЛО-МАЛИНОВЫЙ   13  13

                 db 052h,06Ah,07Ah,0; //ЖЕЛТЫЙ  14      7

                 db 05Ah,062h,063h,0;  //БЕЛЫЙ       15

                 db 052h,05Ah,062h,0;   //ЧЕРНЫЙ     0     0

                 db 041h,041h,052h,0;  //СИНИЙ   1

                 db 053h,09Fh,0C3h,0;  //ЗЕЛЕНЫЙ    2     1

                 db 04Ah,051h,05Ah,0; //ГОЛУБОЙ      3     8

                 db 03Ah,07Ch,0B0h,0;  //КРАСНЫЙ  4          2

                 db 0CDh,0D5h,0D5h,0;  //МАЛИНОВЫЙ       5  9

                 db 050h,06Ah,083h,0;  //КОРИЧНЕВЫЙ  6     3

                 db 09Ch,0A8h,0B4h,0;  //СВЕТЛО-СЕРЫЙ   7  10

                 db 083h,07Bh,091h,0; //ТЕМНО-СЕРЫЙ  8      4

                 db 05Ch,0C5h,0E3h,0; //СВЕТЛО-СИНИЙ    9  11

                 db 04Eh,078h,083h,0; //СВЕТЛО-ЗЕЛЕНЫЙ 10    5

                 db 087h,094h,09Ch,0;//СВЕТЛО-ГОЛУБОЙ    11   12

                 db 0D5h,0D5h,0D5h,0; //СВЕТЛО-КРАСНЫЙ  12  6

                 db 0FFh,080h,0FFh,0; //СВЕТЛО-МАЛИНОВЫЙ   13  13

                 db 041h,052h,062h,0; //ЖЕЛТЫЙ  14      7

                 db 039h,031h,039h,0;  //БЕЛЫЙ       15

                 db 0CDh,0CEh,0C5h,0;

                 db 0B1h,0BDh,0BCh,0;

                 db 06Eh,06Ah,062h,0;

                 db 06Ah,0B3h,0D3h,0;

                 db 051h,062h,07Bh,0;

                 db 062h,073h,08bh,0;

                 db 073h,073h,08bh,0;

                 db 05ah,05ch,05eh,0;

                 db 04ah,03fh,045h,0;

                 db 041h,041h,05fh,0;

                 db 0e6h,0e6h,0e6h,0;

                 db 0deh,0e6h,0deh,0;

                 db 038h,039h,04ah,0;

                 db 049h,05ah,073h,0;

                 db 0bdh,0d6h,0e0h,0;

                 db 083h,09fh,0b4h,0;

                 db 073h,084h,094h,0;

                 db 077h,08dh,0a4h,0;

                 db 039h,06ah,09fh,0;

                 db 035h,049h,073h,0;

                 db 075h,09ch,0ach,0;

                 db 089h,0b5h,0c4h,0;

                 db 06ah,07bh,08bh,0;

                 db 062h,06ah,0a4h,0;

                 db 0b1h,0cah,0deh,0;

                 db 062h,06ah,083h,0;

                 db 0d5h,0deh,0e6h,0;

                 db 0bah,0d0h,0d5h,0;

                 db 083h,08dh,091h,0;

                 db 062h,073h,083h,0;

                 db 07bh,0a4h,0beh,0;

                 db 052h,052h,057h,0;

                 db 052h,05ah,073h,0;

                 db 09ch,0a5h,0aah,0;

                 db 05ah,062h,06ah,0;

                 db 051h,084h,0b0h,0;

                 db 051h,088h,090h,0;

                 db 0d5h,0e6h,0e6h,0;

                 db 0a6h,0bdh,0c5h,0;

                 db 04ah,062h,086h,0;

                 db 05ah,086h,09eh,0;

                 db 09ch,04eh,073h,0;

                 db 036h,03eh,05ah,0;

                 db 0cdh,0d5h,0cdh,0;

                 db 06ah,073h,083h,0;

                 db 08dh,089h,09ch,0;

                 db 0b0h,0b4h,0b3h,0;

                 db 0c5h,0c5h,0c4h,0;

                 db 094h,094h,0a4h,0;

                 db 035h,05ah,08ah,0;

                 db 0deh,0e6h,0e6h,0;

                 db 04ah,048h,052h,0;

                 db 067h,08eh,0a4h,0;

                 db 0cdh,0deh,0deh,0;

                 db 09ch,0a8h,0c0h,0;

                 db 062h,05eh,05fh,0;

                 db 074h,07bh,08bh,0;

                 db 072h,0c5h,0e0h,0;

                 db 0deh,0deh,0d5h,0;

                 db 04eh,0c9h,0e5h,0;

                 db 039h,039h,039h,0;

                 db 04ah,052h,062h,0;

                 db 05ah,06ah,07bh,0;

                 db 073h,073h,083h,0;

                 db 052h,046h,045h,0;

                 db 0bfh,0c5h,0ceh,0;

                 db 05ah,062h,07bh,0;

                 db 06bh,06ah,081h,0;

                 db 062h,073h,07ah,0;

                 db 073h,0a6h,0bfh,0;

                 db 08eh,0a2h,0bdh,0;

                 db 050h,09fh,0cfh,0;

                 db 0cdh,0deh,0d5h,0;

                 db 038h,04dh,07bh,0;

                 db 06ah,07eh,094h,0;

                 db 04ah,047h,05ch,0;

                 db 094h,09dh,0a2h,0;

                 db 090h,0ddh,0e5h,0;

                 db 0d5h,0deh,0deh,0;

                 db 062h,07bh,08dh,0;

                 db 041h,040h,04ah,0;

                 db 039h,039h,041h,0;

                 db 0a5h,0a4h,0a8h,0;

                 db 089h,094h,0a4h,0;

                 db 031h,039h,039h,0;

                 db 08bh,08eh,091h,0;

                 db 0c5h,0bdh,0c5h,0;

                 db 07bh,084h,094h,0;

                 db 0b7h,0bdh,0c5h,0;

                 db 03ah,08bh,0c1h,0;

                 db 0a4h,0bfh,0cfh,0;

                 db 0c5h,0d3h,0d5h,0;

                 db 079h,08ch,09ch,0;

                 db 0d6h,0d5h,0cdh,0;

                 db 039h,041h,04ah,0;

                 db 08ch,084h,0b4h,0;

                 db 076h,084h,08bh,0;

                 db 076h,0a4h,0b4h,0;

                 db 05ah,06ah,072h,0;

                 db 83h,08bh,09ch,0;

                 db 041h,049h,06ah,0;

                 db 054h,06ah,093h,0;

                 db 051h,08dh,09eh,0;

                 db 0cch,0e1h,0e6h,0;

                 db 0c5h,0cdh,0cdh,0;

                 db 052h,062h,073h,0;

                 db 062h,06ah,07bh,0;

                 db 06ah,09eh,0b0h,0;

                 db 076h,092h,0afh,0;

                 db 06ah,07bh,083h,0;

                 db 06dh,05eh,058h,0;

                 db 068h,091h,0afh,0;

                 db 07bh,07bh,094h,0;

                 db 0deh,0d5h,0d5h,0;

                 db 04d,050h,07eh,0;

                 db 052h,052h,062h,0;

                 db 060h,048h,049h,0;

                 db 0afh,0b4h,0bdh,0;

                 db 03ch,062h,099h,0;

                 db 037h,041h,062h,0;

                 db 0d7h,0d0h,0c5h,0;

                 db 05eh,052h,055h,0;

                 db 054h,04fh,06ah,0;

                 db 0bdh,0bdh,0bbh,0;

                 db 08fh,0ach,0c1h,0;

                 db 05ah,076h,08eh,0;

                 db 06ah,0a4h,0beh,0;

                 db 087h,094h,076h,0;

                 db 056h,048h,052h,0;

                 db 072h,0d9h,0e6h,0;

                 db 052h,062h,06ah,0;

                 db 04ah,052h,059h,0;

                 db 0a6h,0abh,0b4h,0;

                 db 0bdh,0c6h,0c4h,0;

                 db 050h,08dh,0c0h,0;

                 db 039h,031h,031h,0;

                 db 05ah,073h,083h,0;

                 db 0a6h,0abh,0c2h,0;

                 db 04ch,0bbh,0e0h,0;

                 db 039h,04ah,052h,0;

                 db 096h,093h,092h,0;

                 db 047h,05ah,084h,0;

                 db 062h,07bh,083h,0;

                 db 094h,0a0h,0ach,0;

                 db 0b1h,0c5h,0d0h,0;

                 db 053h,05ah,07fh,0;

                 db 075h,07dh,083h,0;

                 db 041h,04ah,052h,0;

                 db 07bh,0b4h,0d0h,0;

                 db 039h,041h,041h,0;

                 db 076h,07bh,07ah,0;

                 db 09dh,09bh,0ach,0;

                 db 05ch,05ah,06ah,0;

                 db 0a8h,0ach,0abh,0;

                 db 038h,04fh,086h,0;

                 db 094h,0b6h,0c4h,0;

                 db 05ah,094h,09fh,0;

                 db 083h,083h,083h,0;

                 db 05eh,0d5h,0e6h,0;

                 db 09fh,0b4h,0c5h,0;

                 db 088h,0beh,0d2h,0;

                 db 07bh,0adh,0c1h,0;

                 db 08dh,08bh,0a4h,0;

                 db 05ah,08bh,092h,0;

                 db 04ah,05ah,062h,0;

                 db 062h,086h,092h,0;

                 db 041h,04ah,05bh,0;

                 db 084h,083h,093h,0;

                 db 067h,062h,06ah,0;

                 db 0a4h,0e0h,0e5h,0;

                 db 04ah,04ah,049h,0;

                 db 066h,08fh,08ch,0;

                 db 055h,047h,05dh,0;

                 db 099h,0beh,0cfh,0;

                 db 05ah,06ah,083h,0;

                 db 041h,04ah,073h,0;

                 db 05ah,073h,07ah,0;

                 db 08fh,0a6h,0b4h,0;

                 db 05eh,062h,087h,0;

                 db 03ch,0a8h,0d5h,0;

                 db 041h,04ah,04ah,0;

                 db 0c5h,0cdh,0c5h,0;

                 db 046h,03ch,039h,0;

                 db 0a4h,0c9h,0dfh,0;

                 db 038h,04ah,05ah,0;

                 db 083h,08bh,0a5h,0;

                 db 088h,09eh,0ach,0;

                 db 083h,0ach,0c2h,0;

                 db 053h,0b1h,0d4h,0;

                 db 076h,09ch,0b4h,0;

                 db 06dh,063h,062h,0;

                 db 0c5h,0d5h,0cdh,0;

                 db 0,0,0,0

ntvr             db 0

avs              db 0

handle           dw 0

path             db "scr"

path1            db 49

path2            db 48

path3            db 48

                 db ".bmp",0,0,0,0,0,0,0

kx               dw 0

ky               dw 0

;pixel            db 0

col              db 0

 

                .code

                .486

Start:

                pushad

                mov ax,@DATA

                mov ds,ax

                xor ax,ax

                mov ds:[kx],ax

                mov ds:[ky],ax

                ;--------

                mov ah,0fh

                int 10h

                mov ds:[ntvr],al

                mov ds:[avs],bh

                ;Начинается пример

                mov ah,0

                mov al,12h

                int 10h

                xor bh,bh

                mov bl,1

sst:            push bx

                mov ah,2

                mov bh,avs

                mov dl,0

                mov dh,bl

                int 10h

                mov ah,9

                mov al,219

                mov cx,80

                int 10h

                pop bx

                inc bx

                cmp bx,10h

                jnz sst

                ;------- Закончился пример

                ;-Пример изменение цвета

                mov al,0

                mov ds:[col],al

stcr:           mov cx,0

                mov si,offset rgb

isc:            mov al,ds:[si]

                mov bl,ds:[col]

                add al,bl

                mov ds:[si],al

                inc si

                inc cx

                cmp cx,64

                jnz isc

                ;------------------------

m0:             mov dx,offset path

                mov ah,5bh

                mov cx,20h

                int 21h

                jnc m1

                mov al,ds:[path3]

                inc al

                cmp al,58

                jnz m2

                mov al,ds:[path2]

                inc al

                cmp al,58

                jnz m5

                mov al,ds:[path1]

                inc al

                mov ds:[path1],al

                mov al,48

m5:             mov ds:[path2],al

                mov al,48

m2:             mov ds:[path3],al

                jmp m0

m1:             mov ds:[handle],ax

                mov ah,40h

                mov bx,ds:[handle]

                mov dx,offset FileType

                mov cx,1078

                int 21h

                ;-----------

                mov ax,offset pixel

                mov di,ax

                mov ax,479 ;ds:[ky]

                mov bx,0 ;ds:[kx]

loop1:          push ax

                push bx

                call ReadPixel

                mov ds:[di],al

;                mov dx,di

;                mov ah,40h

;                mov bx,ds:[handle]

;                mov cx,1

;                int 21h

                inc di

                pop bx

                pop ax

                inc bx

                cmp bx,640

                jnz m4

                push ax

                mov ax,offset pixel

                mov dx,ax

                mov di,ax

                push di

                mov ah,40h

                mov bx,ds:[handle]

                mov cx,640

                int 21h

                pop di

                pop ax

                xor bx,bx

                dec ax

                cmp ax,0ffffh

                jz quit

;m4:             mov ds:[ky],ax

;                mov ds:[kx],bx

m4:             jmp loop1

                ;-----------

quit:           mov ah,3eh

                mov bx,ds:[handle]

                int 21h

                ;----------

                mov al,ds:[col]

                inc al

                mov ds:[col],al

                mov cl,ds:[colm]

                cmp al,cl

                jnz stcr

                ;-----------

                mov ah,0

                mov al,ds:[ntvr]

                int 10h

                popad

                mov ax, 4c00h   ;Нормальное завершение программы

                int 21h

 

;============================================

bpl             equ 80

oo              equ 0

vbs             equ 0a000h

Adr10           PROC NEAR

                mov cl,bl

                push dx

                mov dx,bpl

                mul dx

                pop dx

                shr bx,1

                shr bx,1

                shr bx,1

                add bx,ax

                add bx,oo

                mov ax,vbs

                mov es,ax

                and cl,7

                xor cl,7

                mov ah,1

                ret

Adr10           ENDP

;---------------------

ReadPixel       PROC NEAR

                push si

;               mov ax,     ;координата Y

;               mov bx,     ;координата X

                call Adr10

                mov ch,ah

                shl ch,cl

                mov si,bx

                xor bl,bl

                mov dx,3ceh

                mov ax,304h

lo1:            out dx,ax

                mov bh,es:[si]

                and bh,ch

                neg bh

                rol bx,1

                dec ah

                jge lo1

                mov al,bl

                xor ah,ah

                pop si

                ret

ReadPixel       ENDP

 

END Start

 

 

Рубрики:  Программирование


Процитировано 2 раз

 

Добавить комментарий:
Текст комментария: смайлики

Проверка орфографии: (найти ошибки)

Прикрепить картинку:

 Переводить URL в ссылку
 Подписаться на комментарии
 Подписать картинку