条件语句 四元式

写出下面条件语句的四元式:

if   a<b  and   e>d  then  x:=a+b   else  x:=a-b


1,A  and  B(如果A为0,就不用探究B的结果了),对于当前的if语句而言,若:a>=b,则直接执行else

2,下面的语句加入是从地址为100开始的

3,语句中a<b(E1),e>d(E2),(E1t表示a<b为真),(E表示:(a<b  and  e>d))

     (j<,a,b,E1t),表示a<b

     (j,-,-,Ef),表示无条件跳转,也就是说,当紧接着的指令不执行的时候,就会产生无条件跳转指令


100    (j<,a,b,E1t)       E1t为待填地址,先用E1t表示

101    (j  ,- ,- ,Ef  )        Ef为待填地址,表示整个条件出错

102    (j>,e,d,Et  )        Et为待填,表示整个语句正确(E2t,此刻就代表Et),然后回填:

                                                    100    (j<,a,b,102)

103     (j,- ,- ,Ef)           Ef为待填,表示整个语句出错

104     (+,a,b,T1)         T1暂存a+b,将地址回填

                                                    102    (j>,e,d,104)

105      (:=,T1,-,x)     将T1的值赋值给x

106      (j,- ,- ,s.next)   同样的无条件跳转

107      (-,a,b,T2)        T2暂存a-b,将地址回填

                                                   101    (j  ,- ,- ,107)

                                          103     (j,- ,- ,107)

108       (:=,T2,-,x)   将T2的值赋值给x

109       。。。。。。。。     继续执行if-else整体后面的语句,并且继续将地址回填       

                                         106      (j,- ,- ,109)                             



  • 2
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值