about summary refs log tree commit diff stats
path: root/test/samples
diff options
context:
space:
mode:
authorCamille Mougey <commial@gmail.com>2015-02-13 14:16:52 +0100
committerCamille Mougey <commial@gmail.com>2015-02-13 14:16:52 +0100
commit13a3fcbb168589703d56d6c36312d788f68786e3 (patch)
treeb54647a953afbb30b0939d90e9ac256604093b74 /test/samples
parent9af3164437657d93916b3658c483d6c3e4949cd5 (diff)
parentef6c6b0b855800375758058863861f28657b5ba7 (diff)
downloadmiasm-13a3fcbb168589703d56d6c36312d788f68786e3.tar.gz
miasm-13a3fcbb168589703d56d6c36312d788f68786e3.zip
Merge pull request #69 from serpilliere/x86_fix_op_32_in_64
X86 fix op 32 in 64
Diffstat (limited to 'test/samples')
-rw-r--r--test/samples/x86_64/mul_div.S55
1 files changed, 55 insertions, 0 deletions
diff --git a/test/samples/x86_64/mul_div.S b/test/samples/x86_64/mul_div.S
new file mode 100644
index 00000000..4a5fcfdd
--- /dev/null
+++ b/test/samples/x86_64/mul_div.S
@@ -0,0 +1,55 @@
+main:
+	;; MUL
+	MOV RCX, 0x20000002
+	MOV RAX, 0x1122334455667788
+	MOV RDX, RAX
+	MOV RAX, 0x1122334400000020
+	MUL ECX
+	CMP RAX, 0x40
+	JNZ bad
+	CMP RDX, 0x4
+	JNZ bad
+
+	;; IMUL
+	MOV RCX, 0xFFFFFFF2
+	MOV RAX, 0x1122334455667788
+	MOV RDX, RAX
+	MOV RAX, 0x1122334400000020
+	IMUL ECX
+	MOV ESI, 0xFFFFFE40
+	CMP RAX, RSI
+	JNZ bad
+	MOV ESI 0xFFFFFFFF
+	CMP RDX, RSI
+	JNZ bad
+
+	;; DIV
+	MOV RAX, 0x1122334400000002
+	MOV RCX, RAX
+	MOV RAX, 0x1122334400000000
+	MOV RDX, RAX
+	MOV RAX, 0x1122334440000003
+	DIV ECX
+	CMP RAX, 0x20000001
+	JNZ bad
+	CMP RDX, 0x1
+	JNZ bad
+
+	;; IDIV
+	MOV RAX, 0x11223344FFFFFFF2
+	MOV RCX, RAX
+	MOV RAX, 0x11223344FFFFFFFF
+	MOV RDX, RAX
+	MOV RAX, 0x11223344FFFFFFF2
+	IDIV ECX
+	CMP RAX, 0x1
+	JNZ bad
+	CMP RDX, 0x0
+	JNZ bad
+
+
+	RET
+
+bad:
+	INT 0x3
+