lahf.c revision 01a4d87b92224d2507a2097fdcdf2940a3a39444
1
2#include <stdio.h>
3
4extern int foo_1 ( void );
5asm("\n"
6"foo_1:\n"
7"\tpushl $0\n"
8"\tpopfl\n"
9"\tmovl $0xFFFFFFFF, %eax\n"
10"\tmovl $0x12345678, %edx\n"
11"\tsubl %eax, %edx\n"
12"\tlahf\n"
13"\tret\n"
14);
15
16extern int foo_0 ( void );
17asm("\n"
18"foo_0:\n"
19"\tpushl $0\n"
20"\tpopfl\n"
21"\tmovl $0x0, %eax\n"
22"\tmovl $0x12345678, %edx\n"
23"\tsubl %eax, %edx\n"
24"\tlahf\n"
25"\tret\n"
26);
27
28int main ( void )
29{
30  printf("0x%x\n", foo_0());
31  printf("0x%x\n", foo_1());
32  return 0;
33}
34