From 15588df034faa2c36f389be8b704c696da933aa0 Mon Sep 17 00:00:00 2001 From: Koichi Nakamura Date: Tue, 29 Dec 2020 15:23:38 +0900 Subject: [PATCH] Add "@" and "!" --- README.md | 2 ++ planck.xxd | 12 ++++++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 34373cf..49e4078 100644 --- a/README.md +++ b/README.md @@ -23,3 +23,5 @@ $ cat helloworld.fs | ./plank | J | 0jump | ( a -- ) Jump if a == 0. | | f | find | ( c -- xt ) Get execution token of c | | x | execute | ( xt -- ... ) Run the execution token | +| @ | fetch | ( addr -- a ) Load value from addr | +| ! | store | ( a addr -- ) Store a to addr | diff --git a/planck.xxd b/planck.xxd index 825e4ae..8d88ade 100644 --- a/planck.xxd +++ b/planck.xxd @@ -6,10 +6,10 @@ 00000028: 3400 2000 0100 0000 e_ehsize,e_phentsize,e_phnum,e_shentsize 00000030: 0000 0000 0100 0000 e_shnum,e_shstrndx, PT_LOAD 00000038: 0000 0000 0080 0408 p_offset,p_vaddr=0x08048000 -00000040: 0000 0000 0002 0000 p_paddr,p_filesz +00000040: 0000 0000 3002 0000 p_paddr,p_filesz 00000048: 0000 0008 0700 0000 p_memsz(128MB),PF_X|PF_W|PF_R 00000050: 0010 0000 0200 0000 p_align, -00000058: f081 0408 4881 0408 , (5c: key) +00000058: 1882 0408 4881 0408 , (5c: key) 00000060: c881 0408 f881 0408 (60: find) (64: execute) 00000068: 9881 0408 f0ff ffff (68: jump) (6c: -16) 00000070: be5c 8004 08bd 0080 (70: movl $interpreter,%esi) (75: movl $0x10048000,%ebp) @@ -60,3 +60,11 @@ 000001f0: c081 0408 0178 0000 x: execute 000001f8: fc81 0408 58ff 2000 popl %eax; jmp *(%eax) + +00000200: f081 0408 0140 0000 @: fetch +00000208: 0c82 0408 588b 0050 popl %eax; movl (%eax),%eax;push %eax; +00000210: adff 2000 0000 0000 next; + +00000218: 0082 0408 0121 0000 !: store +00000220: 2482 0408 585b 8918 popl %eax; popl %ebx; movl %ebx,(%eax) +00000228: adff 2000 0000 0000 next;