about summary refs log tree commit diff stats
path: root/test/samples/x86_32/bsr_bsf.S
blob: 0f915ed166db5d0d3b5c32c085309480c9f2729c (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
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