cześć wam ;). Potrzebuję pomocy obecnie pracuje nad projektem rysowania funkcji w FASMie funkcja to y=0.5*x^3-0.2 nie wiem jak zrobić skalę, i tak jak wykładowca mówił w tym programie funkcja będzie się rysować 'prostymi' tzn bez wygładzeń (nie bardzo wiem jak to określić, sinus zamiast falować będzie miał kąty)... Poniżej zamieszczam kod programu:

 
format MZ
entry main:start
stack 100h

macro wypisz txt{
		mov dx, txt
		mov ah, 9
		int 21h
				}



macro kursor x,y	 ;ustawienie kursora
{
  mov bh,0
  mov dl,x
  mov dh,y
  mov ah,2
  int 10h
}


segment main
start:
	FINIT
	mov ax,dane   
	mov ds,ax
	mov ah, 0
	mov al, 3
	int 10h

		kursor 0,0
	wypisz tekst1
		kursor 2,2
	wypisz tekst2
		kursor 15,5

	  mov ah, 7
      int 21h
      cmp al, 13      ;enter
      je dalej
;tryb graficzny;
dalej:
mov   ax, 12h
mov   bh, 0h
int   10h
mov dx,480                ;wysokosc  max wysokosc 480         
mov cx,320               ;szerokosc  max szerokosc 640

;rysowanie osi pionowej

wysokosc:
  
   mov al, 10            ;rysowanie pojedynczego pixela
   mov ah, 0ch      
   int 10h         

            
   cmp dx,0
   dec dx
   jne wysokosc


mov dx, 240
mov cx, 640


;-rysowanie osi poziomej
szerokosc:
   mov ah, 0ch
   int 10h


   cmp cx,2
   dec cx
   jne szerokosc
   
;rysowanie strzalek

mov cx,630
mov dx,235

grot1:

   mov al,10
   mov ah,0ch
   int 10h
   inc cx

   mov al,10
   mov ah,0ch
   int 10h
   inc cx
   
   inc dx
   cmp cx,640
   jne grot1
   
mov cx,630
mov dx,245
dol:
   mov al,10
   mov ah,0ch
   int 10h
   inc cx

   mov al,10
   mov ah,0ch
   int 10h
   inc cx

   dec dx
   cmp cx,640
   jne dol

mov cx,315
mov dx,10

grot2:
   mov al,10
   mov ah,0ch
   int 10h
   dec dx

   mov al,10
   mov ah,0ch
   int 10h
   dec dx
   
   inc cx
   cmp dx,0
   jne grot2

mov cx,325
mov dx,10

gora:
   mov al,10
   mov ah,0ch
   int 10h
   dec dx

   mov al,10
   mov ah,0ch
   int 10h
   dec dx

   dec cx
   cmp dx,0
   jne gora  
;--> X <--
mov dx, 250
mov cx, 630
X1:
   mov al,12
   mov ah,0ch
   int 10h
   inc cx
   inc dx
   cmp cx,636
   jne X1

mov dx, 255
mov cx, 630

X2:
   mov al,12
   mov ah,0ch
   int 10h
   inc cx
   dec dx
   cmp cx,636
   jne X2
   
   
;--> Y <--
mov dx, 5
mov cx, 310
Y1:
   mov al,12
   mov ah,0ch
   int 10h
   dec cx
   inc dx
   cmp cx,302
   jne Y1

mov dx, 8
mov cx, 305

Y2:
   mov al,12
   mov ah,0ch
   int 10h
   dec cx
   dec dx
   cmp dx,4
   jne Y2   
   

   mov   ebp, Wynik
   call   Rysuj_funkcje      ;y=0.5*x^3-0.2
   mov   ah, 00h
   int   16h
   call   koniec
   
   mov   ah, 00h
   mov   al, 03h
   int   10h
   mov   ah, 4Ch
   int   21h
   
 
   
   
Rysuj_funkcje:   
        mov   cx, 639 
        mov   bh, 0
        mov   al, 20
        mov   ah, 0Ch
        mov   cx, 0
		
Rysuj_petla:

		fld  [X]
		fmul [X]
		fmul [X]
		fmul [B]
		fsub [A]
		FRNDINT
		fistp [Wynik] ;FBSTP Wynik
		fld1 
		fld [X]
		
		faddp
		fstp [X]


        mov   dx, 240
        sub   dx, WORD PTR Wynik
        int   10h
        add   cx, 5         ;inc cx
        cmp   cx, 635
        jne   Rysuj_petla   
        ret

   


   

   
   
   
   
   
koniec:
	mov	ax,0003h	; Int 10 - Video BIOS Services
	int	10h
	mov ah, 4ch
	int 21h



segment dane
tekst1 db 'Projekt rysowania wykresu funkcji y=0.5*x^3-0.2.$'
tekst2 db 'xx$'
tekst3 db 'Podaj przedzial:$'
Wynik   dd 0.0
X   dd 1.0
A   dd 0.2   
B   dd 0.5
pom dw 0
dz dw 10