diff options
author | Aleksey Veresov <aleksey@veresov.pro> | 2020-10-16 22:38:45 +0300 |
---|---|---|
committer | Aleksey Veresov <aleksey@veresov.pro> | 2020-10-16 22:38:45 +0300 |
commit | a5ada20d77f6fcf7bf54e49402e55d3b1c56df5e (patch) | |
tree | b6f9a205a4da8c00c58b5da66c74b99874f4f620 /ia32 | |
parent | ce9e52469d0b12b3231ccc199e1b19bb924f54cd (diff) | |
download | cryptrobber-a5ada20d77f6fcf7bf54e49402e55d3b1c56df5e.tar cryptrobber-a5ada20d77f6fcf7bf54e49402e55d3b1c56df5e.tar.xz cryptrobber-a5ada20d77f6fcf7bf54e49402e55d3b1c56df5e.zip |
Meh.
Diffstat (limited to 'ia32')
-rw-r--r-- | ia32/macro.sts | 20 | ||||
-rw-r--r-- | ia32/math.sts | 16 |
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 |