> Дык может так надо? > + как-то странно почему считаеться al=0? По скорости > одинаково что mov ahg,0a0h, что mov ax,0a000h > + Почему не записываеться 0 в порт 3c8h? А то зрен знает че > там может быть > + Вообще не понятно че-за хрень это такая, ну > устанавливается палитра ккак-то хитро вычисленая на > экран-то ничо не выводится!
;) ни4его страшного в ал=0 нет,все они 'так' пишут.
4то касается 3с8-не разбирался,главное работает.
но суть не в этом,главное DS!
как-то странно обращаются к пикселям 4ерез 4000h:ххххh???
вот исходник:
.286
Code Segment
Assume cs:Code
Org 100h
;-------------------------------------------------------------------------------
Main:
;-------------------------------------------------------------------------------
mov ah,0a0h
mov es,ax
add ax,ax
mov ds,ax
mov ax,13h
int 10h
mov dx,3c9h
L1:
mov al,bl
shr al,2
out dx,al
out dx,al
out dx,al
inc bx
jnz L1
Fx1:
xor bx,bx
mov dx,3
mov si,di
Matrix:
inc si
mov al,byte ptr [si-322]
add bx,ax
mov al,byte ptr [si+318]
add bx,ax
mov al,byte ptr [si-2]
add bx,ax
dec dx
jnz Matrix
mov al,byte ptr [di]
sub bx,ax
shl ax,2
sub bx,ax
shr bx,2
mov ax,bx
shr ax,8
sub bx,ax
mov ds:[di],bl
inc di
loop Fx1
Fx2:
xor bx,bx
mov si,di
inc si
mov al,byte ptr [si-320]
add bx,ax
mov al,byte ptr [si-1]
add bx,ax
mov al,byte ptr [si+1]
add bx,ax
mov al,byte ptr [si+320]
add bx,ax
shr bx,2
mov ds:[di],bl
inc di
loop Fx2
dec cx
rep movsb
in al,60h
dec al
jnz Fx1
mov al,03h
int 10h
ret
;-------------------------------------------------------------------------------
Code EndS
End Main
|