#include <time.h>
#include <stdio.h>
int main(void) {
int x;
int n = 32768;
//for(; scanf("%d",&x) > 0 && x != 42; printf("%d\n", x));
printf("Wait for %d lines with 32768 pixels each...\n", n
); for(x = 0; x < n; ++ x) {
__asm(
" movl $0x7FFF0000,%eax;"
" movl $0x00007FFF,%ecx;"
" addw %ax,%ax;"
" subl %eax,%ecx;"
" sbbl %ebx,%ebx;"
" subw %ax,%cx;"
" sbbw %bx,%bx;"
" xorl %ebx,%ecx;"
" addw %bx,%cx;"
" subl %ebx,%ecx;"
" orl $0x000010001,%ebx;"
" andl $0x07FFF7FFF,%ebx;"
" movl %ecx,%edx;"
" rorl $16,%edx;"
" movl %edx,%edi;"
" addw %cx,%dx;"
" subl %ecx,%edx;"
" sbbl %esi,%esi;"
" subw %cx,%dx;"
" sbbw %si,%si;"
" movswl %si,%esi;"
" andl %esi,%ecx;"
" notl %esi;"
" andl %esi,%edi;"
" orl %edi,%ecx;"
" movl %ecx,%edx;"
" shll $16,%ecx;"
" movw %dx,%cx;"
" shrw $1,%dx;"
" notw %si;"
"Step:;"
" movl %edx,%edi;"
" shrl $16,%edi;"
" addw %di,%dx;"
" cmpw %dx,%cx;"
" sbbl %edi,%edi;"
" andw %cx,%di;"
" subw %di,%dx;"
" sarl $16,%edi;"
" orl %esi,%edi;"
" andl %ebx,%edi;"
" addl %edi,%eax;"
" andl $0x7FFF7FFF,%eax;"
" subl $0x00010000,%ecx;"
" jns Step;");
}
time_t finish
= time(0) - start
; struct tm tstruct;
char buf[80];
strftime(buf
, sizeof(buf
), "Elapsed time is %S seconds", &tstruct
); return 0;
}
I2luY2x1ZGUgPHRpbWUuaD4KI2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgbWFpbih2b2lkKSB7IAoJaW50IHg7CglpbnQgbiA9IDMyNzY4OwoJLy9mb3IoOyBzY2FuZigiJWQiLCZ4KSA+IDAgJiYgeCAhPSA0MjsgcHJpbnRmKCIlZFxuIiwgeCkpOwoJcHJpbnRmKCJXYWl0IGZvciAlZCBsaW5lcyB3aXRoIDMyNzY4IHBpeGVscyBlYWNoLi4uXG4iLCBuKTsKICAgIHRpbWVfdCAgICAgc3RhcnQgPSB0aW1lKDApOwogICAgZm9yKHggPSAwOyB4IDwgbjsgKysgeCkgewoJX19hc20oCiIJbW92bAkkMHg3RkZGMDAwMCwlZWF4OyIKIgltb3ZsCSQweDAwMDA3RkZGLCVlY3g7IgoiCWFkZHcJJWF4LCVheDsiCiIJc3VibAklZWF4LCVlY3g7IgoiCXNiYmwJJWVieCwlZWJ4OyIKIglzdWJ3CSVheCwlY3g7IgoiCXNiYncJJWJ4LCVieDsiCiIJeG9ybAklZWJ4LCVlY3g7IgoiCWFkZHcJJWJ4LCVjeDsiCiIJc3VibAklZWJ4LCVlY3g7IgoiCW9ybAkkMHgwMDAwMTAwMDEsJWVieDsiCiIJYW5kbAkkMHgwN0ZGRjdGRkYsJWVieDsiCiIJbW92bAklZWN4LCVlZHg7IgoiCXJvcmwJJDE2LCVlZHg7IgoiCW1vdmwJJWVkeCwlZWRpOyIKIglhZGR3CSVjeCwlZHg7IgoiCXN1YmwJJWVjeCwlZWR4OyIKIglzYmJsCSVlc2ksJWVzaTsiCiIJc3VidwklY3gsJWR4OyIKIglzYmJ3CSVzaSwlc2k7IgoiCW1vdnN3bAklc2ksJWVzaTsiCiIJYW5kbAklZXNpLCVlY3g7IgoiCW5vdGwJJWVzaTsiCiIJYW5kbAklZXNpLCVlZGk7IgoiCW9ybAklZWRpLCVlY3g7IgoiCW1vdmwJJWVjeCwlZWR4OyIKIglzaGxsCSQxNiwlZWN4OyIKIgltb3Z3CSVkeCwlY3g7IgoiCXNocncJJDEsJWR4OyIKIglub3R3CSVzaTsiCiJTdGVwOjsiCiIJbW92bAklZWR4LCVlZGk7IgoiCXNocmwJJDE2LCVlZGk7IgoiCWFkZHcJJWRpLCVkeDsiCiIJY21wdwklZHgsJWN4OyIKIglzYmJsCSVlZGksJWVkaTsiCiIJYW5kdwklY3gsJWRpOyIKIglzdWJ3CSVkaSwlZHg7IgoiCXNhcmwJJDE2LCVlZGk7IgoiCW9ybAklZXNpLCVlZGk7IgoiCWFuZGwJJWVieCwlZWRpOyIKIglhZGRsCSVlZGksJWVheDsiCiIJYW5kbAkkMHg3RkZGN0ZGRiwlZWF4OyIKIglzdWJsCSQweDAwMDEwMDAwLCVlY3g7IgoiCWpucwlTdGVwOyIpOwoJfQogICAgdGltZV90ICAgICBmaW5pc2ggPSB0aW1lKDApIC0gc3RhcnQ7CiAgICBzdHJ1Y3QgdG0gIHRzdHJ1Y3Q7CiAgICBjaGFyICAgICAgIGJ1Zls4MF07CiAgICB0c3RydWN0ID0gKmxvY2FsdGltZSgmZmluaXNoKTsKICAgIHN0cmZ0aW1lKGJ1Ziwgc2l6ZW9mKGJ1ZiksICJFbGFwc2VkIHRpbWUgaXMgJVMgc2Vjb25kcyIsICZ0c3RydWN0KTsKICAgIHByaW50ZigiJXNcbiIsIGJ1Zik7CglyZXR1cm4gMDsKfQ==