Here is quotation from the AMD document #24594.pdf: "MOV(CRn) is a privileged instruction and must always be executed at CPL = 0." As you can see, usual applications cannot execute these two instructions (read and write CRx), because ones are working on CPL = 3 (not 0, as required). In other words, it is allowed only for OS and drivers, because ones are working on CPL = 0.