summary refs log tree commit diff stats
path: root/results/classifier/zero-shot-user-mode/syscall/1267955
blob: 5653b5f2b57177df288be5c002b5aca46dae4d35 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
syscall: 0.573
instruction: 0.298
runtime: 0.129



[i386] Parity Flag Not Set On xor %eax,%eax

Tested against qemu-1.7.0 as well as qemu-1.7.50 on Debian Sid

Steps To Reproduce

$ cat > prog.hex << EOF

7f 45 4c 46 01 01 01 00  00 00 00 00 00 00 00 00
02 00 03 00 01 00 00 00  54 80 04 08 34 00 00 00
00 00 00 00 00 00 00 00  34 00 20 00 01 00 28 00
00 00 00 00 01 00 00 00  00 00 00 00 00 80 04 08
00 80 04 08 76 00 00 00  76 00 00 00 05 00 00 00
00 10 00 00

31 c0
9c

b8 04 00 00 00
bb 01 00 00 00
89 e1
ba 04 00 00 00
cd 80

b8 01 00 00 00
bb 00 00 00 00
cd 80

EOF

$ xxd -p -r prog.hex > prog
$ chmod 700 prog

$ ./prog | hexdump -vC
00000000  46 02 00 00                                       |F...|
00000004

$ qemu-i386 ./prog | hexdump -vC
00000000  42 02 00 00                                       |B...|
00000004

On the other hand if [xor %eax, %eax] (31 c0) is replaced with sub %eax,%eax (29 c0), then the parity flag is set correctly.