.MODEL SMALL .STACK 100H .DATA ;цвет хр ится в переверутом виде ;т к к к причтеии в п мяти о перевор чив ется ;еще р з str2 db 'CopyRight Shadow Maverick -=RIA=-' file_name db 'aa.bmp',0 point_fname dd file_name e db 0,0,0,0,0,0,0 string db 3 dup (0) e1 db 0,0,0,0,0,0,0 len_string=$-string dfgh db 0,0,0,0,0,0,0,0,0 point_string dw string dbf db 0,0,0,0,0,0,0,0 handle dw 0 size_f dw 16383;р змер чит емой и выводимой ;ифом ции вот и епоято ;почему 16383 если больше или меьше ;то получится смещеие ;выводимой ифом ции 16383*4=65532 ;и почему оо зер кльо отобр жео по горизо и вертик л .CODE START: .386 mov ax,@data ;иици лиз сегме д ых mov ds,ax ; mov ax,4f02h mov bx,10fh int 10h mov ax,0a000h ;иици лизир сегмет es mov es,ax ; видеоп мять mov ah,4fh ; mov al,05 ;62454 mov bh,0 ;--------- mov bl,0 ;--------- mov dx,0 ;переосим око оди ш г int 10h ;открыв ем ф йл ;только для чтеия mov al,00h lds dx,point_fname ;ук з тель имя ф йл mov ah,3dh ; int 21h ; mov handle,ax ;дескриптор ;уст овим ч ло иформ ции о пикселях цвет чи с дрес в ф йле 036h mov bx,handle mov al,0 mov cx,0 mov dx,036h mov ah,42h int 21h cyc: xor di,di ; ч ло в видеоп мяти 0000:0000 cycl: mov bx,handle mov cx,3 ;чит ем по 3 б йт mov dx,offset point_string;пих ем сюды push dx ;вот место ?*? mov ah,3fh int 21h ;выпихив ем от сюд pop si ;ето с мое итересое ?*? без етого почемуто ;отк зыв ется р бот ть если е использов ть ;прямую з грузку xor cx,cx mov cx,3 ;грузим rep movsb ;грузим счит ые 3 б йт с DS:SI в ES:DI cmp size_f,0;пок е 0 ст ет je ew inc di ;смещеие в видеобуффере sub size_f,1;вычит ем из р змер 1 jmp cycl ew: mov size_f,16383;вост влив ем р змер в з д xor di,di;обуляем видео буффер т/е/ стр ив ем 0 дрес смещеие mov ah,4fh ; mov al,05 ;62454 mov bh,0 ;--------- mov bl,0 ;--------- mov dx,1 ;переосим око оди ш г int 10h ;BIOS прерыв ие VIDEO xor di,di cycl1: mov bx,handle ;дескриптор ф йл mov cx,3 ;чит ем по 3 б йт mov dx,offset point_string push dx ;вот место ?*? mov ah,3fh int 21h pop si ;ето с мое интересное ?*? без етого почемуто ;отк зыв ется р бот ть если не использов ть ;прямую з грузку xor cx,cx mov cx,3 ;грузим rep movsb ;грузим счит ные 3 б йт с DS:SI в ES:DI inc di ;смещение в видео буфф cmp size_f,0 je ex23 sub size_f,1 jmp cycl1 ex23: mov size_f,16383 xor di,di mov ah,4fh ; mov al,05 ; mov bh,0 ;--------- mov bl,0 ;--------- mov dx,2 ;переносим окно н один ш г int 10h xor di,di cycl2: mov bx,handle mov cx,3 ;чит ем по 3 б йт mov dx,offset point_string push dx ;вот место ?*? mov ah,3fh int 21h pop si ;ето с мое интересное ?*? без етого почемуто ;отк зыв ется р бот ть если не использов ть ;прямую з грузку xor cx,cx mov cx,3 ;грузим rep movsb ;грузим счит ные 3 б йт с DS:SI в ES:DI inc di ;смещение в видео буфф cmp size_f,0 je ex25 sub size_f,1 jmp cycl2 ex25: mov size_f,16383 xor di,di mov ah,4fh ; mov al,05 ; mov bh,0 ;--------- mov bl,0 ;--------- mov dx,3 ;переносим окно н один ш г int 10h xor di,di cycl3: mov bx,handle mov cx,3 ;чит ем по 3 б йт mov dx,offset point_string push dx ;вот место ?*? mov ah,3fh int 21h pop si ;ето с мое интересное ?*? без етого почемуто ;отк зыв ется р бот ть если не использов ть ;прямую з грузку xor cx,cx mov cx,3 ;грузим rep movsb ;грузим счит ные 3 б йт с DS:SI в ES:DI inc di ;смещение в видео буфф cmp size_f,0 je exit sub size_f,1 jmp cycl3 exit: mov ah,0 ;wait int 16h ;key mov ax,3 ;close int 10h ;graph mov ah,4ch ;| mov al,0 ;| -EXIT to DOS; int 21h ;|/ END START