Cześć ;), mam problem z assemblerem a dokładniej to, że muszę w nim pisać...
Mam do napisania program graficzny - tafle wody w którą coś uderzyło i powstało takie cudo http://kino-ap.eng.hokudai.ac.jp/all-LiF.gif
http://www.webzeest.com/articleimages/8f14e45fce_1385379167917ScreenShot011.jpg
Znalazłem kod który rysuje koło/elipsę i prosiłbym abyście pomogli dodać czyszczenie ekranu?,przerwanie (aby była animacja) , zwiększenie r o 1 i ponowne rysowanie koła.
Na tą chwile fajnie by było jakby program rysował chociaż jedną taką fale (kółko) które się powiększa.
; nasm -O999 -o kolo.com -f bin kolo.asm
org 100h
mov ax, 13h
int 10h
mov ax, 0a000h
mov es, ax
mov cx, 360
finit
fldpi
fild word [sto80]
fdivp st1, st0 ; pi/180
fld1
fild word [r] ; r, 1, pi/180
fldz ; kąt=0, r, 1, pi/180
mov al, 15
rysuj:
fld st0 ; kąt, kąt, r, 1, pi/180
fmul st4 ; kąt w radianach
mov di, 100*320 + 160 ; środek ekranu
fsin ; sin(kąt), kąt, r, 1, pi/180
fmul st2 ; sin(kąt)*r, kąt, r, 1, pi/180
fistp word [wys] ; kąt, r, 1, pi/180
fld st0 ; kąt, kąt, r, 1, pi/180
fmul st4 ; kąt w radianach
fcos ; cos(kąt), kąt, r, 1, pi/180
fmul st2 ; r*cos(kąt), kąt, r, 1, pi/180
fistp word [szer] ; kąt, r, 1, pi/180
add di, [szer] ; dodajemy odległość poziomą
mov dx, [wys]
mov bx, dx
shl dx, 8
shl bx, 6
add dx, bx ; dx = wys*320
sub di, dx ; odejmujemy odległość pionową
mov [es:di], al ; wyświetlamy piksel
fadd st0, st2 ; kat += 1
dec cx
jnz rysuj
finit
xor ah, ah
int 16h
mov ax, 3
int 10h
mov ax, 4c00h
int 21h
r dw 50
szer dw 0
wys dw 0
sto80 dw 180
Kod ukradziony ze strony http://bogdro.ciki.me/dos/graf_tut.htm. Niestety jak dla mnie trochę słabo wytłumaczony. Jedynie co do tej pory napisałem do hello world ;)