如何手動管理mips程序集中的堆,特別是SPIM模擬器?mips內存管理
堆,我發現在使用sbrk系統調用時,從0x10040000開始,例如,
li $t0, 1
li $s0, 9
syscall
sw $t0, ($s0) # 1 located at 0x10040000
是這樣,沒有一個電話SBRK不能保證你會得到下一個空閒的內存插槽?例如,如果我爲單個4字節空間調用sbrk,SPIM可能會分配地址:0x10040000-0x10040003。然而,另一個4字節空間的第二次調用可能與先前的4字節分配無關?因此,需要數據結構來跟蹤哪些內存插槽已被分配?最後,內存管理器是否嘗試通過確定位於由特定數據結構跟蹤的地址之間的空閒空間來減少對sbrk的調用次數?