diff options
author | Aleksey Veresov <aleksey@veresov.pro> | 2020-10-16 16:14:23 +0300 |
---|---|---|
committer | Aleksey Veresov <aleksey@veresov.pro> | 2020-10-16 16:14:23 +0300 |
commit | ac7b0be8b22245e20624b937733c16fb3a11b24b (patch) | |
tree | 8d7a85d2406a15704ef5b30859b73ee6340dc897 /ia32 | |
parent | 599a40b02532b65ce5b9ac538c8579e292389766 (diff) | |
parent | b92ef5212daad3f318aa26fdaf69fdeb7e66e8a4 (diff) | |
download | cryptrobber-ac7b0be8b22245e20624b937733c16fb3a11b24b.tar cryptrobber-ac7b0be8b22245e20624b937733c16fb3a11b24b.tar.xz cryptrobber-ac7b0be8b22245e20624b937733c16fb3a11b24b.zip |
Merge remote-tracking branch 'exegete/master' into master
Diffstat (limited to 'ia32')
-rw-r--r-- | ia32/stack.sts | 28 | ||||
-rw-r--r-- | ia32/syscall.sts | 6 |
2 files changed, 23 insertions, 11 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 diff --git a/ia32/syscall.sts b/ia32/syscall.sts index 3bce0ff..7ff7480 100644 --- a/ia32/syscall.sts +++ b/ia32/syscall.sts @@ -1,4 +1,4 @@ -defasm quit +defasm sys_exit # b8 ?' # 1 ?. ; mov eax, 1 # 31 ?' # db ?' ; xor ebx, ebx # cd ?' # 80 ?' ; int 0x80 @@ -8,7 +8,7 @@ _data_segment ?choose ?$ ?? _iobuf # 0 ?' _code_segment ?choose -defasm key +defasm sys_read # b8 ?' # 3 ?. ; mov eax, 3 # 31 ?' # db ?' ; xor ebx, ebx # b9 ?' _iobuf ?. ; mov ecx, _iobuf @@ -20,7 +20,7 @@ defasm key # 50 ?' ; push eax next -defasm emit +defasm sys_write # 58 ?' ; pop eax # a2 ?' _iobuf ?. ; mov [_iobuf], al # b8 ?' # 4 ?. ; mov eax, 4 |