好文档 - 专业文书写作范文服务资料分享网站

PL0源代码(C语言版) - 图文

天下 分享 时间: 加入收藏 我要投稿 点赞

.. . .. . .

case opr: /*数字、逻辑运算*/ switch(i.a) { S. case 0: t=b; p=s[t+2]; b=s[t+1]; break; case 1: s[t-1]=-s[t-1]; break; case 2: t--; s[t-1]=s[t-1]+s[t]; break; case 3: t--; s[t-1]=s[t-1]-s[t]; break; case 4: t--; s[t-1]=s[t-1]*s[t]; break; case 5: t--; s[t-1]=s[t-1]/s[t]; break; case 6: s[t-1]=s[t-1]%2; break; case 8: t--; s[t-1]=(s[t-1]==s[t]); break; case 9: t--; s[t-1]=(s[t-1]!=s[t]); break; case 10: t--; s[t-1]=(s[t-1]

. . . . ..

.. . .. . .

s[t-1]=(s[t-1]>=s[t]); break; case 12: t--; s[t-1]=(s[t-1]>s[t]); break; case 13: t--; s[t-1]=(s[t-1]<=s[t]); break; case 14: printf(\ fprintf(fa2,\ t--; break; case 15: printf(\ fprintf(fa2,\ break; case 16: printf(\ fprintf(fa2,\ scanf(\ fprintf(fa2,\ t++; break; } break; case lod: /*取相对当前过程的数据基地址为a的存的值到栈顶*/ s[t]=s[base(i.l,s,b)+i.a]; t++; break; case sto: /*栈顶的值存到相对当前过程的数据基地址为a的存*/ t--;

s[base(i.l,s,b)+i.a]=s[t]; break; case cal: /*调用子程序*/ s[t]=base(i.l,s,b); /*将父过程基地址入栈*/ s[t+1]=b; /*将本过程基地址入栈,此两项用于base函数*/ s[t+2]=p; /*将当前指令指针入栈*/ b=t; /*改变基地址指针值为新过程的基地址*/ p=i.a; /*跳转*/ break; case inte: /*分配存*/

S. . . . . ..

.. . .. . .

t+=i.a; break; case jmp: /*直接跳转*/ p=i.a; break; case jpc: /*条件跳转*/ t--; if(s[t]==0) { p=i.a; } break; } }while (p!=0); }

/*通过过程基址求上1层过程的基址*/ int base(int l,int * s,int b) { int b1; b1=b; while(l>0) { b1=s[b1]; l--; } return b1; }

S. . . . . ..

PL0源代码(C语言版) - 图文

.......caseopr:/*数字、逻辑运算*/switch(i.a){
推荐度:
点击下载文档文档为doc格式
9s86n7jcah036aw5tvxo0daes3y30z00x65
领取福利

微信扫码领取福利

微信扫码分享