wypełnianie ekranu kolorem

0

piszę gierke w C i mam wstawkę wypełniająca pamięć karty kolorem;
mov AL, kolor
mov AH, AL
mov CX, 16000
cld
rep stosw
Wszystko działa ale zastanawiam się czy nie można by Od razu za pomocą instrukcji 32 bitowych czyli rep movsd. Niestety wtedy pojawia się pewien problem: ekran jest wypełniany pasami czyli: dany kolor-czarny-dany kolor-czarny itd. Dzieje się tak poniewaź starsze 2 bajty rejestru EAX są ustawiane na 0. Z AX nie ma problemu: wpisuje mov AH, kolor mov AL, AH. Ale jak dobrać się do 2 pierwszych bajtów rejestru EAX ??

0

Użyć bezpośrednio opcode...

mov eax,12345678h

db 66h,B8h,78h,56h,34h,12h

// jesli piszesz pod pmode to pomiń 66 z początku (jak mi pewne źródło podało)

0

No tak ale kolor ma być argumentem funkcji i właśnie poszukuje wzoru jak taki coś obliczyć.

0

żaden problem

mov al,kolor
mov ah,al
shl eax,16
mov al,kolor
mov ah,al
mov cx,8000
cld
rep stosd
0

mov al,kolor
mov ah,al
mov bx,ax
shl eax,16
mov ax,bx

Daje al do całego eax.

1 użytkowników online, w tym zalogowanych: 0, gości: 1