2.6.4 Intel386汇编指令摘要

在阅读Linux源代码时,你可能遇到很多汇编指令,有些是你熟悉的,有些可能不熟悉,在此简要列出一些常用的386汇编指令及其功能。

1. 位操作指令

    指令                                   功能

    BT                              位测试

       BTC                                   位测试并求反

       BTR                                   位测试并复位

       BTS                                          位测试并置位

2.控制转移类指令

    指令                                        功能

       CALL                                 调用过程

      JMP                                          跳转

       LOOP                                ECX计数器的循环

       LOOPNZ/LOOPNE     ECX计数器且不为0的循环/用ECX计数器且不等的循环

       RET                                   返回

3. 数据传输指令

   指令                                    功能

       IN                                  从端口输入

       LEA                                   装入有效地址

       MOV                                  传送

OUT                                  从段口输出

POP                                          从堆栈中弹出

POPAPOPAD                  弹出至所有寄存器

PUSH                                

PUSHPUSHAD        所有通用寄存器压

XCHG                                交换

4.标志控制类指令

    指令                                     功能

       CLC                                   0进位标志

CLD                                   0方向标志

CLI                                    0中断标志

LAHF                                 将标志寄存器装入AH寄存器

POPFPOPFD                  中弹出至标志位

PUSHFPUSHFD             将标志压

       SAHF                          AH寄存器存入标志寄存器

       STC                                   置进位标志

       STD                            置方向标志

       STI                             置中断标志

5.逻辑类指令

    指令                                功能

       NOT                                

       AND                          

       OR                             

       SAL/SHL                     算术作移/逻辑左移

       SAR                                   算术右移

       SHLD                          逻辑右移

       TEST                          逻辑比较

       XOR                           异或

6.串操作指令

       指令                                                  功能

     CMPS/CMPSB/CMPSW/CMPSD            比较串操作数

INS/INSB/INSW/INSD                         输入串操作数

LODS/LODSB/LODSW/LODSD           装入串操作数

MOVS/MOVSB/MOVSW/MOVSD   传送串操作数

REP                                                        重复

REPE/REPZ                                     相等时重复/为0时重复

SCAS/SCASB/SCASW/SCASD      扫描串操作数

STOS/STOSB/STOSW/STOSD        存储串操作数

7.多段类操作指令

     指令                          功能

CALL                        过程调用

INT                             中断过程的调用

INTO                          溢出中断过程的调用

IRET                          中断返回

JMP                                 跳转

LDS                                   将指针转入DS

LES                            将指针转入ES

LFS                                   将指针转入FS

LGS                                 将指针转入GS

LSS                           将指针转入SS

MOV                           段寄存器的传送

POP                                   弹出至段寄存器

PUSH                        

RET                                   返回

8.操作系统类指令

   指令                             功能

   APPL                调整请求特权级

   ALTS                                   清任务切换标志

   HLT                              暂停

   LAR                           加载访问权

   LGDT                           加载全局描述符表

   LIDT                              加载中断描述符表

   LLDT                           加载局部描述符表

   LMSW               加载机器状态字

   LSL                           加载段界限

   LTR                              加载任务寄存器

   MOV                            特殊寄存器的数据传送

   SGDT                           存储全局描述符表

   SIDT                            存储中断描述符表

   SMSW                          存储机器状态字

   STR                              存储任务寄存器