E→id1 relop id2 E→id {E.truelist:=makelist(nextquad); E.falselist:=makelist(nextquad+1); emit(‘j’ relop.op ‘,’ id1.place ‘,’ id2.place ‘,’ ‘0’) emit(‘j, -, -, 0’) } {E.truelist:=makelist(nextquad); E.falselist:=makelist(nextquad+1); emit(‘jnz’ ‘,’ id.place ‘,’ ‘-’ ‘,’ ‘0’); emit(‘j, -, -, 0’) } * §7.4 布尔表达式的翻译 5、例题:ab or cd and ef M .tl={100} .fl={101} E E or E ε M E and E ε b a d c f e 100 (j,a,b,0) 101 (j, - , -, 0 ) 102 (j,c,d, 0 ) 103 (j, - , -, 0) .quad=102 .tl={102} .fl={103} .quad=104 .tl={104} .fl={105} 104 (j,e,f,0) 105 (j, - , -, 0) .tl={104} .f
原创力文档

文档评论(0)