第3章 指令系统与汇编语言程序设计 2.累加器专用传送指令 8086指令系统中将累加器AX作为数据传输的核 心,系统的输入/输出指令IN/OUT和换码指令XLAT就 是专门通过累加器来执行的,称之为累加器专用传 送指令
26 第3章 指令系统与汇编语言程序设计 2. 累加器专用传送指令 8086指令系统中将累加器AX作为数据传输的核 心,系统的输入/输出指令IN/OUT和换码指令XLAT就 是专门通过累加器来执行的,称之为累加器专用传 送指令
第3章 指令系统与汇编语言程序设计 3.地址传送指令 8086的地址传送指令用于控制寻址机构,它可将存储器 操作数的地址传送到16位目标寄存器中。这类指令有以下 种形式: (1)有效地址送寄存器指令: LEA reg,src LEA指令功能是将存储器操作数src的有效地址传送到16位的 通用寄存器reg (2)地址指针送寄存器和DS指令: LDs reg,src 该指令完成一个32位的地址指针传送,地址指针包括段 地址和偏移地址两部分 (3)地址指针送寄存器和ES指令: LES reg,src LES指令执行的操作与LDS指令相似,不同之处是以ES代替DS
27 第3章 指令系统与汇编语言程序设计 3. 地址传送指令 8086的地址传送指令用于控制寻址机构,它可将存储器 操作数的地址传送到16位目标寄存器中。这类指令有以下3 种形式: (1)有效地址送寄存器指令:LEA reg,src LEA指令功能是将存储器操作数src的有效地址传送到16位的 通用寄存器reg。 (2)地址指针送寄存器和DS指令:LDS reg,src 该指令完成一个32位的地址指针传送,地址指针包括段 地址和偏移地址两部分。 (3)地址指针送寄存器和ES指令:LES reg,src LES指令执行的操作与LDS指令相似,不同之处是以ES代替DS
第3章 指令系统与汇编语言程序设计 4.标志寄存器传送指令 8086可通过这类指令读出当前标志寄存器中各标志位的 内容,也可以重新设置各标志位的值。标志寄存器的传送指 令共有4条,均位单字节指令,指令的操作数以隐含形式出 现,隐含为AH寄存器 (1)取标志指令LAHF (2)置标志位指令SAHF (3)标志寄存器入栈指令 PUSHF (4)标志寄存器出栈指令POPF
28 第3章 指令系统与汇编语言程序设计 4. 标志寄存器传送指令 8086可通过这类指令读出当前标志寄存器中各标志位的 内容,也可以重新设置各标志位的值。标志寄存器的传送指 令共有4条,均位单字节指令,指令的操作数以隐含形式出 现,隐含为AH寄存器。 (1)取标志指令LAHF (2)置标志位指令SAHF (3)标志寄存器入栈指令PUSHF (4)标志寄存器出栈指令POPF
第3章 指令系统与汇编语言程序设计 332算术运算类指令 8086的算术运算类指令包括加、减、乘、除4种基 本运算指令,以及为进行BCD码十进制数运算而设置 的各种较正指令。 8086的基本算术运算指令中,除加1和减1指令外, 其余均为双操作数指令,两个操作数中除了源操作 数可为立即数外,必须有一个操作数在寄存器中, 而单操作数指令则不允许采用立即数方式
29 第3章 指令系统与汇编语言程序设计 3.3.2 算术运算类指令 8086的算术运算类指令包括加、减、乘、除4种基 本运算指令,以及为进行BCD码十进制数运算而设置 的各种较正指令。 8086的基本算术运算指令中,除加1和减1指令外, 其余均为双操作数指令,两个操作数中除了源操作 数可为立即数外,必须有一个操作数在寄存器中, 而单操作数指令则不允许采用立即数方式
第3章 指令系统与汇编语言程序设计 加减法运算在执行过程中会产生溢出,无符号数 运算时,如果加法运算最高位向前产生进位或减法 运算最高位向前有借位,则表示出现溢出,采用标 志位CF=1来表示;带符号数采用补码运算时,符号 位也参与运算,出现溢出则表示运算结果发生了错 误,采用标志位OF=1来表示
30 第3章 指令系统与汇编语言程序设计 加减法运算在执行过程中会产生溢出,无符号数 运算时,如果加法运算最高位向前产生进位或减法 运算最高位向前有借位,则表示出现溢出,采用标 志位CF=1来表示;带符号数采用补码运算时,符号 位也参与运算,出现溢出则表示运算结果发生了错 误,采用标志位OF=1来表示