Програмски конструкти во MIPS и процедури Flashcards

I колоквиум

1
Q

Што е процедура?

A

Процедура е складирана подрутина што извршува одредена задача заснована врз внесените параметри

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Чекори при извршување на процедура

A

При изведувањето на процедурата, програмата мора да следи шест чекори:
1. Сместување на параметрите таму каде што процедурата може да им пристапи
2. Префрлање на контролата на процедурата
3. Доделување ресурси за складирање, потребни за процедурата
4. Извршување на посакуваната задача
5. Сместување на вредноста на резултатот таму каде што повикувачката програма може да и пристапи
6. Враќање на контролата кон точката на повикување, бидејќи процедурата може да биде повикана од повеќе точки во програмата

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Што прави jump-and-link?

A
  1. Во регистерот $ra ја запишува адресата од каде што била повикана процедурата
  2. Скока до адресата од каде почнува процедурата
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Што прави jump-register?

A

Од процедурата се враќаме до повикувачкото место со jump-register
jr $ra

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Што е program counter?

A

Program Counter (PC) е регистер каде се чува адресата на инструкцијата што моментално се извршува

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Што се запишува во $ra при инструкција jal?

A

Инструкцијата jal во регистерот $ra ја запишува адресата на следната инструкција PC+4

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Контекст

A
  • Контекст означува „околина“ во која нешто се извршува (пишува, зборува)
    – Во случај на процесорот тоа се вредностите на регистрите
  • Пред повикот на процедурата, треба да се зачуваат вредностите на сите потребни регистри
    – Зачувување на контекстот
  • Кога ќе заврши процедурата, пред процесорот да се врати на извршување на главната програма, вредностите на регистрите треба да се ажурираат
    – Враќање на првобитниот контекст
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Користење на повеќе регистри

A
  • Доколку компајлерот има потреба да користи повеќе регистри, мора најпрвин да ги зачува на сигурно место.
  • Откако ќе заврши употребата на регистрите, мора да бидат вратени вредностите затекнати пред повикот на процедурата
  • Податочната структура во која се прелеваат (чуваат) регистрите се вика стек (stack)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Што е стек и како работи?

A
  • Стек е редица од зборови која функционира по правилото последен-влегол-прв-излегол
  • На секој стек му е потребен стек покажувач кој ќе покажува кон последната адреса
    – Во MIPS тоа е $sp или $29
  • Складирањето податоци во стекот е познато како PUSH (притисни)
  • Вадењето податоци е познато како POP (извади)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly