// 全局内存
MEM gmem[100] =
{
// 一个全局函数
// gFunc( void (*pf)(void) );
code_out, 0, 11111, // out 11111
code_sp, 1, 50, // sp [50] ; 读取栈顶指针SP 到 [50]
code_sub, 1,51, 1,50, 0,1, // sub [51], [50], 0 ; 第一个参数(pf)的指针 到 [51]
code_mov, 1,61, 2,51, // mov [61], *[51] ; 取得第一个参数(pf) 存入 [61]
code_call, 1,61, // call [61] ; (*pf)(void)
code_out, 0, 22222, // out 22222
code_ret, // ret
};
#define PRI(x) (PRIVATE_START_ADDR+(x))
// 第0个处理器的初始内存(私有内存,从0x8000000开始)
MEM p0_mem[100] =
{
// data
/*8*/ 0,1,2,3,4,5,6,7,
// code
/*7*/ code_add, 1,PRI(0), 1,PRI(2), 1,PRI(3), // add [80000000H], [80000002H], [80000003H]
/*7*/ code_mul, 1,PRI(1), 1,PRI(0), 0,100, // mul [80000001H], [80000000H], 100
/*3*/ code_out, 1,PRI(1), // out [80000001H]
/*3*/ code_push, 0,PRI(40), /*函数指针*/ // push 80000040H
/*3*/ code_call, 0,0x0, // jmp 00000000H
/*3*/ code_pop, 1, PRI(0), // pop [80000000H]
/*3*/ code_out, 0,12345, // out 12345
37,38,39,
// 回调函数
code_out, 0, 999,
code_out, 0, 999,
code_ret,
};
|