about summary refs log tree commit diff stats
path: root/test/samples
diff options
context:
space:
mode:
authorFabrice Desclaux <fabrice.desclaux@cea.fr>2015-02-20 14:05:49 +0100
committerFabrice Desclaux <fabrice.desclaux@cea.fr>2015-02-20 14:05:49 +0100
commitc166f6cf0eb5d8dd697f03cb89c2703db1554b2b (patch)
tree878c5e56046c920e58548fd522140fa73b3bed0e /test/samples
parent82d3e73cd19f3638265d35f765cdab1dc13d1ddb (diff)
downloadmiasm-c166f6cf0eb5d8dd697f03cb89c2703db1554b2b.tar.gz
miasm-c166f6cf0eb5d8dd697f03cb89c2703db1554b2b.zip
X86: add regression tests for bsf/bsr
Diffstat (limited to 'test/samples')
-rw-r--r--test/samples/x86_32/bsr_bsf.S42
1 files changed, 42 insertions, 0 deletions
diff --git a/test/samples/x86_32/bsr_bsf.S b/test/samples/x86_32/bsr_bsf.S
new file mode 100644
index 00000000..0f915ed1
--- /dev/null
+++ b/test/samples/x86_32/bsr_bsf.S
@@ -0,0 +1,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