Блокнот ( Notepad): полезные функции Блокнот (англ. Notepad) — простой текстов...
Ответы на вопросы - (0)1) нигде 2) blog.ru знает, наверное 3) нельзя 4) нельзя Здесь находятся вопросы
О ЛЮБВИ ... - (1)О ЛЮБВИ ... О совсем другой любви знаете ли вы? О любви, в которой чудо просыпается внутри,...
Теги в оформлении постов в блоге - (0)ВСЕ о тегах и оформлении постов Элементарные формы оформления ...
Help по ЛиРу - (1)советы по ЛиРу Что делать, если забыли пароль? Общие вопросы Что та...
Копирование содержимое экрана монитора в файл *.BMP |
Малыш Алексей Александрович
Я разработал программу, которая копирует содержимое экрана монитора на диск в файл типа 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
Рубрики: | Программирование |
Комментировать | « Пред. запись — К дневнику — След. запись » | Страницы: [1] [Новые] |