Witam.
Używam kompilatora NASM do asemblera, i próbuje narysować okrąg ale nie wychodzi mi przez to że program nie chce rysować 5-tego(w góre) pixela. Albo jak już narysuje wszystkie pixele sie rozłażą.
START:
mov ax, 13h ; AH=0 (Change video mode), AL=13h (Mode)
int 10h ; Video BIOS interrupt
mov ax, 0A000h ; The offset to video memory
mov es, ax ; We load it to ES through AX, becouse immediate operation is not allowed on ES
mov dx,10
mov [x1], dx
mov dx,0
mov [y1], dx
mov dx,100 ;pozycja poczatkowa X
mov [x],dx
mov dx,100 ;pozycja pcozatkowa y
mov [y],dx
;rysowanie kola
mov dx,0
add dx,[y]
add dx,[y1]
mov ax,dx
mov dx,0
add dx,[x]
add dx,[x1]
mov bx,dx
mov cx,320
mul cx; multiply AX by 320 (cx value)
add ax,bx ; and add X
mov di,ax
mov dl,7
mov [es:di],dl
mov dx,0
add dx,[y]
add dx,[x1]
mov ax,dx
mov dx,0;
add dx,[x]
add dx,[y1]
mov bx,dx
mov cx,320
mul cx; multiply AX by 320 (cx value)
add ax,bx ; and add X
mov di,ax
mov dl,7
mov [es:di],dl
mov si,[x1]
imul si,-1
mov dx,0
add dx,si
add dx,[x]
mov ax,dx
mov dx,0;
add dx,[y]
add dx,[y1]
mov bx,dx
mov cx,320
mul cx; multiply AX by 320 (cx value)
add ax,bx ; and add X
mov di,ax
mov dl,7
mov [es:di],dl
mov si,[y1]
imul si,-1
mov dx,0
add dx,si
add dx,[x]
mov ax,dx
mov dx,0;
add dx,[y]
add dx,[x1]
mov bx,dx
mov cx,320
mul cx; multiply AX by 320 (cx value)
add ax,bx ; and add X
mov di,ax
mov dl,7
mov [es:di],dl
mov si,[y1]
imul si,-1
mov dx,0
add dx,si
add dx,[x]
mov ax,dx
mov si,[x1]
imul si,-1
mov dx,0;
add dx,[y]
add dx,si
mov bx,dx
mov cx,320
mul cx; multiply AX by 320 (cx value)
add ax,bx ; and add X
mov di,ax
mov dl,7
mov [es:di],dl
mov ax,100
mov bx,100
mov cx,320
mul cx; multiply AX by 320 (cx value)
add ax,bx ; and add X
mov di,ax
mov dl,7
mov [es:di],dl
ret
x dw 0
y dw 0
r dw 0
x1 dw 0
y1 dw 0
dodanie znacznika <code class="asm"> - furious programming