• 当前位置:首页>>汇编语言>>汇编语言基础教程>>实模式和任何特权级下可执行的指令
  • 实模式和任何特权级下可执行的指令
  •     本文介绍操作系统类指令。其中的某些指令始于286。通常只在操作系统代码中使用这些指令, 而不在应用程序中使用这些指令。这是把它们称为操作系统类指令的原因。为了保证操作系统 的安全,保护模式下的80386支持四个特权级。相应地,这些操作系统类指令也可分为三种:实 模式和任何特权级下可执行的指令、实模式及特权级0下可执行的指令和仅在保护模式下执行的 指令。

    <一>实模式和任何特权级下可执行的指令

    1.存储全局和中断描述符表寄存器指令

        全局描述符表GDT和中断描述符表IDT包含着系统的重要数据,对应的两个描述符表寄存 器GDTR和IDTR含有这两张表的定位信息。利用存储描述符表寄存器指令能把描述符表寄存器 的内容保存到指定的存储单元。这样,访问这些存储单元就可获得描述符表的定位信息。 与GDT和IDT被所有任务共享不同,LDT是每个任务私有的,所以存储局部描述符表寄存器LDTR的 指令不在所列。

    (1)存储全局描述符表寄存器指令

        存储全局描述符表寄存器指令的格式如下:
    
        SGDT    QWORD PTR DST
    
    
        其中操作数DST是48位(6字节)的存储器操作数。该指令的功能是把全局描述符表寄存器GDTR的 内容存储到存储单元DST。GDTR中的16位界限存入DST的低字,GDTR中的32位基地址存入DST的 高双字。该指令对标志没有影响。

    (2)存储中断描述符表寄存器指令

        存储中断描述符表寄存器指令的格式如下:
    
        SIDT    QWORD PTR DST
    
    
        其中操作数DST是48位(6字节)的存储器操作数。该指令的功能是把中断描述符表寄存器IDTR的 内容存储到存储单元DST。IDTR中的16位界限存入DST的低字,IDTR中的32位基地址存入DST的 高双字。该指令对标志没有影响。

    2.存储机器状态字指令

        存储机器状态字指令的格式如下:
    
        SMSW    DST
    
    
        其中操作数DST可以是16位(字)的存储器操作数或寄存器。该指令的功能是把机器状态字的 内容存储到DST。该指令对标志没有影响
    80386有此指令是为了包含80286的指令集,以便与其兼容。由于80386的控制寄存器CR0的低16位 等同于80286的机器状态字,所以,在为80386编程时,如果需要存储机器状态字,那么最好使用 存储CR0寄存器的指令。
     

    [1]

  • 上一篇:80386的中断和异常的各种转移途径小结
    下一篇:实模式及特权级0下可执行的指令