Paste: silnia - while

Author: poczciwy
Mode: assembly-r2000
Date: Sun, 26 Apr 2009 11:16:46
Plain Text |
# silnia

.data
 te1: .asciiz "Silnia"
 te2: .asciiz "\nPodaj a: "
 silnia: .asciiz "\na! = "

.text
.globl main

 main:             # Start of code section
   li $v0, 4    #
   la $a0, te1  # wyswietlanie tekstu
   syscall      #

   li $v0, 4    #
   la $a0, te2  # wyswietlanie tekstu
   syscall      #
   
  # czytanie liczby calkowitej
   
   li $v0, 5
   syscall

  # silnia

   move $t0, $v0      # licznik
   move $t1, $v0      # liczba
   sub $t0, $t0, 1    # wstepne ustawienie licznika

petla:  
   mul $t1, $t1, $t0  # silnia rekurencyjne: silnia=silnia*licznik
   sub $t0, $t0, 1    # licznik=licznik-1
   bgtz $t0, petla    # skok gdy licznik jest >0
   
  # wyswietlanie tekstu

   li $v0, 4
   la $a0, silnia
   syscall
   
  # wyswietlanie liczby calkowitej
  
   li $v0, 1
   move $a0, $t1
   syscall

# KONIEC

New Annotation

Summary:
Author:
Mode:
Body: