你如何在mips程序集中手动管理堆,特别是SPIM模拟器?
堆,我发现在使用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的调用次数?