正在加载图片...
0)jmp08转向主程序入口 1)jmp02转向过程p入口 const a=10 2)int03过程p入口,为过程p开辟空间 3)10d13取变量b的值到栈顶 var b,C, (4)1it010取常数10到栈顶 procedure p (5)opr02次栈顶与栈顶相加 begin (6)sto14栈顶值送变量c中 (7)opr00退栈并返回调用点(16) c:=bta. (8)int05主程序入口开辟5个栈空间 end 9)opr016从命令行读入值置于栈顶 (10)sto03将栈顶值存入变量b中 begin (11)1od03将变量b的值取至栈顶 read (b) (12)1it00将常数值0进栈 (13)opr09次栈顶与栈顶是否不等 while beto do (14)jpc024等时转(24)(条件不满足转) egin (15)ca102调用过程p (16)1it02常数值2进栈 call p (17)1od04将变量c的值取至栈顶 write(2*c);‖(18)r04次栈顶与栈顶相乘(2*c) read (b) (19)opr014栈顶值输出至屏幕 end (20)opr015换行 (21)opr016从命令行读取值到栈顶 end (22)sto03栈顶值送变量b中 (23)jmp011无条件转到循环入口(11) 424)opr00结束退栈const a=10; var b,c; procedure p; begin c:=b+a; end; begin read(b); while b#0 do begin call p; write(2*c); read(b); end end. ( 0) jmp 0 8 转向主程序入口 ( 1) jmp 0 2 转向过程p入口 ( 2) int 0 3 过程p入口,为过程p开辟空间 ( 3) lod 1 3 取变量b的值到栈顶 ( 4) lit 0 10 取常数10到栈顶 ( 5) opr 0 2 次栈顶与栈顶相加 ( 6) sto 1 4 栈顶值送变量c中 ( 7) opr 0 0 退栈并返回调用点(16) ( 8) int 0 5 主程序入口开辟5个栈空间 ( 9) opr 0 16 从命令行读入值置于栈顶 (10) sto 0 3 将栈顶值存入变量b中 (11) lod 0 3 将变量b的值取至栈顶 (12) lit 0 0 将常数值0进栈 (13) opr 0 9 次栈顶与栈顶是否不等 (14) jpc 0 24 等时转(24)(条件不满足转) (15) cal 0 2 调用过程p (16) lit 0 2 常数值2进栈 (17) lod 0 4 将变量c的值取至栈顶 (18) opr 0 4 次栈顶与栈顶相乘(2*c) (19) opr 0 14 栈顶值输出至屏幕 (20) opr 0 15 换行 (21) opr 0 16 从命令行读取值到栈顶 (22) sto 0 3 栈顶值送变量b中 (23) jmp 0 11 无条件转到循环入口(11) (24) opr 0 0 结束退栈
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有