能力值:
( LV2,RANK:10 )
|
-
-
2 楼
没有明白楼主的意思......
|
能力值:
( LV4,RANK:50 )
|
-
-
4 楼
假定你要处理的是add,fld...一共n条指令
1、指令多时对指令进行hash变换,x=hash(instruction),(hash值的比特位最小为log2 n+1);
再根据生成的x建一个指令处理函数表如:fld指令生成的x1=hash(fld),[基址+x1]就是fld对应的处理函数地址,即jmp [基址+x1]就转到fld指令处理处了。
2、当然指令少的话直接将指令排好序,放一个表内每条指令都对应一个编号x;
再根据x的值生成一个指令处理表如:fld指令对应的编号是x2,[基址+x2]就是fld对应的处理函数地址,即jmp [基址+x2]就转到fld指令处理处了。不过使用时要查log2n+1次表,所以指令太多时会耗费大量时间。
|
|
|