动态内存管理:
100098 帧存储地方!
A4 108100 一般指向当前正在执行的对象!
A5 108000 之后是静态内存,之前是动态内存,基本都是a5+偏移寻址,快!
A7 10F300
108100 开始200代表P1人物,人物出招就会变动指向函数地址!
108300 开始200代表P2人物!
10B0B2 开始100大小,表示背景!
10B7B2 一共有8层背景
108700 0x40小对象结构,人物的影子,一共3层影子,0x120!
操作内存的代码段:
3126 释放内存地址
30B2 分配动态内存 参数:A0自处理 D0 优先级,返回:A1新对象!
bp 30b2, 1, {print w@10a780,g} 表示无条件断下,g继续运行,打印地址10a780的word大小值!
100100 - 108000 对象池的数据结构为双向链表!
每一帧都要遍历一边链表,链表太大就会拖慢!
内存可用和不可用区域:
大小word
100100
0000 304C 表示处理该对象的函数代码地址!
0500 表示下一个节点的100500!
FFFF 表示上一个节点应为是链表头用FFFF!
0000 在链表中的位置,优先级,FFFF最大链表尾!
10A700
10A780 64表示索引值!
10A700 + 64 = 10A764 这个地址之前是可用;之后是占用的!