'1' '2' '\n' '5' '2' '1' '\n' line ch value power9 quotient 9 '1' ? ? 11 0 16 true 19 1 25 '2' true 16 true 19 9 25 '\n' true 16 false 25 false 28 9*9*9*9*9 29 true 33 0 34 '0' 35 '0' 36 9 37 9*9*9*9 29 true 33 0 34 '0' 35 '0' 36 9 37 9*9*9 29 true 33 0 34 '0' 35 '0' 36 9 37 9*9 29 true 33 0 34 '0' 35 '0' 36 9 37 9 29 true 33 1 34 '1' 35 '1' 36 0 37 1 29 true 33 0 34 '0' 35 '0' 36 0 37 0 29 false 39 '\n' 40 '\n' 9 '5' 11 0 a = ((b * (c + d)) + 1) / e # c + d movl c,%eax addl d,%eax # %eax is c + d # b * (c + d) movl %eax,%ebx movl b,%eax mull %ebx # eax is b * (c + d) # ((b * (c + d)) + 1) addl $1,%eax # eax (b * (c + d)) + 1 # ((b * (c + d)) + 1) / e movl e,%ebx movl $0,%edx divl %ebx movl %eax,a while (fread(&ch, 1, 1, stdin)) { blah } ========================================== draft 1 checkPrecondition: if not fread(&ch, 1, 1, stdin) then goto exitLoop end if blah goto checkPrecondition exitLoop: ========================================== draft 2: checkPrecondition: if fread(&ch, 1, 1, stdin) == 0 then goto exitLoop end if blah goto checkPrecondition exitLoop: ========================================== draft 3: checkPrecondition: fread(&ch, 1, 1, stdin) if eax == 0 then goto exitLoop end if blah goto checkPrecondition exitLoop: ========================================== draft 4: checkPrecondition: fread(&ch, 1, 1, stdin) cmpl $0,%eax jz exitLoop # blah jmp checkPrecondition exitLoop: ========================================== draft 5: checkPrecondition: movl $3,%eax # read from a file movl $0,%ebx # stdin movl $ch,%ecx # &ch movl $1,%edx # read a single byte int $0x80 cmpl $0,%eax jz exitLoop # blah jmp checkPrecondition exitLoop: