A few more non-recompilable references to 'asm' inside test blocks that got missed in the fix for issue 7.
Added a test that attempts to show that most of the illegal attempts to combine AH, BH, CH, and DH with REX prefixes actually are rejected. Many are currently accepted, so this test fails many times.  Fixed a couple of test comments. AJMems weren't printing their scale. Now they are.
Added more to the failing invalid 8-byte register test. I *think* it's reasonably complete now, though it may well still contain errors. Added the register names for the REX-enabled 8-bit registers SPL, BPL, SIL, DIL. This is so I can write failing tests that reference these names -- actual handling of the names is yet to come.
Added a monstrous and massively failing test to test many of the legal cases using the registers SPL, BPL, SIL, and DIL.
Small fix to the invalid byte registers test.
Significant work: Added two bits to the register code, to keep track of whether use of the register requires a REX prefix, or prohibits it, or can be used with or without a REX prefix.

Register size (width) was not getting set on creation.

Disabled lazy initialization of AJMem size -- the width of the operation can only be known through either the other operand or explicitly being set through #ptr32 and the like.

Added 8-bit registers SPL, BPL, SIL, DIL.

Regularized #isX86, which was incorrectly answering false for MMX registers, and may have given incorrect answers for some XMM registers.

A REX prefix of 0x40 can now be emitted, when it is required (only for registers SPL and so on).

#testCall was expecting REX.W to be set in a number of cases where it's not needed. It's no longer being generated in those cases, probably because of no longer lazy-initializing the size of an AJMem.
Limited victory. My new tests are now passing, but I've made a couple of other tests fail in ways for which the fix is not obvious.

Fixed a number of mistakes in #testByteRegs4through7.

Added accessors for BPL, DIL, SIL, SPL.

Added operand conflict checking at instruction creation time, rather than waiting until code generation. Not all conflicts can be checked early, and not all that can be checked early are checked early at this point.

Fixed a couple of bugs in the emitting of the test instruction -- it wouldn't accept a nil size for the memory operand, and emitted opcode 85 even if it was a byte transfer due to checking the wrong operand for whether it was a byte register.

Not all operands understood #prohibitsRex.
General-purpose registers no longer claim to require a REX prefix just because they're 64-bit, since for some instructions (e.g. call) they don't. This required some adjustment in other areas.

Reworked register width and highByte/lowByte conversions to work with the new code bits, and to stop sending #code:.

Added new tests class with tests of register size and highByte/lowByte conversions.
Removed the no-longer-necessary #upperBankHighByteGuard.