code
- #include
- int main(void)
- {
- int a = 10;
- int b = 20;
- int result;
- __asm__("cmp %1, %2\n\t"
- "jge greater\n\t"
- "movl %1, %0\n\t"
- "jmp end\n"
- "greater:\n\t"
- "movl %2, %0\n"
- "end:"
- :"=r"(result)
- :"r"(a), "r"(b));
- printf("The larger value is %d\n", result);
- return 0;
- }
- #include
- int main()
- {
- int a = 10;
- int b = 20;
- int result;
-
- result = a > b ? a : b;
- printf("The larger value is %d\n", result);
- return 0;
- }
Result
zhili-hus-computer:~/Documents zhilihu$ ls -l test a.out
-rwxr-xr-x 1 zhilihu zhilihu 13380 Feb 26 19:18 a.out
-rwxr-xr-x 1 zhilihu zhilihu 13344 Feb 26 19:27 test
zhili-hus-computer:~/Documents zhilihu$ time ./a.out
The larger value is 20
real 0m0.032s
user 0m0.002s
sys 0m0.007s
zhili-hus-computer:~/Documents zhilihu$ time ./test
The larger value is 20
real 0m0.062s
user 0m0.002s
sys 0m0.010s