aboutsummaryrefslogtreecommitdiff
path: root/ia32/stack.sts
diff options
context:
space:
mode:
Diffstat (limited to 'ia32/stack.sts')
-rw-r--r--ia32/stack.sts28
1 files changed, 20 insertions, 8 deletions
diff --git a/ia32/stack.sts b/ia32/stack.sts
index 56f4f07..cf1bd21 100644
--- a/ia32/stack.sts
+++ b/ia32/stack.sts
@@ -1,18 +1,30 @@
-defasm drop
- # 58 ?' ; pop eax
+defasm get
+ # 58 ?' ; pop eax
+ # 8b ?' # 4 ?' # 84 ?' ; mov eax, [esp + 4 * eax]
+ # 50 ?' ; push eax
+next
+
+defasm set
+ # 5b ?' ; pop ebx
+ # 58 ?' ; pop eax
+ # 89 ?' # 04 ?' # 9c ?' ; mov [esp + 4 * ebx], eax
next
+defasm drop
+ # 58 ?' ; pop eax
+next
+
defasm dup
- # ff ?' # 34 ?' # 24 ?' ; push dword [esp]
+ # ff ?' # 34 ?' # 24 ?' ; push dword [esp]
next
defasm over
- # ff ?' # 74 ?' # 24 ?' # 4 ?' ; push dword [esp + 4]
+ # ff ?' # 74 ?' # 24 ?' # 4 ?' ; push dword [esp + 4]
next
defasm swap
- # 58 ?' ; pop eax
- # 5b ?' ; pop ebx
- # 50 ?' ; push eax
- # 53 ?' ; push ebx
+ # 58 ?' ; pop eax
+ # 5b ?' ; pop ebx
+ # 50 ?' ; push eax
+ # 53 ?' ; push ebx
next