.286 .model small .code ORG 100h start: call ggg db 'cool3.bmp',0 ggg: pop dx mov ax, 3d00h int 21h mov bx, ax mov ah, 3fh mov cx, bmphdr_len mov dx, offset cs:bmphdr int 21h mov ah, 3fh mov cx, bmpinfohdr_len mov dx, offset cs:bmpinfohdr int 21h mov ax, 13h int 10h mov cx, 256 loadpal: push cx mov ah, 3fh mov dx, offset cs:colortable mov cx, clrtab_len int 21h mov dx, 3c8h mov al, col out dx, al inc col mov dx, 3c9h mov al, rgbRed shr al, 2 out dx, al mov al, rgbGreen shr al, 2 out dx, al mov al, rgbBlue shr al, 2 out dx, al pop cx loop loadpal mov cx, 200 mov ax, 0a000h mov ds, ax mov di, 320*199 loadimage: push cx mov ah, 3fh mov cx, 320 mov dx, di int 21h sub di, 320 pop cx loop loadimage mov ah, 3eh int 21h mov ah, 08h int 21h mov ax,3 int 10h int 20h ; End of main proc ;------------------------------- ;------------------- ; Bitmap Header!!! ;------------------- bmphdr: bfType dw 0 ; //тип файла (для битового образа - BM) bfSize dd 0 ; //размер файла в dword dw 0,0 bfOffbits dd 0 ; //смещение данных битового образа от начала файла bmphdr_len EQU $-bfType ;------------------- ; Bitmap Info Header!!! ;------------------- bmpinfohdr: biSize dd 0 ; //число байт, занимаемых структурой biWidth dd 0 ; //ширина битового образа в пикселах biHeight dd 0 ; //высота битового образа в пикселах dw 0 ; //число битовых плоскостей устройства biBitCount dw 0 ; //число битов на пиксель dd 0 ; biCompression; //тип сжатия biSizeImage dd 0 ; //размер картинки в байтах dd 0,0 ; biXPelsPerMeter;//горизонтальное разрешение устройства, ; biYPelPerMeter; //вертикальное разрешение устройства, dd 0 ; biClrUsed; //число используемых цветов dd 0 ; biClrImportant; //число "важных" цветов bmpinfohdr_len EQU $-biSize ;------------------- ; Color table ;------------------- colortable: rgbBlue db 0; //интенсивность красного rgbGreen db 0; //интенсивность зеленого rgbRed db 0; //интенсивность голубого db 0; //не используется clrtab_len EQU $-rgbBlue col db 0 end start