From 173ba956ad9cae9bbd0f1f4e593e98da85f41322 Mon Sep 17 00:00:00 2001
From: Nguyen Anh Quynh <aquynh@gmail.com>
Date: Mon, 23 May 2016 03:05:00 +0800
Subject: [PATCH] regress: add x86_issue9.py

---
 suite/regress/x86_issue9.py | 31 +++++++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)
 create mode 100755 suite/regress/x86_issue9.py

diff --git a/suite/regress/x86_issue9.py b/suite/regress/x86_issue9.py
new file mode 100755
index 0000000..fabd5f8
--- /dev/null
+++ b/suite/regress/x86_issue9.py
@@ -0,0 +1,31 @@
+#!/usr/bin/python
+
+# Tests if the SS segment override prefix is not explicitly produced when unnecessary
+
+# Github issue: #9
+# Author: Duncan (mrexodia)
+
+from keystone import *
+
+import regress
+
+class TestX86(regress.RegressTest):
+    def runTest(self):
+        # Initialize Keystone engine
+        ks = Ks(KS_ARCH_X86, KS_MODE_32)
+
+        encoding, _ = ks.asm(b"MOVZX ECX,WORD PTR SS:[EAX*2+EBP-0x68]")
+        self.assertEqual(encoding, [ 0x0F, 0xB7, 0x4C, 0x45, 0x98 ])
+
+        encoding, _ = ks.asm(b"AND DWORD PTR DS:[EAX+0x70],0xFFFFFFFD")
+        self.assertEqual(encoding, [ 0x83, 0x60, 0x70, 0xFD ])
+
+        encoding, _ = ks.asm(b"MOV DWORD PTR [EBP-0x218],0x2080000")
+        self.assertEqual(encoding, [ 0xC7, 0x85, 0xE8, 0xFD, 0xFF, 0xFF, 0x00, 0x00, 0x08, 0x02 ])
+
+        encoding, _ = ks.asm(b"MOV DWORD PTR [ESP-0x218],0x2080000")
+        self.assertEqual(encoding, [ 0xC7, 0x84, 0x24, 0xE8, 0xFD, 0xFF, 0xFF, 0x00, 0x00, 0x08, 0x02 ])
+
+
+if __name__ == '__main__':
+    regress.main()
-- 
GitLab