our pseudocode for the loop now looks like this sub inline my @asm; #the ASM cmds buffer do { getinput(); push(@asm,input); if(isloop(input)) { do { if(isjmp(input)) { $continue=testjmp(); } elsif(isloop(input())#loops and jumps are handled differently { $continue=testloop(); } else { dothing(input); } }until($continue==0) } else { dealwithregularcommand(); } }