MIPS - Wie reserviert MIPS Speicher für Arrays im Stack?

8

Ich bin ziemlich neu in der MIPS-Assembler-Sprache und mache gerade einen Kurs über Computer-Architektur, der einen großen Abschnitt über MIPS-Codierung enthält. Ich habe in der Vergangenheit mehrere andere Programmiersprachen (C, C #, Python) studiert und habe einige Grundlagen in der Programmierung.

Meine Frage hier fragt speziell: Wie reserviert MIPS Speicher für Arrays im Stack? Ich hoffe, dass die Beantwortung dieser Frage mir hoffentlich zu einem besseren Gesamtverständnis von MIPS verhelfen wird, da ich immer noch ein wenig auf die Idee der MIPS-Sprache und ihrer Architektur eingreife. Ich verstehe nicht ganz, wie Zeiger in dieser ganzen Beziehung auch funktionieren ...

Wäre brillant, wenn sich jemand die Zeit nehmen könnte, diesem verwirrten Schüler zu helfen! :)

    
Sam O'Mahony 26.10.2013, 22:11
quelle

1 Antwort

14

Nun ... Sie sollten sich darüber im Klaren sein, dass MIPS, wie C, im Wesentlichen drei verschiedene Speichermöglichkeiten hat.

Betrachten Sie den folgenden C-Code:

%Vor%

Die MIPS-Assembly unterstützt alle diese Datentypen.

Um ein int-Array im Datensegment zuzuweisen, könnten Sie verwenden:

%Vor%

Um ein int-Array auf dem Stack zuzuweisen, könnten Sie folgendes verwenden:

%Vor%

Um Speicherplatz auf dem Heap zuzuweisen, ist ein Systemaufruf erforderlich. Im Spim-Simulator ist dies Systemaufruf 9 :

%Vor%     
Konrad Lindenbach 26.10.2013, 22:37
quelle