Voici un exemple d'un programme permettant d'afficher un triangle Pascal :
- .MODEL small
- .STACK 100h
- .DATA
- Space DB ' ','$'
- CRLF DB 13,10,'$'
- BeginLine DB '< ','$'
- .CODE
- PrintDigit PROC NEAR
- OR AX,AX
- JNS Positif
- PUSH AX
- MOV AH,02h
- MOV DL,'-'
- INT 21h
- POP AX
- NEG AX
- Positif:
- MOV BX,10
- XOR CX,CX
- NextDigit:
- XOR DX,DX
- DIV BX
- PUSH DX
- INC CX
- OR AX,AX
- JNZ NextDigit
- PrintOneDigit:
- POP AX
- ADD AL,48
- MOV DL,AL
- MOV AH,02h
- INT 21h
- LOOP PrintOneDigit
- RET
- ENDP
-
- .startup
- XOR DX,DX
- @Loop1:
- XOR CX,CX
- @Loop2:
- PUSH CX
- PUSH CX
- PUSH DX
- MOV AX,@data
- MOV DS,AX
- MOV AH,9
- MOV DX,OFFSET Space
- INT 21h
- POP DX
- POP CX
- PUSH DX
- XCHG AX,DX
- MUL CL
- CALL PrintDigit
- POP DX
- POP CX
- INC CX
- CMP CX,DX
- JNG @Loop2
- PUSH DX
- MOV AX,@data
- MOV DS,AX
- MOV AH,9
- MOV DX,OFFSET CRLF
- INT 21h
- POP DX
- INC DX
- CMP DX,10
- JNGE @Loop1
-
- MOV AX,4C00h
- INT 21h
- END
on obtiendra le résultat suivant :
00 1
0 2 4
0 3 6 9
0 4 8 12 16
0 5 10 15 20 25
0 6 12 18 24 30 36
0 7 14 21 28 35 42 49
0 8 16 24 32 40 48 56 64
0 9 18 27 36 45 54 63 72 81
Si par exemple vous utilisez le Turbo Assembleur version 5.0, vous n'aurez que les trois commandes suivantes a effectuer pour voir le résultat en supposant que le programme s'appel «triapasc.asm» :
TASM triapasc.asm TLINK triapasc.obj triapasc.exe |
Voir également
Dernière mise à jour : Vendredi, le 4 mars 2016