ppt_4B 80x86CPU的指令系统.ppt
文本预览下载声明
4.3.2 80x86 CPU指令系统 P166 1. 传送类指令 把数据、地址送到寄存器或存储单元中 1. 传送指令——MOV Imm ? R,M MOV AL,1FH MOV AX,2345H MOV DA_BYTE,0FEH MOV ARY[BX],1234H MOV EBX 【例4-11】 把DA_WORD1字单元内容传送到DA_WORD2字单元中 MOV AX,DA_WORD1 MOV DA_WORD2,AX 【例4-12】 把立即数10A0H传送给段寄存器DS、ES, MOV AX,10A0H MOV DS,AX MOV ES,AX 1. 传送指令——MOV 1. 传送指令——MOV 1. 传送类指令——MOVSX 1. 传送类指令——MOVZX 1. 传送类指令——PUSH、POP P168 1. 传送类指令——PUSHA/PUSHAD 1. 传送类指令——POPA/POPAD 1 数据传送指令——XCHG P171 2) 地址传送指令 P171 2) 地址传送指令 P171 地址指针的存放:偏移地址在前(占低地址),段基值(或段选择器)在后(高地址) 32位的地址指针如右图所示: 2) 地址传送指令——LDS、LES P171 1)由源地址ADR[BX]可以计算出源操作数在数据段的有效地址EA。 2)因为目的寄存器是16位的SI,所以地址指针是32位,由EA及EA+2指向 3)前2个单元是偏移地址,应送到指令指定的SI中; 4)后2个单元是段基值,应送到DS中。 3) 标志位传送指令 P173 LAHF: 把标志位SF、ZF、AF、PF、CF送至AH中的第7,6,4,2,0位。 SAHF指令用以设置或恢复SF、ZF、AF、PF、CF 5个标志位。 LAHF和PUSHF/PUSHFD不影响标志位。 SAHF只影响标志寄存器的低8位,对高8位标志无影响 POPF/POPFD则由装入的值来确定标志位的值,但POPFD指令不影响VM、RF、IOPL、VIF和VIP的值 4) 类型转换指令 P174 4) 类型转换指令 P174 4) 类型转换指令 P174 2 算术运算类指令 P175 2 算术指令 指令格式:CMPXCHG DEST,SRC 指令功能: 累加器AC与(DEST)相比较(相减), 如果相等,则1→ ZF, (SRC)→ DEST ; 否则 0→ ZF , (DEST) → AC 累加器可为AL、AX或EAX寄存器 SRC只能用8位、16位或32位寄存器 DEST则可用寄存器或存储单元 该指令只能用于80486及其后继机型 该指令对其他标志位的影响与CMP指令相同 指令格式:CMPXCHG8B DEST 指令功能: EDX:EAX与DEST相比较, 如果相等,则 1→ ZF,( EDX:EAX )→ DEST 否则 0→ ZF , (DEST) → EDX:EAX 该指令只影响ZF位,但不影响其他标志位。 该指令只能用于Pentium及其后继机型。 操作数均为64位数,目的操作数必须采用存储器寻址方式确定一个64位数。 2.算术指令 2 算术指令 2 算术指令 ① 非组合型加法校正指令 AAA(ASCII Adjust for Addition) 格式:AAA 功能: 若AL中低4位的值<9,且AF ? 0,则将AL中高4位清零,AF、CF置0 若AL中低4位的值>9,或AF ? 1,则AL(AL)+ 6,AH(AH)+1,且将AL中高4位清零,AF、CF置1 (如果结果不是BCD码或有进位,需加6修正) ② 组合型加法校正指令 DAA(Decimal Adjust for Addition) 格式:DAA 功能: 如果AL中低4位>9或AF=1,则AL ?(AL)+ 6,AF ? 1 如果AL中高4位>9或CF=1,则AL ?(AL)+ 60H,CF ? 1 ④ 组合型减法校正指令 DAS(
显示全部