aboutsummaryrefslogtreecommitdiff
path: root/ia32
diff options
context:
space:
mode:
authorAleksey Veresov <aleksey@veresov.pro>2020-10-16 22:38:45 +0300
committerAleksey Veresov <aleksey@veresov.pro>2020-10-16 22:38:45 +0300
commita5ada20d77f6fcf7bf54e49402e55d3b1c56df5e (patch)
treeb6f9a205a4da8c00c58b5da66c74b99874f4f620 /ia32
parentce9e52469d0b12b3231ccc199e1b19bb924f54cd (diff)
downloadcryptrobber-a5ada20d77f6fcf7bf54e49402e55d3b1c56df5e.tar
cryptrobber-a5ada20d77f6fcf7bf54e49402e55d3b1c56df5e.tar.xz
cryptrobber-a5ada20d77f6fcf7bf54e49402e55d3b1c56df5e.zip
Meh.
Diffstat (limited to 'ia32')
-rw-r--r--ia32/macro.sts20
-rw-r--r--ia32/math.sts16
2 files changed, 33 insertions, 3 deletions
diff --git a/ia32/macro.sts b/ia32/macro.sts
index 5aa3b35..34c3a9d 100644
--- a/ia32/macro.sts
+++ b/ia32/macro.sts
@@ -40,13 +40,21 @@
[ as 1
_data_segment ?choose
- defword %1%
- lit ?$ # 0 ?.
- exit
+ defword %1%
+ lit ?$ # 0 ?.
+ exit
_code_segment ?choose
lit ?. !
]
+[ local 1
+ top as %1%
+]
+
+[ ref 0
+ top + 1 +
+]
+
[ literal 0
lit # %1% ?.
]
@@ -84,3 +92,9 @@
branch ?swap ?.
?$ ?swap ?!
]
+
+[ change 0
+ dup get
+ swap 2 get swap 2 + set
+ swap drop
+]
diff --git a/ia32/math.sts b/ia32/math.sts
index 1864a93..95ca5f7 100644
--- a/ia32/math.sts
+++ b/ia32/math.sts
@@ -17,6 +17,22 @@ defasm /
# 50 ?' ; push eax
next
+defasm mod
+ # 5b ?' ; pop ebx
+ # 58 ?' ; pop eax
+ # 31 ?' # d2 ?' ; xor edx, edx
+ # f7 ?' # f3 ?' ; div ebx
+ # 52 ?' ; push edx
+next
+
+defasm div
+ # 5b ?' ; pop ebx
+ # 58 ?' ; pop eax
+ # 31 ?' # d2 ?' ; xor edx, edx
+ # f7 ?' # f3 ?' ; div ebx
+ # 50 ?' ; push eax
+next
+
defasm =
# 5b ?' ; pop ebx
# 58 ?' ; pop eax