5.地址传送指令(有三条地址传送指令) (1) LEA (Load Effective Address) 一般格式 LEA OPRD1,OPRD2 功 能 把源操作数OPRD2的地址偏移量传送至目的操作数OPRD1。 要求:①源操作数必须是一个内存操作数,②目的操作数必须是一个16位的通用寄存器。这条指令通常用来建立串操作指令所须的寄存器指针。 【例如】 LEA BX,BUFR;把变量BUFR的地址偏移量部分送到BX (2) LDS (Load pointer into DS) 一般格式 LDS OPRD1,OPRD2 功 能 完成一个地址指针的传送。地址指针包括段地址部分和偏移量部分。指令将段地址送入DS,偏移量部分送入一个16位的指针寄存器或变址寄存器。 要求:源操作数是一个内存操作数,目的操作数是一个通用寄存器/变址寄存器。 【例如】 LDS SI,[BX] ;将把BX所指的32位地址指针的段地址部分送入DS,偏移量部分送入SI。LDS指令示意如下图所示。
(3) LES (Load pointer into ES) 一般格式: LES OPRD1,OPRD2 这条指令除将地址指针的段地址部分送入ES外, 与LDS类似。例如: LES DI,[BX+COUNT] 6.标志寄存器传送(有四条标志传送指令) (1) LAHF (LOAD AH WITH FLAG) 将标志寄存器中的SF、ZF、AF、PF和CF(即低8位)传送至AH寄存器的指定位,空位没有定义。 (2) SAHF (STORE AH WITH FLAG) 将寄存器AH的指定位,送至标志寄存器的SF、ZF、AF、PF和CF位(即低8位)。根据AH的内容,影响上述标志位,对OF、DF和IF无影响。 (3) PUSHF (PUSH FLAG) 将标志寄存器压入堆栈顶部,同时修改堆栈指针,不影响标志位。 (4) POPF (POP FLAG) 堆栈顶部的一个字,传送到标志寄存器,同时修改堆栈指针,影响标志位。
|
电工学习网 ( )
GMT+8, 2021-12-6 20:45