RE:Cambiar propiedades de graficos con assembler
Yo trabajo con Turbo Pascal, que me facilita Turbo Assembler.
Aquí va.
Formula para grabar un pixel en modo 13h (320x200x256 colores)
mem[$A000:Y*320+X]:=Color;
Donde X va del 0 al 319, Y va del 0 al 199 y color va del 0 al 255.
Procedure Pixel(X, Y: Integer; Color: Byte); Assembler;
asm
mov ax, $A000 { trabajar siempre con el registro AX }
mov es, ax { Posicion de memoria en ES que sea igual a $A000 }
mov ax, Y { AX = Y }
mov bx, 320 { BX = 320 }
mul bx { Multiplica AX por bx (siempre trabaja con AX) }
mov cx, X { CX = X }
add ax, X { AX = AX + CX }
mov di, ax { Desplazamiento de memoria (offset) en el DIndex = AX }
mov al, Color { AL (Byte) = Color }
mov es:[di], al { Ubicacion de memoria con el formato es:[di] = Color }
end;
Si no por el BIOS pero es muy lento y solo funciona en monitores que no sean Hercules Monocromaticos, pero en cualquier otro modo:
Procedure Pixel(X, Y: Integer; Color: X); Assembler;
asm
mov ah, $C
mov al, Color
mov bx, X
mov cx, Y
int 10h
end;
Cualquier cosa enviame un correo