Bonjour a tous!!!!
Je veux tracer une ligne mais ca ne marche pas, je passe les parametre par la pile,
et ensuite ds la fonction principale, je remplis le segment es avec le buffer declarer ds data segment!!!
Si quelqu'un voit l'erreur, merci de me prevenir!!
.386
org 100h
dataj segment public
buffer db 64000 dup(0)
dataj ends
debut:
;initialisation du mode graphique 320*200 Graphic 256 couleurs (VGA)
mov ax, 13h
int 10h
mov ax, 0a000h ;Début du segment de mémoire vidéo
mov es, ax
xor di, di
push 10
push 10
push 150
call droite2
mov cx, 64000
mov si, 1
mov di, 1
_remplir:
mov al, buffer[si]
mov es:byte ptr[di], al
inc di
inc si
loop _remplir
mov ah, 00h
int 16h
mov ax, 03h
int 10h
ret
;-------Procedure---------------------
droite2 proc
xor ax, ax
xor bx, bx
xor dx, dx
xor cx, cx
mov bp, sp
mov ax, ss:[bp + 6]
mov dx, ss:[bp + 6]
mov cx, ss:[bp + 6]
push dx
;320 * Y + X
mov dx, ax
shl ax, 8
shl dx, 6
add ax, dx
pop dx
add ax, dx
xor si, si
mov bx, ax
mov si, 0
@remplir:
mov buffer[bx + si], 02h
inc si
loop @remplir;
ret 6
droite2 endp
;-------------Fin procedure---------------
;----------Variable------------------
vert equ 0c0ch
end debut
RM50man