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
|
main:
;; BSF
;; standard case
MOV ECX, 0xF0000004
MOV EAX, 0x0
BSF EAX, ECX
JZ bad
CMP EAX, 2
JNZ bad
;; case undef
MOV ECX, 0x0
MOV EAX, 0x1337beef
BSF EAX, ECX
JNZ bad
CMP EAX, 0x1337beef
JNZ bad
;; BSR
;; standard case
MOV ECX, 0x4000000F
MOV EAX, 0x0
BSR EAX, ECX
JZ bad
CMP EAX, 30
JNZ bad
;; case undef
MOV ECX, 0x0
MOV EAX, 0x1337beef
BSR EAX, ECX
JNZ bad
CMP EAX, 0x1337beef
JNZ bad
RET
bad:
INT 0x3
RET
|