diff options
| author | Irene Knapp <ireneista@irenes.space> | 2026-04-09 01:14:41 -0700 |
|---|---|---|
| committer | Irene Knapp <ireneista@irenes.space> | 2026-04-09 01:14:41 -0700 |
| commit | 46c8c093a2c717ea35326e8f484b33031801cb2d (patch) | |
| tree | 999e48d66cd2e51b3679ba3acfa390478ebd250f /quine.asm | |
| parent | febdc50bf4d6eadc14607ad8e19816be93b9709e (diff) | |
invent the concept of keywords
and define the ones related to Forth assembly Force-Push: yes Change-Id: Iae63e3e4875d6c66222f903f904bd46c00dfd40a
Diffstat (limited to 'quine.asm')
| -rw-r--r-- | quine.asm | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/quine.asm b/quine.asm index eaa355b..05ab887 100644 --- a/quine.asm +++ b/quine.asm @@ -3020,6 +3020,65 @@ cold_start: dq swap, unroll3, pack_beforenext dq lit, 8, packalign, early_here_store + ; The flatassembler names of all these were the same, but without the + ; colons, and with underscores instead of hyphens. + dq litstring, ":rax", early_keyword + dq litstring, ":rcx", early_keyword + dq litstring, ":rdx", early_keyword + dq litstring, ":rbx", early_keyword + dq litstring, ":rsp", early_keyword + dq litstring, ":rbp", early_keyword + dq litstring, ":rsi", early_keyword + dq litstring, ":rdi", early_keyword + dq litstring, ":r8", early_keyword + dq litstring, ":r9", early_keyword + dq litstring, ":r10", early_keyword + dq litstring, ":r11", early_keyword + dq litstring, ":r12", early_keyword + dq litstring, ":r13", early_keyword + dq litstring, ":r14", early_keyword + dq litstring, ":r15", early_keyword + dq litstring, ":eax", early_keyword + dq litstring, ":ecx", early_keyword + dq litstring, ":edx", early_keyword + dq litstring, ":ebx", early_keyword + dq litstring, ":esp", early_keyword + dq litstring, ":ebp", early_keyword + dq litstring, ":esi", early_keyword + dq litstring, ":edi", early_keyword + dq litstring, ":ax", early_keyword + dq litstring, ":cx", early_keyword + dq litstring, ":dx", early_keyword + dq litstring, ":bx", early_keyword + dq litstring, ":sp", early_keyword + dq litstring, ":bp", early_keyword + dq litstring, ":si", early_keyword + dq litstring, ":di", early_keyword + dq litstring, ":al", early_keyword + dq litstring, ":cl", early_keyword + dq litstring, ":dl", early_keyword + dq litstring, ":bl", early_keyword + dq litstring, ":ah", early_keyword + dq litstring, ":ch", early_keyword + dq litstring, ":dh", early_keyword + dq litstring, ":bh", early_keyword + dq litstring, ":cc-overflow", early_keyword + dq litstring, ":cc-no-overflow", early_keyword + dq litstring, ":cc-below", early_keyword + dq litstring, ":cc-above-equal", early_keyword + dq litstring, ":cc-equal", early_keyword + dq litstring, ":cc-not-equal", early_keyword + dq litstring, ":cc-below-equal", early_keyword + dq litstring, ":cc-above", early_keyword + dq litstring, ":cc-sign", 0, early_keyword + dq litstring, ":cc-not-sign", early_keyword + dq litstring, ":cc-even", 0, early_keyword + dq litstring, ":cc-odd", early_keyword + dq litstring, ":cc-less", 0, early_keyword + dq litstring, ":cc-greater-equal", early_keyword + dq litstring, ":cc-less-equal", early_keyword + dq litstring, ":cc-greater", early_keyword + dq early_describe_all, lit, 0, sys_exit ;;; For triage's sake, here's an inventory of everything else in the file. @@ -6159,6 +6218,23 @@ defword early_variable, 0 dq pack_next, lit, 8, packalign, early_here_store dq exit +; Stack in: +; heap address +; name string +; Stack out: +; heap address +defword early_keyword, 0 + dq docol + dq early_create, early_here, fetch, swap + ; (self codeword address, heap address) + dq early_docol_codeword + dq litstring, "lit", early_find, entry_to_execution_token, early_comma + dq swap, early_comma + ; (heap address) + dq litstring, "exit", early_find, entry_to_execution_token, early_comma + dq early_here, fetch, lit, 8, packalign, early_here_store + dq exit + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; Now.... what was our original goal, again? ;;; |