int a;//=26 int b = 2; int c = 3; int foo = 4; a = b + 7 * foo - (c+5)/2; 24: MOV #10, #0 //t7 25:MOV R1, 26 MOV R2, 3 SUB R1, R2 MOV #11, R1 //t8 MOV R1,#10 MOV R2,#11 CMP R1,R2 JNG 35 MOV #1, 6 MOV #2, 5 S1->35 JUMP JZ JNZ JL JNG JG JNL if (a-0>26-3) { b = 6; if (a-3<26-3) { b = 7; if (a-3<26-3) { b = 7; c = 5; } c = 5; } if (a-3<26-3) { b = 7; c = 5; } c = 4; } MOV R1,#0 MOV R2,0 SUB R1,R2 MOV #12,R1 MOV R1,26 MOV R2,3 SUB R1,R2 MOV #13,R1 MOV R1,#12 MOV R2,#13 CMP R1,R2 JNG S1 MOV #1,6//b=6 MOV R1,#0 MOV R2,3 SUB R1,R2 MOV #12,R1 MOV R1,26 MOV R2,3 SUB R1,R2 MOV #13,R1 MOV R1,#12 MOV R2,#13 CMP R1,R2 JNL S2 MOV #1,7//b=7 MOV #2,5//c=5 S2: MOV #2,4//c=4 S1 W1: if_stat : IF (war) {akcja_Sem generowania skoków} ciało_warunku {generuj_tłumaczenie_etykiety na adres;}; ; W2: if_stat : if_begin ciało_warunku {generuj_tłumaczenie_etykiety na adres;}; ; if_begin: IF (war) {akcja_Sem generowania skoków} war: wyr oper_porówn wyr {akcja_Sem;} ;