MIPS İşlemci Programlama Dizideki En Son Elemanı Bulma - Bilişim Konuları

MIPS İşlemci Programlama Dizideki En Son Elemanı Bulma

Bu yazımızda Mips işlemci programlama olan Mars programında bir dizi içerisinde bulunan elemanlardan en sonda bulunan elemanı bulup bu değeri ekranda yazdıran program kodu. Mips program örneğinde istediğimiz uzunlukta bir dizi tanımlayarak bu dizi içerisine istediğimiz kadar dizi uzunluğu kadar sayı giriyoruz. Daha sonra bir döngü oluşturarak dizinin uzunluğu kadar dönmesini sağlıyoruz. Bu arada dizinin içerisinde bulunan elemanları döngü yardımı ile teker teker işliyoruz. Döngünün en sonuna geldiğimizde elde ettiğimiz sayı döngünün son elemanı olmaktadır. Bulduğumuz bu sayıyı ekranda yazdırarak döngünün son elemanı bulmuş oluyoruz.

Mips program kodu:

# Mıps bir dizi içerisindeki elemanlardan en sonda olan elemanı bulur

      .data
list: .word 30, 10, 71, 32, 6, -27, 43, 79, 73, 17, 12, 125, 89, 25, 20
size: .word 15
      .text
      la   $t0, list        # load address of array
      la   $s0, size        # load address of size variable
      lw   $t1, 0($s0)      # load array size
      li   $t2, -10000000   # max reg

loop: lw   $t3, 0($t0)      # Get value from array F[n] 
      blt  $t3, $t5, skip   # 
      move $t2, $t3         # new amx
skip: addi $t0, $t0, 4      # increment address of Fib. number source
      addi $t1, $t1, -1     # decrement loop counter
      bgtz $t1, loop        # repeat if not finished yet.
exit: jal  print            # call print routine. 
      li   $v0, 10          # system call for exit
      syscall               # we are out of here.
            
#########  routine to print the numbers on one line. 

      .data
space:.asciiz  " "          # space to insert between numbers
head: .asciiz  "En son deger :"
      .text
print:
      la   $a0, head        # load address of print heading
      li   $v0, 4           # specify Print String service
      syscall               # print heading
      move $a0, $t2         # load max number for syscall
      li   $v0, 1           # specify Print Integer service
      syscall               # print fibonacci number
      jr   $ra              # return

Kodun ekran görüntüsü:

mips-ensondeger

Bu Yazıya Tepkin Nedir?
+1
1
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0

Yorum Yap