将处理器设置为32位模式

IAb*_*act 2 x86 assembly 32-bit 16-bit

似乎以下是许多教程中关于将处理器从16位切换到32位的常用方法:

    mov     eax, cr0            ; set bit 0 in CR0-go to pmode
    or      eax, 1
    mov     cr0, eax
Run Code Online (Sandbox Code Playgroud)

为什么我不能简单地执行以下操作:

    or      cr0, 1
Run Code Online (Sandbox Code Playgroud)

有什么我想念的吗?可能我唯一能想到的是我无法在cr0寄存器上执行这样的操作.

Pin*_*juh 6

or操作者不具有操作码,其中它可以访问CR0寄存器.(无法在CR0寄存器上执行此操作.)

这就是为什么mov:存在一个可以访问CR0寄存器的操作码.