Table of contents
MOVEFROMCREG
Retrieves data from CBUS register. Register address is encoded as CONST.0E+#imm. It seems that src1 is used for address. p6dis/p6as handle this automatically (p6dis decodes to CRBUS register names)
On Core2 there is HI/LO modifier, LO modifier accesses crbus 0..1ff, HI modifier is for 200..3ff.
BX = MOVEFROMCREG (CONST_0E+042 , CONST_0E+042 ) EAX = MOVEFROMCREG (CONST_0E+161 , CONST_0E+161 ) EAX = MOVEFROMCREG (TMP7 , CONST_0 , U2_20) R34 = MOVEFROMCREG (CR_SCP8 , R35 )
On core2:
.org 0x7f80 RBX = MOVEFROMCREG.LO(RAX, RAX /* s timhle to nefunguje: U4:0000 0000 0010 0000 0000 0000 0000 0000 */) RCX = MOVEFROMCREG.HI(RAX, RAX /* s timhle to nefunguje: U4:0000 0000 0010 0000 0000 0000 0000 0000 */) EOM MOVE.DSZ32 (CONST , CONST_0 , U4.00040000) EOM MOVE.DSZ32 (CONST , CONST_0 , U4.00040000) EOM MOVE.DSZ32 (CONST , CONST_0 , U4.00040000) .end b8F20000000f33c3c3c3c3c3Assembles on core2 as (triad, raw msram line):
7F80: 000638001C1C1D800000 000738001C1C1C800000 4000000060000000000800002 FF00: 0FC283F0 04200008 00003602 40000000 21001400 0480B216 00000000 20000000
This project is an independent, unofficial work based on publicly available information and reverse-engineering research, and is not affiliated with, endorsed by, sponsored by, or associated with Intel Corporation or its affiliates. It is provided "as is", without warranty of any kind. The author assumes no responsibility or liability for any use, misuse, damage, data loss, hardware failure, or other consequences arising from its use. Intel, Pentium, Core and related trademarks are the property of their respective owners and are used solely for identification and informational purposes.