摘要: 假定函数原型: int test (int r0, int r1, int r2, int ext1); 发生函数调用时,如: // ... test(a, b, c, d); // ... 编译器会将局部变量a,b,c在函数调用附近分别处理到寄存器R0,R1,R2中,而更高的参量,如ext1,则顺次从字节地址SP+0xC位置开始存放。在执行CALL指令调用子程序的时候,堆栈寄存器FP和SP仍不发生变化,直到,执行LINK指令,寄存器将发生如下变化: 1. [--SP] = RETS; 2. [--SP] = FP; 3. FP = SP; // FP+0保存原FP,F... 阅读全文
posted @ 2007-04-02 10:13 quanben 阅读(183) 评论(0) 推荐(0) 编辑