~ubuntu-branches/ubuntu/hardy/ocaml-doc/hardy

« back to all changes in this revision

Viewing changes to examples/picomach/fact.asm

  • Committer: Bazaar Package Importer
  • Author(s): Samuel Mimram
  • Date: 2007-09-08 01:49:22 UTC
  • mfrom: (0.1.3 upstream)
  • Revision ID: james.westby@ubuntu.com-20070908014922-lvihyehz0ndq7suu
Tags: 3.10-1
* New upstream release.
* Removed camlp4 documentation since it is not up-to-date.
* Updated to standards version 3.7.2, no changes needed.
* Updated my email address.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Le programme principal
2
 
        read                    # lecture de l'argument (dans r 1)
3
 
        jmp     fact, ra        # calcul de la factorielle
4
 
        write                   # �criture du r�sultat (r 1)
5
 
        stop                            
6
 
 
7
 
# La fonction factorielle(N)
8
 
# L'argument N est dans r 1. Le r�sultat est mis dans r 1.
9
 
fact:   braz    r 1, fact_0     # N = 0 ?
10
 
        sub     sp, 8, sp       # r�serve deux places dans la pile
11
 
        store   sp, 0, ra       # sauvegarde de l'adresse de retour
12
 
        store   sp, 4, r 1      # et de la valeur de N
13
 
        sub     r 1, 1, r 1
14
 
        jmp     fact, ra        # appel r�cursif sur N-1
15
 
        load    sp, 4, r 2      # r�cup�ration de la valeur de N
16
 
        mult    r 1, r 2, r 1   # calcul de N * fact(N-1)
17
 
        load    sp, 0, ra       # r�cup�ration de l'adresse de retour
18
 
        add     sp, 8, sp       # et de la place en pile
19
 
        jmp     ra, r 0         # retour � l'appelant
20
 
fact_0: add     r 0, 1, r 1     # mettre 1 dans r1
21
 
        jmp     ra, r 0         # retour � l'appelant