第二章8086的指令系统 使用堆栈指令: ①堆栈操作是字操作指令,不要写出“ PUSH AL”等。 ②在POP指令中,“P排法指令 ③堆栈中的数据弹出后,数捷 PUSH BX栈中消失, 除非压入新数据,画图时 PUSH DS ④堆栈操作指令不影响标志 ④使用堆栈指令保护和恢复 POP DS注意指令的 POP BX 排列顺序,如: POP AX 2.1节目录
第 二 章 8086 的 指 令 系 统 16 堆栈操作指令(5)(END) 使用堆栈指令: ①堆栈操作是字操作指令,不要写出“PUSH AL”等。 ②在“POP”指令中,“POP CS”为非法指令。 ③堆栈中的数据弹出后,数据并没有在堆栈中消失, 除非压入新数据,画图时注意。 ④堆栈操作指令不影响标志。 ④使用堆栈指令保护和恢复现场时,要注意指令的 排列顺序,如: PUSH AX PUSH BX PUSH DS .. .. .. POP DS POP BX POP AX 2.1节 目录
第二章8086的指令系统 2.1.3标志传送指令 1.标志寄存器传送 ①LAH;AH←标志寄存器低8位,即SF/FAF ;PF/CF送AH相应位,不影响标志。 ②SAH;标志寄存器低8位←AH,该条指令影 ;响前五个标志。 ③PUSH;标志寄存器入栈,不影响标志。 ④PoP;标志寄存器←S:[SP],SP←SP+2; ;该指令影响标志
第 二 章 8086 的 指 令 系 统 17 2.1.3标志传送指令(1) 2.1.3 标志传送指令 1.标志寄存器传送 ① LAHF ;AH←标志寄存器低8位,即SF/ZF/AF ;PF/CF送AH相应位,不影响标志。 ② SAHF ;标志寄存器低8位← AH,该条指令影 ;响前五个标志。 ③ PUSHF ;标志寄存器入栈,不影响标志。 ④ POPF ;标志寄存器←SS:[SP],SP←SP+2; ;该指令影响标志
第二章8086的指令系统 2标志位操作 (1)CF标志 ★ CLC: CF←0★STC;CF←1/CMC;CF←CF (2)DF标志(串操作指令使用 CLD;DF←0★STD;DF←1 (3)IF标志(控制可屏蔽中断能否被响应) ★CLI;IF←0★STI;IF←1 注释:对其他标志没有提供直接修改的指令,但是 如果必要,可以用前述的四条标志传送指令结合逻辑运 算指令进行修改。 2.1节目录
第 二 章 8086 的 指 令 系 统 18 标志传送指令(2)(end) 2.标志位操作 (1)CF标志 ★CLC ;CF←0 ★STC ;CF←1 ★CMC ;CF←CF (2)DF标志(串操作指令使用) ★CLD ;DF←0 ★STD ;DF←1 (3)IF标志(控制可屏蔽中断能否被响应) ★CLI ;IF←0 ★STI ;IF←1 注释:对其他标志没有提供直接修改的指令,但是 如果必要,可以用前述的四条标志传送指令结合逻辑运 算指令进行修改。 2.1节 目录
第二章8086的指令系统 2.1.4地址传送指令 1.有效地址传送指令LEA LEAr16,mem;r16←mem所指单元的偏移地址 BX=07400H,SI=003CH LEA BP,[2050h];执行后BP=2050H LEA BP,[S门;执行后BP=003CH LEA BX,[BX+SI];执行后BX=043CH LEA BX,[BX+SI+0F62H;执行后BX=139EH 备注:①指令中“r16”常用的寄存器是BX、BP、SI、DI 般不使用其他寄存器。 ②指令中源操作数常用的是变量名,而不是上面 例子中例举的形式,如: LEA BX, WORD VAR。所以,本 条指令常被描述为“取变量的偏移地址”,属常用指令
第 二 章 8086 的 指 令 系 统 19 2.1.4地址传送指令(1) 2.1.4 地址传送指令 1.有效地址传送指令LEA LEA r16,mem ;r16←mem所指单元的偏移地址 例:设BX=0400H,SI=003CH LEA BP,[2050h];执行后 BP=2050H LEA BP,[SI];执行后 BP=003CH LEA BX,[BX+SI];执行后 BX=043CH LEA BX,[BX+SI+0F62H];执行后 BX=139EH 备注:①指令中“r16”常用的寄存器是BX、BP、SI、DI。 一般不使用其他寄存器。 ②指令中源操作数常用的是变量名,而不是上面 例子中例举的形式,如:LEA BX,WORD_VAR。所以,本 条指令常被描述为“取变量的偏移地址”,属常用指令
DSx1604000H BX 0100H SI+0200H DS SI 04300H 05H OOH 20H 04300H50H 示意图: LDS SI,[BX+SI]
第 二 章 8086 的 指 令 系 统 20 地址传送指令(2) 2.指针传送指令LDS LDS r16,mem ;r16←mem,DS←mem+2 操作:①按mem规定的寻址方式计算某单元物理地址。 ②按计算出的物理地址做双字操作,即前一个字(偏移 指针)送r16,高位字(段指针)送DS。 例:设DS=400H,BX=100H,SI=200H, [04300]=2050H,[04302H]=0500H LDS SI,[BX+SI]执行后DS=0500H,SI=2050H 示意图: LDS SI,[BX+SI] 05H 00H 20H 50H 04000H 0100H + 0200H 04300H DSx16 BX SI 04300H DS SI