Commit Graph

15 Commits

Author SHA1 Message Date
Kartik Agaram 431627b242 4886 2018-12-28 21:26:42 -08:00
Kartik Agaram 5f3b3e7aea 4830
New helper: printing a byte in textual (hex) form.

This required adding instructions for bitwise shift operations.
2018-12-03 23:26:56 -08:00
Kartik Agaram b6fdd2e4e5 4717 2018-10-24 00:01:00 -07:00
Kartik Agaram 0f851e48aa 4695 2018-10-14 00:00:39 -07:00
Kartik Agaram 06d9b1a541 4694
Check for duplicate docstrings.
2018-10-13 23:55:07 -07:00
Kartik Agaram dc559a00c7 4693
Add the standard mnemonic for each opcode.

We aren't ever going to have complete docs of the subset of the x86 ISA
we support, so we need to help readers cross-correlate with the complete
docs.
2018-10-13 23:50:10 -07:00
Kartik Agaram 116e7730d7 4692 - update online help for subx
It now includes details for 8-bit registers. And we'll just use the classic
names for the registers so that the relationships between 8- and 32-bit
versions are more obvious.
2018-10-13 23:18:31 -07:00
Kartik Agaram 222c31db21 4688 2018-10-12 23:41:43 -07:00
Kartik Agaram 01dada15c3 4687 2018-10-12 23:27:26 -07:00
Kartik Agaram ca00f6b97c 4634 2018-10-01 11:09:07 -07:00
Kartik Agaram 0a7b03727a 4547 2018-09-16 22:02:31 -07:00
Kartik Agaram 2903607ab4 4540 2018-09-11 22:28:39 -07:00
Kartik Agaram 1a62e61df4 4538 2018-09-07 22:20:29 -07:00
Kartik Agaram e07a3f2886 4537
Streamline the factorial function; we don't need to save a stack variable
into a register before operating on it. All instructions can take a stack
variable directly.

In the process we found two bugs:

a) Opcode f7 was not implemented correctly. It was internally consistent
but I'd never validated it against a natively running program. Turns out
it encodes multiple instructions, not just 'not'.

b) The way we look up imm32 operands was sometimes reading them before
disp8/disp32 operands.
2018-09-07 22:19:13 -07:00
Kartik Agaram a066ad7ed7 4469 2018-08-03 23:42:37 -07:00