aboutsummaryrefslogtreecommitdiff
path: root/ia32
diff options
context:
space:
mode:
authorexegete <nikitf-97@mail.ru>2020-10-16 20:14:51 +0300
committerexegete <nikitf-97@mail.ru>2020-10-16 20:14:51 +0300
commitce9e52469d0b12b3231ccc199e1b19bb924f54cd (patch)
treeb011b8652e33a655852608dbba387d8bfec06805 /ia32
parent8ed92623de375e93d384aeeaf9f2520f48c9257d (diff)
downloadcryptrobber-ce9e52469d0b12b3231ccc199e1b19bb924f54cd.tar
cryptrobber-ce9e52469d0b12b3231ccc199e1b19bb924f54cd.tar.xz
cryptrobber-ce9e52469d0b12b3231ccc199e1b19bb924f54cd.zip
test module; top, as added
Diffstat (limited to 'ia32')
-rw-r--r--ia32/core.sts2
-rw-r--r--ia32/macro.sts18
-rw-r--r--ia32/stack.sts4
-rw-r--r--ia32/syscall.sts2
4 files changed, 23 insertions, 3 deletions
diff --git a/ia32/core.sts b/ia32/core.sts
index fcb62ae..17b7d89 100644
--- a/ia32/core.sts
+++ b/ia32/core.sts
@@ -15,3 +15,5 @@ defasm lit
# ad ?' ; lodsd
# 50 ?' ; push eax
next
+
+defconst word_size 4
diff --git a/ia32/macro.sts b/ia32/macro.sts
index 3842a5c..5aa3b35 100644
--- a/ia32/macro.sts
+++ b/ia32/macro.sts
@@ -18,14 +18,19 @@
_docol # 4 ?+ ?.
]
+[ defconst 2
+ defasm %1%
+ # 68 ?' # %2% ?. ; push %2%
+ next
+]
+
[ defarr 2
_data_segment ?choose
?$ ?? _%1%_arr
# %2% # 4 ?* ?res
_code_segment ?choose
defasm %1%
- ; push _%1%_arr
- # 68 ?' _%1%_arr ?.
+ # 68 ?' _%1%_arr ?. ; push _%1%_arr
next
]
@@ -33,6 +38,15 @@
defarr %1% 1
]
+[ as 1
+ _data_segment ?choose
+ defword %1%
+ lit ?$ # 0 ?.
+ exit
+ _code_segment ?choose
+ lit ?. !
+]
+
[ literal 0
lit # %1% ?.
]
diff --git a/ia32/stack.sts b/ia32/stack.sts
index 7756706..f3c8bab 100644
--- a/ia32/stack.sts
+++ b/ia32/stack.sts
@@ -1,3 +1,7 @@
+defasm top
+ # 54 ?' ; push esp
+next
+
defasm get
# 58 ?' ; pop eax
# 8b ?' # 4 ?' # 84 ?' ; mov eax, [esp + 4 * eax]
diff --git a/ia32/syscall.sts b/ia32/syscall.sts
index 7ff7480..92d4d3a 100644
--- a/ia32/syscall.sts
+++ b/ia32/syscall.sts
@@ -5,7 +5,7 @@ defasm sys_exit
; no need in next since this is the last instruction
_data_segment ?choose
- ?$ ?? _iobuf # 0 ?'
+ ?$ ?? _iobuf # 0 ?.
_code_segment ?choose
defasm sys_read