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 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
| INCLUDE IUTInfo.inc
;Ecrire un programme qui affiche sur tous les pixels dont les deux coordonnées sont paires et multiples
;de 10, un caractére demandé au démarrage du programme (on demarrera en 0,0).
.data
msg BYTE "entrez un caractere => ",0
finn BYTE "finit",0
var BYTE (0) ; contient le caractére
.code
main PROC
call clrscr
mov edx,OFFSET msg
call writestring
call readchar
mov var,al
call clrscr
mov dh,0
mov dl,0 ; position sur une ligne numero colone
testpourdh: mov eax,40
call delay
cmp dh,40
je fin
mov cl,10
mov al,dh
div cl
cmp ah,0 ; si c'est égal, alors multiple de 10 ( je crois )
jne dhpasmultiple
je testpourdl
testpourdl: mov cl,10
mov al,dl
div cl
cmp ah,0 ; si c'est égal, alors multiple de 10 ( je crois )
jne dlpasmultiple
je multiple
dhpasmultiple:
add dh,1
jmp testpourdh
dlpasmultiple: cmp dl,100
je boucle
add dl,1
jmp testpourdh
boucle: add dh,1
mov dl,0
jmp testpourdh
multiple: call gotoxy
mov al,var
call writechar
cmp dl,100
je sautdeligne
add dl,1
jmp testpourdh
sautdeligne: add dh,1
mov dl,0
jmp testpourdh
fin:
call crlf
call crlf
mov edx,OFFSET finn
call writestring
exit
main ENDP
END main |
Partager