Element If_else PointWork doCompare \local ..false,..true,cond,op1,op2,dt,dtype dt equ data dtype equ data.type if ~ (dtype eq data_null | (dtype eq data_real & dt eq 1)) push data end if ReadInt op1,data,data.type,Self#.Op1,Self#.prop.Op1 if op1 eq eax & Self#.Op2.use mov ecx,op1 end if ReadInt op2,data,data.type,Self#.Op2,Self#.prop.Op2 cond = Self#.prop.Type if op1 eqtype 0 if op2 eqtype 0 Icond cond,op1,op2 else cmp op2,op1 end if else if op1 eq eax if Self#.Op2.use cmp ecx,op2 else cmp eax,op2 end if else if op2 eqtype 0 | op2 eqtype eax cmp op1,op2 else mov eax,op2 cmp op1,eax end if if ~ (dtype eq data_null | (dtype eq data_real & dt eq 1)) pop eax end if if ..true > ..false if ..end > ..true Jcond cond,..true else Jcond cond,exit end if else Jcond 5-cond,exit end if ..false: if cond <= 5 Self#.onFalse eax,dtype,exit if $ > ..false & ..end > ..true jmp exit end if end if ..true: if cond >= 0 Self#.onTrue eax,dtype,exit end if EndPoint EndElement