Open4U

שאלה 1 מתוך 10

מועד 91 · 2024אניתוח קוד2 נק׳פרק דפקודות – שפתו של המחשב

ארבעת הסעיפים הבאים (16.1-16.4) מתייחסים למצב שבו באוגר $a0 מועברת כתובת המערך array, המוגדר בסגמנט הנתונים באופן הבא: .data array: .byte 0xaa,0x56,0x98,0x55 נתונים אלו תקפים לכל סעיפי השאלה. [הערת מנחה בגוף שאלה 16.2, רלוונטית להבנת כל הסעיפים: הפרוצדורה בודקת כמה פעמים חוזרת התבנית של הערך שיש באוגר $a2 מופיעה בכל בית, מתוך $a1 האיברים הנבדקים. היא מחזירה באוגר $v0 את מספר הפעמים המקסימלי, ובאוגר $v1 את האינדקס של איבר זה. במידה ויש כמה איברים מקסימליים יוחזר האינדקס של הנמוך מביניהם.]

נתונה פרוצדורה בשם Colombia. הפרוצדורה מקבלת 3 פרמטרים:
$a0 – כתובת תחילת מערך של ערכים (כל ערך בגודל ביית).
$a1 – N - מספר איברים לבדיקה במערך.
$a2 – ערך כלשהו.

Colombia:
        li $v0,0
        li $v1,0
        li $t2,0
count:
        lbu $t0,0($a0)
        li $t3,0
 loop:
        and $t4,$t0,$a2
        bne $t4,$a2,CONT
        addi $t3,$t3,1
CONT:
        srl $t0,$t0,1
        bne $t0,$0,loop
        bge $v0,$t3,M
        move $t5,$t3
        move $v0,$t3
        move $v1,$t2
M:
        addi $a0,$a0,1
        addi $t2,$t2,1
        bne $a1,$t2,count
        jr $ra

נעביר לפרוצדורה $a1=4, $a2=1 . בנתונים אלו, מה יהיה ערך האוגרים $t4, $t2 בסיום הפרוצדורה?