如何手动管理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的调用次数?