XOR
EXCLUSIVE OR XOR
Encoding:
Memory or Register Operand with Register Operand:
10 0 11 0 0 d w 1mod reg rIm 1
if d = 1 then LSRC = REG, RSRC = EA, DEST = REG else LSRC = EA, RSRC = REG, DEST = EA
Immediate Operand to Memory or Register Operand:
11 000000 w 1mod 11 0 rIm 1 data | data if w=1 |
LSRC = EA, RSRC = data, DEST = EA
Immediate Operand to Accumulator:
10 0 1 1 0 1 0 w 1 data | 1 data if w=1 I |
if w = 0 then LSRC = AL, RSRC = data, DEST = AL else LSRC = AX, RSRC = data, DEST = AX
XOR Operands | Clocks· | Transfers | Bytes | XOR Coding Example |
register, register | 3 | - | 2 | XORCX, BX |
register, memory | 9(13)+ EA | 1 | XOR Cl, MASK_BYTE | |
memory, register | 16(24)+ EA | 2 | XOR ALPHA [SI], DX | |
accumulator, immediate | 4 | - | XOR Al, 01000010B | |
register, immediate | 4 | - | XOR SI, 00C2H | |
memory, immediate | 17(25) + EA | 2 | XOR RETURN_CODE, OD2H |
*b(w): where b denotes the number of clock cycles for byte operands and w denotes the number of clock cycles for word operands.