From 50964e945e5643ac3fbc3fc2237c27f16927a9ce Mon Sep 17 00:00:00 2001 From: andromeda Date: Sat, 7 Mar 2026 16:44:40 +0100 Subject: [PATCH] encode register tokens --- twasm/README.md | 79 ++++++++++++++++++++++ twasm/asm/main.asm | 165 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 244 insertions(+) diff --git a/twasm/README.md b/twasm/README.md index 6640f5d..a8ad332 100644 --- a/twasm/README.md +++ b/twasm/README.md @@ -48,4 +48,83 @@ supported tokens are listed below | token | id | notes | |-------|--------|-| +| rax | 0x0000 | | +| rbx | 0x0001 | | +| rcx | 0x0002 | | +| rdx | 0x0003 | | +| rsi | 0x0004 | | +| rdi | 0x0005 | | +| rsp | 0x0006 | | +| rbp | 0x0007 | | +| r8 | 0x0008 | | +| r9 | 0x0009 | | +| r10 | 0x000A | | +| r11 | 0x000B | | +| r12 | 0x000C | | +| r13 | 0x000D | | +| r14 | 0x000E | | +| r15 | 0x000F | | +| eax | 0x0010 | | +| ebx | 0x0011 | | +| ecx | 0x0012 | | +| edx | 0x0013 | | +| esi | 0x0014 | | +| edi | 0x0015 | | +| esp | 0x0016 | | +| ebp | 0x0017 | | +| r8d | 0x0018 | | +| r9d | 0x0019 | | +| r10d | 0x001A | | +| r11d | 0x001B | | +| r12d | 0x001C | | +| r13d | 0x001D | | +| r14d | 0x001E | | +| r15d | 0x001F | | +| ax | 0x0020 | | +| bx | 0x0021 | | +| cx | 0x0022 | | +| dx | 0x0023 | | +| si | 0x0024 | | +| di | 0x0025 | | +| sp | 0x0026 | | +| bp | 0x0027 | | +| r8w | 0x0028 | | +| r9w | 0x0029 | | +| r10w | 0x002A | | +| r11w | 0x002B | | +| r12w | 0x002C | | +| r13w | 0x002D | | +| r14w | 0x002E | | +| r15w | 0x002F | | +| al | 0x0030 | | +| bl | 0x0031 | | +| cl | 0x0032 | | +| dl | 0x0033 | | +| sil | 0x0034 | | +| dil | 0x0035 | | +| spl | 0x0036 | | +| bpl | 0x0037 | | +| r8b | 0x0038 | | +| r9b | 0x0039 | | +| r10b | 0x003A | | +| r11b | 0x003B | | +| r12b | 0x003C | | +| r13b | 0x003D | | +| r14b | 0x003E | | +| r15b | 0x003F | | +| ah | 0x0040 | | +| bh | 0x0041 | | +| ch | 0x0042 | | +| dh | 0x0043 | | +| cs | 0x0044 | | +| ds | 0x0045 | | +| es | 0x0046 | | +| fs | 0x0047 | | +| gs | 0x0048 | | +| ss | 0x0049 | | +| cr0 | 0x004A | | +| cr2 | 0x004B | | +| cr3 | 0x004C | | +| cr4 | 0x004D | | +| cr8 | 0x004E | | | | 0xFFFF | unrecognised token | diff --git a/twasm/asm/main.asm b/twasm/asm/main.asm index d2a6431..e26afb0 100644 --- a/twasm/asm/main.asm +++ b/twasm/asm/main.asm @@ -388,6 +388,171 @@ test_elemb: ; data ; ------------------------------------------------------------------------------ +tokens: + .length2 + db "r8" + dw 0x0008 + db "r9" + dw 0x0009 + db "ax" + dw 0x0020 + db "bx" + dw 0x0021 + db "cx" + dw 0x0022 + db "dx" + dw 0x0023 + db "si" + dw 0x0024 + db "di" + dw 0x0025 + db "sp" + dw 0x0026 + db "bp" + dw 0x0027 + db "al" + dw 0x0030 + db "bl" + dw 0x0031 + db "cl" + dw 0x0032 + db "dl" + dw 0x0033 + db "ah" + dw 0x0040 + db "bh" + dw 0x0041 + db "ch" + dw 0x0042 + db "dh" + dw 0x0043 + db "cs" + dw 0x0044 + db "ds" + dw 0x0045 + db "es" + dw 0x0046 + db "fs" + dw 0x0047 + db "gs" + dw 0x0048 + db "ss" + dw 0x0049 + .length3 + db "rax" + dw 0x0000 + db "rbx" + dw 0x0001 + db "rcx" + dw 0x0002 + db "rdx" + dw 0x0003 + db "rsi" + dw 0x0004 + db "rdi" + dw 0x0005 + db "rsp" + dw 0x0006 + db "rbp" + dw 0x0007 + db "r10" + dw 0x000A + db "r11" + dw 0x000B + db "r12" + dw 0x000C + db "r13" + dw 0x000D + db "r14" + dw 0x000E + db "r15" + dw 0x000F + db "eax" + dw 0x0010 + db "ebx" + dw 0x0011 + db "ecx" + dw 0x0012 + db "edx" + dw 0x0013 + db "esi" + dw 0x0014 + db "edi" + dw 0x0015 + db "esp" + dw 0x0016 + db "ebp" + dw 0x0017 + db "r8d" + dw 0x0018 + db "r9d" + dw 0x0019 + db "r8w" + dw 0x0028 + db "r9w" + dw 0x0029 + db "sil" + dw 0x0034 + db "dil" + dw 0x0035 + db "spl" + dw 0x0036 + db "bpl" + dw 0x0037 + db "r8b" + dw 0x0038 + db "r9b" + dw 0x0039 + db "cr0" + dw 0x004A + db "cr2" + dw 0x004B + db "cr3" + dw 0x004C + db "cr4" + dw 0x004D + db "cr8" + dw 0x004E + .length4 + db "r10d" + dw 0x001A + db "r11d" + dw 0x001B + db "r12d" + dw 0x001C + db "r13d" + dw 0x001D + db "r14d" + dw 0x001E + db "r15d" + dw 0x001F + db "r10w" + dw 0x002A + db "r11w" + dw 0x002B + db "r12w" + dw 0x002C + db "r13w" + dw 0x002D + db "r14w" + dw 0x002E + db "r15w" + dw 0x002F + db "r10b" + dw 0x003A + db "r11b" + dw 0x003B + db "r12b" + dw 0x003C + db "r13b" + dw 0x003D + db "r14b" + dw 0x003E + db "r15b" + dw 0x003F + .length5 + .end + msg_welcome db "Welcome to Twasm", 0x0D, 0x0A, 0x00 msg_halt db "halted.", 0x0D, 0x0A, 0x00 msg_pass db "passed.", 0x0D, 0x0A, 0x00