C'den MIPS'e cevirme

Başlatan bahadirhtp, 10 Aralık 2011 - 13:46:59

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

bahadirhtp

Loop: sll  $t1, $s3, 2
neden geçici register'ın $t1=i*4 olarak atandığını anlamadım???
GOD'S A KID WITH AN ANT FARM LADY HE'S NOT PLANNING ANYTHIN'

ekremsenturk

#1
Tahmin ediyorum, bu soruyu da anlayamayan birçok kişi çıkacaktır.

bahadirhtp

#2
C code:

   while (save[i] == k) i += 1;
i in $s3, k in $s5, address of save in $s6

Compiled MIPS code:

Loop: sll  $t1, $s3, 2     
add  $t1, $t1, $s6     
lw   $t0, 0($t1)     
bne  $t0, $s5, Exit     
addi $s3, $s3, 1   
  j    LoopExit: ...


sll yani neden shiftin kullanıldığını anlamamıştım ama birine lazım olur diye yine de açıklamasını da yazayım.
save[i] bir array'dir geçiçi register'a atanırken 2^2 yani 4bit kaydırılmalıdır.
GOD'S A KID WITH AN ANT FARM LADY HE'S NOT PLANNING ANYTHIN'

ekremsenturk

#3
MIPS, RISC Mimarisi kullanan bir işlemci, benim bildiğim. C kod'larını Mips Assamble'a mı dönüştürüyorsun?

bahadirhtp

#4
evet konu baslığı da bu zaten (:
GOD'S A KID WITH AN ANT FARM LADY HE'S NOT PLANNING ANYTHIN'

ekremsenturk

#5
Bunun için hangi programı kullanıyorsun? İleriki zamanlarda benim de ilgimi çekebilir.

bahadirhtp

#6
Bunun için kullanılan bır program var mıdır bilmiyorum; ama MIPS yapısını aldım bu dönem, yani kendim çeviriyorum.
GOD'S A KID WITH AN ANT FARM LADY HE'S NOT PLANNING ANYTHIN'

if


eceuslu

YARDIM LÜTFEEEENN !!!


Please write corresponding MIPS code for following Python code. In your MIPS code,
register $s0 holds the base address of list my_data, $s1 holds the length of the list my_data,
register $s2 holds the base address of list my_data2 and $s3 holds the length of the list
my_data2.
        def sum_to_x(x):
            sum = 0
            for i in range (x):
                sum += i
            return sum
        my_data = [1, 3, 6, 7]
        my_data2 = [2, 1, 5]
        for i in range( len( my_data ) ):
            my_data[ i ] = sum_to_x( my_data[ i ] )
        for i in range( len( my_data2 ) ):
            my_data2[ i ] = sum_to_x( my_data2[ i ] )


Mesaj tekrarı yüzünden mesajınız birleştirildi. Bu mesajın gönderim tarihi : 20 Aralık 2017 - 17:19:18

Alıntı yapılan: bahadirhtp - 14 Aralık 2011 - 15:24:05
Bunun için kullanılan bır program var mıdır bilmiyorum; ama MIPS yapısını aldım bu dönem, yani kendim çeviriyorum.

benimde bir sorumu pythondan mipse çevirebilir misiniz acaba?