2012-02-09 121 views
2

在MIPS變長的,我知道我可以聲明數組作爲:陣列在MIPS彙編語言

list: .space 20 

但是,如果我想創建基於用戶輸入的不同大小的數組是什麼? 這可能嗎?

例如,該方案將要求用戶輸入的整數N和創建長度N.

回答

2

這是一個很好的問題的陣列。在彙編語言中,您所做的聲明變量是靜態分配的,即它們是在彙編時分配的。如果你想在運行時根據用戶輸入分配一個變量,你至少有兩個選擇:在堆棧上分配空間(並監視堆棧溢出)或從內存池(通常稱爲堆)分配內存池。無論哪種情況,分配都是在朗姆酒時間而不是在裝配時完成的。

2

您可以使用系統調用9堆上

li $a0, numbytes 
li $v0, 9 
syscall 

的地址在$v0

+0

返回分配內存謝謝,這是也有幫助。 – Dan14021 2012-02-10 01:12:08