Commit Graph

13 Commits

Author SHA1 Message Date
14a0d3d6f1 chore(interpreter): improve debug output 2025-07-06 22:36:13 +09:00
709d2a2639 fix(interpreter): fix safeguard for memory write_raw() 2025-07-02 17:16:01 +09:00
13cb907977 ft(interpreter): impl simple stack init 2025-07-01 09:46:06 +09:00
4f3d864179 chore(interpreter): move memory access functions to computer
This is mainly to ease the usage of memory access functions, meaning
leaner access of memory with general resulution of memory accesses via
the MemoryIndex struct.
2025-06-18 21:04:41 +09:00
79dc560689 chore(interpreter): rewrite displacement memoryindex logic
Previously, the displacement for a MemoryIndex was directly interpreted
and saved as a signed value.
Change this to the normal unsigned ImmediateOperand version to allow
for more flexible usage of this struct for general memoryaccess (future
commit) and just interpret the displacement member as signed, only when
being interpreted as such (memory access, display, ....
2025-06-18 20:35:23 +09:00
5a61eb5fd6 ft(interpreter): use DS and SS sregs as correct segment offsets 2025-06-18 20:35:23 +09:00
4aeacc649a ft(interpreter): impl far jumps with correct CS addressing 2025-06-18 20:35:04 +09:00
7f4d79d840 fix(interpreter): always read word from memory
It's not possible to know if a word or byte is requested, or rather
it would be a pain to retrieve that information.
It is much easier to just read a full word and then discard the top
half, if just a byte is needed.
2025-06-18 20:33:52 +09:00
7e7e648fa8 fix(interpreter): wrong le byte order on pop 2025-06-18 20:33:52 +09:00
5fab099cd8 ft(interpreter): impl push/pop 2025-06-18 20:33:52 +09:00
5942270f63 ft(interpreter): impl all low-hanging fruit instructions 2025-06-11 23:29:34 +09:00
232b73aad8 chore: Rename Operand -> ImmediateOperand 2025-06-05 10:08:35 +09:00
ef4663a245 ft: abstract and implement ADD::* interpretation 2025-06-04 23:01:04 +09:00