第4章 80X86指令系统.ppt_第1页
第4章 80X86指令系统.ppt_第2页
第4章 80X86指令系统.ppt_第3页
第4章 80X86指令系统.ppt_第4页
第4章 80X86指令系统.ppt_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、4.1 寻址方式,寻址方式是指CPU在执行指令时寻找操作数的方式。8086指令中涉及的操作数(源)主要有四种:立即操作数、寄存器操作数、存储器操作数和I/O端口操作数。 1 立即寻址 5 寄存器相对寻址 2 寄存器寻址 6 基址加变址寻址 3 直接地址 7 相对的基址加变址寻址 4 间接地址 8 I/O端口寻址,一条指令由两部分组成: 操作码部分:规定指令执行什么样的操作; 操作数部分:是指令的操作对象,无操作数、单操作数、双操作数。,第4章 8086/8088指令系统,1 立即寻址(Immediate Addressing) 操作数直接放在指令中,作为指令的一部分存放在代码段里,可以是8位、

2、16位,也叫立即数,用于给寄存器赋初值。 如:MOV AX,1234H 2 寄存器寻址(Register Addressing) 操作数包含在CPU的内部寄存器中,由指令指定寄存器的名称。 如:MOV DS,AX 注意:源操作数的长度必须与目的操作数的一致。 3 直接寻址(Direst Addressing) 操作数所在存储单元地址的16位偏移量(有效地址EA)直接包含在指令中,操作数默认存放在数据段中,允许段超越。 如: MOV AX,2000H ;DS162000H MOV BX,ES:2000H ;ES162000H,4 寄存器间接寻址(Register Indirect Address

3、ing) 指令里给出的寄存器中的值不是操作数本身,而是操作数的有效地址EA。 SI、DI、BX(默认操作数在数据段中): MOV AX,BX BP (默认操作数在堆栈段中): MOV AX,BP 5 寄存器相对寻址(Register Relative Addressing) 操作数的有效地址是一个基址或变址寄存器的内容与指令中指定的8位或16位位移量之和。如 MOV BX,COUNTBX; DS=3000H,BX=2000H,COUNT=3000H 3000H 16 +2000H+30000H= 35000H 6 基址变址寻址方式(Based Indexed Addressing) 操作数的有

4、效地址是一个基址寄存器(BP、BX)和一个变 址寄存器(SI、DI)的内容之和,两个寄存器均由指令指定。 如 MOV AX,BXSI,7 相对基址变址寻址方式(Relative Based Indexed Addressing) 操作数的有效地址是一个基址寄存器(BP、BX)和一个 变址寄存器(SI、DI)的内容之和,再加上指令中指定的8位 或16位位移量. 如 MOV AX,200HBXSI 注:以上四种寻址方式都允许段超越。 8 I/O端口寻址 通过直接和间接的方式来进行操作数的寻址。 直接寻址:能够寻址的端口号在0255的范围内,即能 够寻址256个端口。例如: IN AL,60H ;6

5、0H端口中的内容送至AL 间接寻址:必须通过DX间接寻址,这种方式能够寻址的 端口号范围为065535,共计64K个端口。例如: MOV DX,0360H;0360H端口中的内容送至AL IN AL,DX,注:有关方括号的地址表达,必须遵循下列规则:,1)立即数可以出现在方括号内,表示直接地址。 例如: 2000H 2)只有BX、BP、SI和DI可以出现在方括号以内,它们可 以单独出现,可以组合或以寄存器和常数相加的形式出 现,但BX和BP、SI和DI不允许出现在同一个方括号内。 3)方括号有相加的含义,下面的几种写法都是等价的。 6BX+SI BX+6 SI BX+SI+6 4)若方括号内含

6、有BP,则隐含使用SS提供段地址。 常见形式:DISPBP+SI DISPBP+DI 20PA=SS 16+EA DISPBP,4.2 8086指令系统,数据传送类指令 算术运算类指令 逻辑运算类指令 串操作类指令 控制转移类指令 处理器控制类指令,4.2.1 数据传送类指令(不影响标志),一、通用数据传送指令 1 MOV DST,SRC,注:MOV指令不能实现的数据传送: 1)不能两个操作数都是存储单元 2)不能用CS、IP作目的操作数 3)不允许立即数作目的操作数 4)不允许段寄存器间直接传送 5)不能向段寄存器送立即数 6)不能两个操作数一个是8位,一个是16位,2 PUSH SRC;

7、入栈指令 spsp-2 (sp+1,sp)src POP DST; 出栈指令 dest(sp+1,sp) spsp+2 注:1)入、出栈操作均是以字为单位 2)SRC、DST:R16、SEG、M16 3) DST 不允许是CS、IP寄存器,3 XCHG DST,SRC 交换指令 DST SRC 注: 1 允许字或字节操作 2 段寄存器和立即数不能做操作数 3 两个操作数必有一个在寄存器中 4 XLAT;换码指令 (BX+AL) AL (完成一字节的查表转换) 注:必须事先把表的起始地址送BX,AL内容为表中的编号.,二、输入输出指令 IN AL,n IN AL,DX ;从8位端口读取一个字节

8、IN AX,n IN AX,DX ;从16位端口读取一个字 OUT n,AL OUT DX,AL ;向8位端口写一个字节 OUT n,AX OUT DX,AX ;向16位端口写一个字 说明:当端口地址号为00HFFH,采用第一种格式,共寻址256个端口;任一端口地址都可采用第二种格式。,三、地址传送指令 用途:用于传送操作数的地址(段地址或偏移地址) 1 取有效地址指令 LEA REG16,MEM ; 将指定内存单元的偏移地址送到指定寄存器 2 地址指针装入指令 LDS REG16, MEM32 ; DS:REG(MEM开始的四个内存单元的内容) LES REG16, MEM32 ; ES:R

9、EG(MEM开始的四个内存单元的内容) 注:1) 源操作数必须是一个存储器操作数; 2) 目的操作数必须是一个16位的通用寄存器。,四、标志寄存器传送指令 1 LAHF ; AH FLAGS的低8位 2 SAHF; FLAGS的低8位 AH 3 PUSHF; spsp-2 (sp+1,sp)FLAGS 4 POPF ; FLAGS (sp+1,sp) spsp+2,4.2.2 算术运算类指令,一、加法指令 1 ADD DST,SRC ; SRC+DST DST 2 ADC DST,SRC ; SRC+ DST+CF DST 说明: 1) 目的操作数可以是寄存器、存储单元; 源操作数可以是寄存器

10、、存储单元及立即数; 不能同时为存储单元。 2)对标志位CF、OF、PF、SF、ZF、AF 有影响 。 3 INC DST ; DST+1 DST (increment) 说明: 1)此指令完成对指定的操作数加1,然后返回此操作数; 2)它影响的标志位为AF,OF,PF,SF,ZF,而对进位CF没有影响; 3)该指令只有一个操作数,如果内存单元的内容增1,则程序中必须有说明该存储单元是字或字节的符号或说明语句。,例:计算56AB7809H+23905DF2H=?,分析:加法要分两次进行,先进行低两个字节相加,然后再做高两个字 节的相加,此时必须考虑前两个字节相加后的进位。假设被加数和加数 分别

11、存放在以DADA1和DATA2为首地址的存储区,和存放在以DATA3为首地 址的存储区。 MOV AX, DATA1 ;低16位的被加数送累加器AX ADD AX, DATA2 ;低16位的被加数与加数相加 MOV DATA3,AX ;低16位相加的和送存 MOV AX,DATA1+2 ;高16位的被加数送累加器AX ADC AX,DATA2+2 ;高16位的被加数与加数相加 MOV DATA3+2,AX ;高16位相加的和送存,二、减法指令 1 SUB DST,SRC ; DST - SRC DST 同ADD 2 SBB DST,SRC ; (Subtract with borrow) 带借

12、位减 主要用于多字节相减同ADC 3 DEC DST; DST-1 DST (Decrement) 对指定的操作数减1,操作数可以是寄存器,也可以是内存单元;影响AFOFPFSF和ZF但不影响CF;同样对存储单元说明是字或字节的操作。 4 NEG DST ;(Negate) 对操作数取补,即用0减操作数,把结果送回操作数,求补指令不同于补码的求法,若DST为正数,求补后可得绝对值相等的负数(补码);若DST为负数(补码),求补可得绝对值相等的正数。 5 CMP DST,SRC ; DST - SRC (Compare) 比较指令完成两个操作数相减,使结果反映在标志位上,但并不送回结果;其后往往

13、跟着一条转移指令,根据比较结果产生不同的程序分支。,例:存储器的数据段存放了100个带符号数,其首地址为AREA,要求将各数据取绝对值后再送存原来的存储单元。,分析:由于100个带符号数中既有正数,又有负数,若为正数则不需 要处理;若为负数则需用NEG指令求补,再送存,因此程序中要先判 断正负。程序如下: LEA SI, AREA;SI源地址 MOV CX, 100;CX循环次数 CHECK: MOV AL, SI;取一个带符号数送AL OR AL, AL;AL内容不变,但影响标志位 JNS NEXT ;若SF=0,则转向NEXT NEG AL;否则求补 MOV SI,AL;负数求补后送回 N

14、EXT: INC SI;源地址加1 DEC CX;循环次数减1 JNZ CHECK;循环次数不为0,转向CHECK HLT ;停止,三、乘法指令 无符号数相乘 1 MUL SRC ; 1)本指令影响CF、OF,不影响AF、PF、SF、ZF 2)DST:隐含在AL或AX,SRC:是寄存器操作数或内存操作数 3)字节(AL)字节=字(AX);如果AH0,则CF=1,OF=1 字(AX)字=双字(DX,AX);如果DX0,则CF=1,OF=1 例:计算21H08H=? MOV AL, 21H;AL=21H MOV BL, 08H;BL=08H MUL BL ;AX=0108H,CF=OF=1 带符号

15、数相乘 2 IMUL SRC ; 整数乘法(带符号数相乘)与MUL相似,当乘积高半部分仅仅是低 半部分符号位的扩展,则CF=OF=0,否则CF=OF=1表示AH或DX中包 含着乘积的有效数字,而非发生进位或溢出。 例:计算带符号数05H08H=? MOV AL, 05H;AL=05H MOV BL, 08H;BL=08H IMUL BL;AX=0028H,CF=OF=0,四、除法指令 无符号数除法指令 1 DIV SRC ; 1)若除数为零,则内部产生一个类型0中断 2)AX/字节 商 AL,余数 AH DX,AX/字 商 AX, 余数 DX 3)所有的标志位无意义 例:计算无符号数0410H

16、B8H=? MOV AX, 0410H;AX=0410H MOV BL, B8H;BL=B8H DIV BL;AL=05H,AH=78H 带符号数除法指令 2 IDIV SRC ;与DIV相似 例:计算带符号数0410HB8H=? MOV AX, 0410H;AX=0410H MOV BL, B8H;BL=B8H IDIV BL;AL=F2H,AH=20H,五、十进制调整指令 专用于对BCD码运算的结果进行调整 包括: AAA 、DAA、AAS、DAS、AAM、AAD 均为隐含寻址,隐含的操作数为AL和AH 为何要对BCD码的运算结果进行调整? BCD码本质上是十进制数,即应遵循逢十进一的规则

17、。而计算机是按二进制(十六进制)进行运算,并未按十进制规则进行运算。 1 AAA ;( Unpacked BCD ASCII adjust for addition ) 对AL中的非压缩BCD码相加的结果进行校正,得到正确的非压缩BCD码和,AAA必须紧接在ADD、ADC指令后,只影响AF,CF。 若 (AL)(AL)=07H,(AH)=01H, (CF)=(AF)=1,2 DAA ;(Decimal Adjust for Addition) 对AL中的两个压缩的BCD码相加的结果进行校正,得到正确的压缩BCD码和,DAA必须紧接在ADD、ADC指令后,只影响AF,CF。 若 (AL)(AL)

18、=19H,(CF)=1 3 AAS ;(Unpacked BCD ASCII adjust for subtraction ) 对AL中的非压缩BCD码相减的结果进行校正,得到正确的非压缩结果,AAS必须紧接在SUB、SBB指令后,只影响AF,CF。 若 (AL)AH=08H,AL=05H MOV BL, 03H;BL=03H AAD;AL=55H DIV BL;AH=01H,AL=1CH AAM ;AH=02H,AL=08H 六、符号扩展指令 1 CBW ; (Convert Byte to Word)AL符号扩展到AH 2 CWD ; (Convert Word to Double Wor

19、d) AX符号扩展到DX 最高位为1,扩展全1;最高位为0,扩展全0。,4.3.3 位操作指令,一、逻辑运算指令 1 NOT DST ; 对源操作数求反,然后回送源操作数 2 AND DST,SRC ; 按位逻辑与,结果回送到目的操作数 3 OR DST,SRC ; 按位逻辑或,结果回送到目的操作数 4 XOR DST,SRC ; 对指令的操作数进行“异或”运算 5 TEST DST,SRC ; 本指令完成AND同样的操作但并不回送结 果 ,类似CMP,说明: SRC:REG/MEM/DATA, DST:REG/MEM 除NOT指令单操作数外,其它均为双操作数 可进行字节或字操作 NOT指令不

20、影响标志 TEST只影响标志位,不影响操作数。,例:数字09的ASCII码连续存放在存储器中,其首地址为DATA1,编写 程序将其转换成相应的非压缩BCD码,并存放在以DATA2为首地址的存储 区域。 分析:09的ASCII码为30H39H,因此只要屏蔽掉ASCII码的高4位即 可实现转换。 LEA SI, DATA1;SI源地址 LEA DI, DATA2;DI目的地址 MOV CX, 10;CX循环次数 NEXT:MOV AL, SI;取一个数字的ASCII码送AL AND AL, 0FH;屏蔽AL的高4位 MOV DI, AL;非压缩BCD码送存 INC SI;源地址加1 INC DI;

21、目标地址加1 DEC CX;循环次数减1 JNZ NEXT;循环次数不为0,转向NEXT HLT;停止,二、移位指令 SHL (Shift Logic Left)逻辑左移指令 SAL(Shift Arithmetic Left)算术左移指令 SHR (Shift Logic Right)逻辑右移指令 SAR (Shift Arithmetic Right)算术右移指令,当移位次数为1时,如果移位后的最高位的值被改变,则OF=1,三、 循环移位指令 ROL (Rotate Left)循环左移指令 ROR (Rotate Right)循环右移指令 RCL (Rotate through CF Le

22、ft)带进位循环左移指令 RCR (Rotate through CF Right)带进位循环右移指令,指令格式,ROL DST,1 CL,ROR DST,1 CL,RCL DST,1 CL,RCR DST,1 CL,当移位次数为1时,如果移位后的最高位的值被改变,则OF=1,对于移位指令,有以下几点需要说明: 1)DST:REG/MEM 2)若只移位1次,可使指令中的计数值设为1;若移位次数 大于1,则将移位次数送进CL寄存器,再将CL放在指令的 计数值中。 3)左移相当于乘2,右移相当于除2;SAL、SAR用于带 符号数,SHL、SHR用于无符号数。 4)当移位次数为1时,如果移位后的最高

23、位的值被改变, 则OF=1,例:假设AL=1,下列指令执行后,AL寄存器的内容是什么? SAL AL, 1;AL=2 MOV BL, AL ;BL=2 SAL AL, 1;AL=4 SAL AL, 1;AL=8 ADD AL, BL ;AL=10 例:统计一个16位存储器操作数中“1”的个数,假设存储器操作数的地址 为DATA,统计结果存放的单元地址为COUNT。 MOV AX, DATA ;16位操作数送入AX MOV CX, 16;置循环次数 XOR BL, BL;BL寄存器清零 AGAIN: ROL AX, 1 ;左循环移位1次,最高位进CF JNC NEXT;检查CF状态,若CF=0则

24、跳转 INC BL;若CF=1,则计数器BL加1 NEXT: DEC CX;循环次数减1 JNZ AGAIN ;循环次数不为零,继续循环 MOV COUNT,BL;统计结果送存 HLT,4.2.4 串操作类指令,所有的串操作指令隐含规定: 1、用SI寻址源操作数且是在数据段中(DS为段地址)允许段超越; 2、用DI寻址目的操作数且是在附加段中(ES为段地址)不允许段超越; 3、这两个地址指针在每一个串操作以后会自动修改按增量还是按减量,取决于方向标志位DF;若DF=0每次操作后SI和DI增量 若DF=1则减量(字节操作加1,字操作则加2) 4、要比较的字符串长度放在CX中; 5、重复时在指令前

25、加前缀REP。重复次数在CX中,CX中的值自动修改,直到CX为0。加前缀REP时,自动执行的操作: (1)CX=0?为零则退出REP,否则往下执行 (2)CX1 CX (3)执行串操作指令 (4)重复(1) (3) 有些串操作指令还可加重复前缀, REPE/REPZ, REPNE/REPNZ REPEREPZ:当串未结束(CX0)且串相等(Z标志为1)时继续 REPNEREPNZ:当串未结束(CX0)且串不相等(Z标志为0)时继续,1 REPMOVS DI,SI /MOVSB/MOVSW ;(Move String Byte/Word) 把串SI作为指针的源串中的一个字节或字,传送至由DI作为

26、指针的目的串,且相应地址改为指针以指向串中的下一个元素 例:把100个字节从AREA1到AREA2 也可采用重复前缀 MOV SI,OFFSET AREA1 MOV SI,OFFSET AREA1 MOV DI,OFFSET AREA2 MOV DI,OFFSET AREA2 MOV CX,100 MOV CX,100 CLD CLD AGAIN:MOVS DI ,SI REP MOVSB DEC CX JNZ AGAIN,2 LODS SI /LODSB/LODSW ;(Load String) 本指令把由SI作为指令的串元素,传送至AL或AX,同时修改指令SI,使指向串的下一个元素,该指令

27、正常是不重复执行的,因为每重复一次,累加器中的内容就要改写,只保留了最后一个元素。 3 REPSTOS DI/STOSB/STOSW ;(Store String) (B/W) 从累加器AL或AX传送一个字节或字,到由DI作为指针的目的串中 同时修改DI以指向串中的下一个单元,利用重复操作,可以在串中建 立相同的值。,4 REPE,REPNECMPS DI,SI/CMPSB/CMPSW; (Compare String) 由SI作为指针的源串中与由DI作为指针的目的串比较,但减的结果只反映到标志位上同时相应的修改源和目的指针可加前缀。 例:比较两个字符串若相同在RESULT单元中置0否则置0F

28、FH MOV SI,OFFSET STRING1 MOV DI,OFFSET STRING2 MOV CX,COUNT CLD REPZ CMPSB JNZ NUMAT ; 串不相同 MOV AL,0 JMP OUTPUT NUMAT: MOV AL0FFH OUTPUT:MOV RESULT,AL,5 REPE,REPNESCAS DI/SCASB/SCASW; (Scan String) 串扫描指令,关键字放在AL(SCASB)或AX(SCASW)中,操作时从AL或AX的内容减去由DI作为指针的串元素,结果反映在标志位上,但并不改变目的串元素以及累加器的值。 例:在以BLOCK开始的字符串

29、中,搜索一字符A。 MOV DI,OFFSET BLOCK MOV CX,COUNT MOV AL,A CLD REPNE SCASB JZ FOUND JMP DONE FOUND:MOV BX,OFFSET BLOCK SUB DI,BX MOV BX,DI; 串中第几个字符 DONE: HLT,4.2.5 控制转移类指令,一、无条件转移指令 JMP 习惯: JMP 标号 (1) 段内直接JMP:用指令中的偏移量加到目前指令指针IP上来改变IP 实现跳转,当偏移量在+127-128字节内就自动产生一个SHORT JMP指令,否则产生NEAR JMP,在+32767 -32768范围内寻址。

30、 例: JMP SHORT OBJECT JMP NEAR PTR TAGET (缺省) (2) 段内间接JMP:目标地址由一个16位通用寄存器或内存单元来寻址 例: JMP BX 或 JMP WORD PTRBX (3) 段间直接JMP:指令中给出转向地址的段地址和段内偏移量 例: JMP FAR PTR LABLE 或 JMP 2000H:1000H (4) 段间间接JMP:指令指定双字指针用第一个字单元的内容代替lP 第二个字单元的内容代替CS 例 JMP DWORD PTRBXSI,二、条件转移指令 这类指令转移的目的地址是采用相对寻址方式即以转移指令为基准的+127或-128字节的范

31、围之内,对标志位无影响。 1 直接标志转移指令 JC 标号 ;JNC 标号; JS 标号 ;JNS 标号; JO 标号 ;JNO 标号; JP 标号 ;JNP 标号; JZ/JE 标号 ; JNZ/JNE 标号;,2 间接标志转移指令 无符号数比较测试: JAEJNB 标号 JA JNBE 标号 JB JNAE 标号 JBE/ JNA 标号 带符号数比较测试: JG JNLE 标号 JGEJNL 标号 JL JNGE 标号 JLEJNG 标号,“A” Above 高于 “B” Below 低于,“G” Great than 大于 “L” Less than 小于,3 寄存器测试转移指令 JCX

32、Z 标号,例:存储器中以BLOCK为首地址连续存放着20个16位的带符 号数,要求找出其中的最小数,并存放在MIN单元中。 LEA SI,BLOCK;SI数组的首地址 MOV AX,SI;AX数组的第一个数 MOV CX,19;CX循环次数 INC SI;SI(SI)+1 INC SI;SI(SI)+1 LOP:CMP AX,SI;两个数比较,即AXSI JL NEXT;若AXSI,则转向NEXT MOV AX,SI;若AXSI,则AXSI NEXT:INC SI;SI(SI)+1 INC SI ;SI(SI)+1 DEC CX ;CX(CX)1,修改循环次数 JNZ LOP;循环未完,则转向

33、LOP MOV MIN,AX;循环结束,MIN(AX) HLT;停止,三、循环控制指令 格式 LOOPxx符号地址 执行 (CX) (CX)1 此操作不影响标志 检查转移条件,满足,转向目标地址去执行; 不满足,执行LOOPxx后一条指令 转移方式 只允许段内直接短方式,跳转范围-128127,例:数据段中分别以FIRST和SECOND为首地址存放着100个字 符,找出其中第一个不相同的字符分别送至AL和BL寄存器, 若两串完全相同,则令AL=BL=0。 LEA SI, FIRST ;SI字符串1首地址 LEA DI, SECOND ;DI字符串2首地址 MOV CX, 100 ;CX循环次数

34、 CYCLE:MOV AL, SI ;AL串1中的字符 MOV BL, DI ;BL串2中的字符 INC SI ;SI(SI)+1 INC DI ;DI(DI)+1 CMP AL, BL ;(AL)(BL) LOOPE CYCLE ;若(CX)0,且ZF=1,则跳转 JNZ DONE ;若相应内容不等,则转向DONE MOV AL, 0 ;若两串完全相同,则AL0 MOV BL, 0 ;若两串完全相同,则BL0 DONE:HLT ;停止,四、过程调用和返回指令,CALLRET指令对 CALL: 调用子程序,调用结束后要返回CALL指令的下一条指令,所以必须保存断点; RET: 子程序或过程的最

35、后一条指令用以返回到调用这个子程序的断点处 说明: 1)CALLRET要保护现场; 2)对于段内调用(NEAR属性)CALL ,使IP入栈,目标过程的地址偏移量加到IP上; CALL(NEAR PTR)过程名 对于段间调用(FAR属性) CALL ,首先CS入栈, CS再由指令串的段值代替,然后IP入栈,IP由子程序中第一条指令的偏移地址代替 。 CALL FAR PTR 过程名,格式 CALL 过程名,格式 RET,五、中断控制指令,INT N ;中断指令 N=0-255 入栈FLAGS,清除IF、TF ;入栈CS、IP,中断服务程序入口地址送CS、IP。 SP(SP)2,(SP)+1:(S

36、P)(FLAGS) TF0,IF0 SP(SP)2,(SP)+1:(SP)(CS) SP(SP)2,(SP)+1:(SP)(IP) CS(N4+2) IP(N4 ) IRET ; 中断返回 出栈IP、CS、FLAGS IP(SP)+1:(SP),SP(SP)+2 CS(SP)+1:(SP),SP(SP)+2 FLAGS(SP)+1:(SP),SP(SP)+2 例:设存储单元(0005C)=12H,(0005D)=34H,(0005E)=56H,(0005F)=78H,指令INT 17H执行后,中断服务程序入口地址如何确定? 17H4=5CH, 则CS=(0005F):(0005E)=7856H

37、, IP=(0005D):(0005C)=3412H 中断服务程序入口地址为(CS)10H+(IP)=7856H10H+3412H=7B972H,4.2.6 处理器控制类指令,一、标志操作 共有7条 3条针对CF 2条针对DF 有2条针对IF 1 CLC (Clear Carry Flag) 2 CMC(Complement Carry Flag) 3 STC (Set Carry Flag) 4 CLD(Clear Directory) 5 STD (Set Directory) 6 CLI(Clear Interrupt Enable flag) 7 STI (Set Interrupt Enable Flag),二、处理器暂停 HLT(halt) 它使CPU进入暂停状态,不进行任何操作,只有当下列情况之一发生时,CPU才脱离暂停状态。 RESET线上加复位信号 NMI线上出现中断请求信号 在IF=1情况下,INTR引脚上出现中断请求信号,三、处理器等待 WAIT 四、处理器脱离 ESC 五、总线锁定 LOCK(前缀) 六、空操作 NOP:不完成任何操作,执行时耗费3个时钟周期的时间,4.3.1 实地址方式下的寻址方式 立即寻址 寄存器寻址 直接寻址 寄存器间接寻址 寄存器相对寻址 基址加变址的寻址方式 相对的基址变址寻址方式 I/O端口寻址

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论