diff --git a/Instruction-Encoding.md b/Instruction-Encoding.md index 0f93582..df4e112 100644 --- a/Instruction-Encoding.md +++ b/Instruction-Encoding.md @@ -39,4 +39,26 @@ If either the destination or source require a 16-bit immediate value as part of | Word 0 | Word 1 | Word 2 | | --- | --- | --- | -| Basic Instruction | *Source operand* | *Destination operand* | \ No newline at end of file +| Basic Instruction | *Source operand* | *Destination operand* | + +## Abstract instructions +As there is a limited amount of opcodes some (abstract) instructions can have an encoding different from the regular format. + +### SETcc +The [`SETcc`](http://www.ousob.com/ng/iapx86/ng22d84.php) instruction family is implemented with the single opcode `0x32`. It uses the *Source operand* word to encode its family opcode. + +| instruction | family opcode | +| SETA | 0x01 | +| SETAE | 0x02 | +| SETBE | 0x03 | +| SETB | 0x04 | +| SETE | 0x05 | +| SETNE | 0x06 | +| SETG | 0x07 | +| SETGE | 0x08 | +| SETLE | 0x09 | +| SETL | 0x0A | +| SETO | 0x0B | +| SETNO | 0x0C | +| SETS | 0x0D | +| SETNS | 0x0E | \ No newline at end of file