1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
| org 100h ; programme .COM
segment .data
X db 10
Y db 10
k db 0
err db 0
segment .text
mov ax,13h
int 10h ;Mode 13 (320x200 - 256 couleurs)
push 0A000h
pop es ;le debut de la mem video dans ES
mov ax,320
imul bx,[Y],320
mov al,[X]
add bl,al ; on place l'origine en X,Y
add byte [err],2*(20-10)-(100-10)
mov cl,100
sub cl,[X] ; on va tracer 100-X points
ligne: ; ligne de 10,10 à 100,50
mov al,1
mov [es:bx],al ; trace le point
inc bx
cmp byte [err],0 ; if err>0
js signblock
jo elseblock
jmp thenblock
signblock:
jo thenblock
elseblock: ; err += deltaY-deltaX
add bx,320
add byte [err],(20-10)-(100-10)
jmp next
thenblock: ; err += deltaY
add byte [err],(20-10)
next:
loop ligne
xor ax,ax
int 16h ;Attend la pression d'une touche
mov ax,4C00h
int 21h ; quit |
Partager