CBW/CWDE -- Byte to Word/Word to Doubleword

CBW/CWDE -- Convert Byte to Word/Convert Word to Doubleword Opcode Instruction Clocks Description 98 CBW 3 AX = sign-extend of AL 98 CWDE 3 EAX = sign-extend of AX Operation IF OperandSize = 16 (* instruction = CBW *) THEN AX = SignExtend(AL); ELSE (* OperandSize = 32, instruction = CWDE *) EAX = SignExtend(AX); FI; Description CBW converts the signed byte in AL to a signed word in AX by extending the most significant bit of AL (the sign bit) into all of the bits of AH. CWDE converts the signed word in AX to a doubleword in EAX by extending the most significant bit of AX into the two most significant bytes of EAX. Note that CWDE is different from CWD. CWD uses DX:AX rather than EAX as a destination. Flags Affected None Protected Mode Exceptions None Real Address Mode Exceptions None Virtual 8086 Mode Exceptions None