aboutsummaryrefslogtreecommitdiff
path: root/ia32/math.sts
diff options
context:
space:
mode:
Diffstat (limited to 'ia32/math.sts')
-rw-r--r--ia32/math.sts63
1 files changed, 63 insertions, 0 deletions
diff --git a/ia32/math.sts b/ia32/math.sts
new file mode 100644
index 0000000..1864a93
--- /dev/null
+++ b/ia32/math.sts
@@ -0,0 +1,63 @@
+defasm +
+ # 58 ?' ; pop eax
+ # 01 ?' # 04 ?' # 24 ?' ; add [esp], eax
+next
+
+defasm -
+ # 58 ?' ; pop eax
+ # 29 ?' # 04 ?' # 24 ?' ; sub [esp], eax
+next
+
+defasm /
+ # 5b ?' ; pop ebx
+ # 58 ?' ; pop eax
+ # 31 ?' # d2 ?' ; xor edx, edx
+ # f7 ?' # f3 ?' ; div ebx
+ # 52 ?' ; push edx
+ # 50 ?' ; push eax
+next
+
+defasm =
+ # 5b ?' ; pop ebx
+ # 58 ?' ; pop eax
+ # 39 ?' # d8 ?' ; cmp eax, ebx
+ # 0f ?' # 94 ?' # c0 ?' ; sete al
+ # 0f ?' # b6 ?' # c0 ?' ; movzx eax, al
+ # 50 ?' ; push eax
+next
+
+defasm !=
+ # 5b ?' ; pop ebx
+ # 58 ?' ; pop eax
+ # 39 ?' # d8 ?' ; cmp eax, ebx
+ # 0f ?' # 95 ?' # c0 ?' ; sete al
+ # 0f ?' # b6 ?' # c0 ?' ; movzx eax, al
+ # 50 ?' ; push eax
+next
+
+defasm !=
+ # 5b ?' ; pop ebx
+ # 58 ?' ; pop eax
+ # 39 ?' # d8 ?' ; cmp eax, ebx
+ # 0f ?' # 95 ?' # c0 ?' ; sete al
+ # 0f ?' # b6 ?' # c0 ?' ; movzx eax, al
+ # 50 ?' ; push eax
+next
+
+defasm <
+ # 5b ?' ; pop ebx
+ # 58 ?' ; pop eax
+ # 39 ?' # d8 ?' ; cmp eax, ebx
+ # 0f ?' # 92 ?' # c0 ?' ; setb al
+ # 0f ?' # b6 ?' # c0 ?' ; movzx eax, al
+ # 50 ?' ; push eax
+next
+
+defasm >
+ # 5b ?' ; pop ebx
+ # 58 ?' ; pop eax
+ # 39 ?' # d8 ?' ; cmp eax, ebx
+ # 0f ?' # 97 ?' # c0 ?' ; seta al
+ # 0f ?' # b6 ?' # c0 ?' ; movzx eax, al
+ # 50 ?' ; push eax
+next