Witajcie. mam taki problem gdyz mam zadany program ktory rysuje kropke na ekranie. mam go tak przerobic aby pobieral wspolzedne z bazy danych (zadeklarowac db z x i y) oraz zrobic druga wersje ktora rysuje linie na ekranie z tych kropek od lewego dolnego rogu do prawego gornego. kombinowalem na wszystkie mozliwe sposoby ale nie moge ani jednego ani drugiego zrobic. Bylbym wdzieczny za rady i pomoc.

Kod programu do przerobienia w FASM:

format MZ
stack stk:256
entry codseg:main

VideoB_Seg  EQU  0A000h;  Okrelenie segmentu buforu Video 
;------------------ Segment danych ---------------------------
segment sdat use16       
TSIM     db  00h,0FFh,01h,02h,04h,08h,10h,20h,40h,80h
         db  0FFh,00h,00h,00h
;--------------- Koniec segmentu danych ***
;----------------- Segment stosu -----------------------------
segment stk     
       db 256 dup (?)
;----------------- Koniec segmentu stosu
;----------------- Segment programu -------------------------
segment codseg use16        

main: push ds
     push bx
     mov bx,sdat
     mov ds,bx

      ; Wywoanie funkcji BIOS'u w celu zmiany trybu pracy monitora na graficzny
;      mov ax,10h
     mov ah,0
     mov al,10h; Tryb 640 X 350 ilo† kolor˘w 16
     int 10h

     call AA
     pop bx
     pop ds	

     mov  ah,1
     int 21h

     mov ax,0003h
     int 10h

     mov ah,1
     int 21h

     mov ax,4c00h
     int 21h
    ret

 AA:  
     push bp  ; Zachowanie wartoci rejestru BP na stosie

; okrelenie wsp˘rz©dnych pixel'a i obliczenie jego adresu
     mov ax,100; okrelenie wsp˘rz©dnej Y pixel'a
     mov bx,320; okrelenie wsp˘lrz©dnej X pixel'a
     mov cl,bl ; mniej znaczĄcy bajt wsp˘rz©dnej X do BX
     push dx
     mov  dx,80; wprowadznie do DX iloci blok˘w pixel'i w jednej linii
     mul  dx; (dx,ax)<-dx*ax
;przesuni©cie o AX 1-go bloku potrzebnej linii o wsp˘rz©dnej Y
     pop  dx
     shr  bx,1;
     shr  bx,1;
     shr  bx,1; przesuni©cie BX o trzy pozycje w prawo
     add  bx,ax; w BX znajduje si© przesuni©cie bloku, 
; kt˘ry zawiera potrzebny pixel
     mov  ax,VideoB_Seg; adowanie do AX adresu segmentu buforu Video
     mov  es,ax; rejestr ES b©dzie zawiera adres segmentu buforu Video
     and  cl,7 ; wyodr©bnienie numeru pixel'a w bloku 
     xor  cl,7 ; inwersja bitu
     mov  ah,1 ; przygotowanie maski bitu
     shl  ah,cl; przesuni©cie maski na odpowiedniĄ pozycj©
; obsuga rejestr˘w kontrolera graficznego
     mov  dx,3CEh; zadanie adresu portu kontrolera graficznego
     mov  al,8   ; okrelenie numeru rejestru bitowej maski
     out  dx,ax ; zmiana rejestru maski bitowej
    
     mov  ax,0005h;
     out  dx,ax  ; zadanie wartoci rejestru trybu

     mov  ah,0   ;
     mov  al,3   ;
     out  dx,ax  ; zadanie wartoci rejestru cyklicznego przesuni©cia 

     mov  ax,0C00h;
     out  dx,ax  ; zadanie wartoci rejestru ustawi†/resetowa†

     mov  ax,0F01h;
     out  dx,ax  ; zadanie wartoci rejestru ustawi†/resetowa†
; zmiana wartoci pixel'a
     or   [es:bx],al;
    pop bp
     ret