diff --git a/doc-collection/opcodes/x86/8086.dop b/doc-collection/opcodes/x86/8086.dop index 3bed0d036..a6890ae58 100644 --- a/doc-collection/opcodes/x86/8086.dop +++ b/doc-collection/opcodes/x86/8086.dop @@ -17,6 +17,7 @@ charset_encoding "UTF-8"; /* default */ rmw: register/memory operand, byte operand rm16: register/memory operand, 16-bit word operand mrm: mod/reg/rm (with optional scalar/index/byte if 32-bit addressing with the right combination) + AXH, BXH, CXH, DXH, etc: Upper 16 bits of EAX, EBX, ECX, EDX, etc opbyte(n): opcode byte n accum: AX/EAX base: BX/EBX @@ -381,21 +382,21 @@ opcode sequence([0x91,0x97]) name "XCHG" { opcode sequence(0x98) name "CBW" if datasize == 16 { /* AX = sign extended AL */ input AL; - output AX; + output AX only modifies AH; } opcode sequence(0x98) name "CWDE" if datasize == 32 { /* EAX = sign extended AX */ input AX; - output EAX; + output EAX only modifies AXH; } opcode sequence(0x99) name "CWD" if datasize == 16 { /* DX:AX = sign extended AX */ input AX; - output DX,AX; + output DX,AX only modifies DX; } opcode sequence(0x99) name "CDQ" if datasize == 32 { /* EDX:EAX = sign extended EAX */ input EAX; - output EDX,EAX; + output EDX,EAX only modifies EDX; }