Traduction d'une boucle faire tant que en assembleur 51 |
Le dictionnaire des variables correspondant à l'algorithme est (visualiser l'algorithme):
Le choix de l'allocation est arbitraire. Ce choix est généralement guidé par les contraintes imposées par le cahier des charges. La notation entier.b n'est pas normalisée. Elle est appliquée au choix qui est fait ici d'implanter et algorithme en assembleur 51. Enfin, le fait qu'en assembleur, il n’est possible que de faire une opération par instruction, il est nécessaire d'ajouter une variable intermédiaire denum.result allouée dans A. L'utilisation de B est imposée par la multiplication en assembleur 51. La traduction de l'algorithme donne :
debut: mov R2,#05h mov R1,#02h mov
R0,#ffh ;
result <- 0 faire: inc R0 ;
result <- result + 1 mov B,R0 mov B,R1 mov A,R0 mul
AB ; A <- demum.reslut subb A,R2 ; test si
denum.result-num<0 jc faire jnz sivrai
; si
égalité finsi: mov P0,R0 ret ; fin du code sivrai: dec R0 ljmp
finsi |