Bonjour tous,
voici une macro
je l'appelle 2 fois de cette façon :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 %macro drawPoint 2 mov cx, %1 ; POINT_X mov ax, cx and ax, 0x0007 ; récupère le reste de la division qui va suivre shr cx, 3 ; division par 8 mov bx, PLANE_ORIGIN ; ordonnée en octet add bx, cx sub bx, 40*%2 ; POINT_Y .coordonnée finale de l'octet mov cx, 7 sub cx, ax ; numéro du bit de l'octet concerné stc ; CF = 1 mov ah, 0x00 rcr ah, cl ; positionne le bit concerné à 1 mov al, [es:bx] ; rempli les tampons VGA mov [es:bx], ah ; envoi l'octet proceseur dans VGA %endmacro
C'est le deuxième appel qui pose problème.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 drawPoint 1, 1 drawPoint [pointx], [pointy])
Nasm refuse de compiler : error: expression syntax error
Et si je tape ceci
j'ai droit à : error: invalid operand type
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 drawPoint 1, 1 drawPoint [pointx], [pointy])
Je précise :
Alors la question est : <<comment dois-je appeler la macro pour lui passer les contenus mémoire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 pointx dw 0x0000 pointy dw 0x0000
de pointx et pointy ?
Partager