《2022年微机原理指令整理 .pdf》由会员分享,可在线阅读,更多相关《2022年微机原理指令整理 .pdf(28页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、微机原理指令整理1 类别指令类型指令名称指令缩写指令功能影响标志格式格式含义源操作数目的操作数传送指令通用传输指令基本传输指令MOV 将源操作数中的数据传送至目的操作数,以实现寄存器与寄存器、寄存器与存储器之间数据传送以及立即数送往寄存器或存储器无1.MOV WORD PTR 2000,AX 将 AX送 2000 和2001 单元(低位在低地址,高位在高地址,下同)至少有一个是寄存器(除立即数送存储器外);不能在两个存储单元之间直接传送数据;不能在两个段寄存器之间直接传送数据;不能将立即数直接送至段寄存器;SS和 SP赋值必须紧邻指令指针 IP 既不作目的操作数也不做源操作数2.MOV AX,
2、ES:BX+SI+50 将 ES段(BX+SI+50)字单元内容送AX 3.MOV SS,BX 将 BX内容送 SS 4.MOV ES,SS:DI+200 将 SS段(DI+200)字单元内容送ES 5.MOV BX,CX 将 CS内容送 BX 6.MOV WORD PTR BX+DI,SS 将 SS内容送(BX+DI)字单元CS不能作目的操作数;立即数不能作目的操作数7.MOV CL,DH 将 DH内容送 CL 8.MOV DI,SI+100 将(SI+100)字单元内容送DI 9.MOV WORD PTR DI,DX 将 DX内容送(DI)字单元10.MOV CX,3330 立即数 333
3、0 送名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 28 页 -微机原理指令整理2 CX 11.MOV BYTE PTR DI,0 立即数 0 送(DI)字节单元堆栈操作指令PUSH 将来自通用寄存器、段寄存器或存储单元的一个字(16 位)内容压入堆栈(SP指向的栈顶个单元)无1.PUSH AX AX内容进栈通用寄存器、段寄存器、存储单元的一个字CS不能作目的操作数;2.PUSH SI SI 内容进栈3.PUSH ES ES内容进栈4.PUSH CS CS内容进栈5.PUSH WORD PTR BX(BX)和(BX+1)单元内容进栈6.PUSH WORD PTR BETA BX
4、(BX+BETA)字单元内容进栈不能使用 8 位源或目的操作数POP 将栈顶个单元的内容退出(弹出)到通用寄存器、段寄存器或存储单元无1.POP BX 栈顶 2 个字节出栈到 BX 不能使用 8 位源或目的操作数2.POP DX 栈顶 2 个字节出栈到 DX 通用寄存器、段寄存器、存储单元的一个字节;CS不能作目的操作数3.POP ES 栈顶 2 个字节出栈到 ES 4.POP SS 栈顶 2 个字节出栈到 SS 5.POP BX+50 栈顶 2 个字节出栈到(BX+50)字单元6.POP BP+DI 栈顶 2 个字节出栈到(BP+DI)字单元名师资料总结-精品资料欢迎下载-名师精心整理-第
5、2 页,共 28 页 -微机原理指令整理3 交换指令XCHG 实现数据宽度相同的源操作数与目的操作数之间的数据交换,亦即同为 8 位或 16 位的累加器与寄存器、寄存器与寄存器以及寄存器与存储单元之间的数据交换无1.XCHG AL,BL AL与 BL 之间字节交换段寄存器、CS、IP、立即数不能作为源或目的操作数;两个存储单元之间、段寄存器与段寄存器之间不能进行交换2.XCHG CX,AX CX与 AX之间字交换3.XCHG DH,CL DH与 CL之间字节交换4.XCHG BX,CX BX与 CX之间字交换5.XCHG BL,1000 BL与 1000 单元内容字节交换6.XCHG WORD
6、 PTR DI,DX(DI)字单元内容与 DX字交换专用累加器传送指令换码指令XLAT 专门使用累加器AL并将其中的值(比如按二进制、十进制或十六进制等编码)变换成内存某一表格区内对应的另一种编码(比如发光二极管 LED的字形码或其他通讯码等)无MOV BX,TABLE_SEGCODE XLAT 设置 SEGCODE表首址对表进行检索有操作码,无操作数。操作数 AL 隐藏在操作码之中输入指令IN 在 I/O 口独立编址时,使用专门的输入指令 IN,这种输入操作又是指定累加器 AL 或 AX来担当,因此,IN 属于专用累加器传送指令无1.IN AL,60H 8 位口地址 60H中的 1 个字节到
7、AL 不能使用除累加器外的其他寄存器进行操作;不能使用大于255 的地址作为 8 位口地址;不能使用除DX外的其他寄存器作为16 位间接口地址,且在间接口寻址时,须对 DX预先置2.IN AX,60H 60H内容到 AL,61H内容到 AH 3.IN AL,DX 16 位口地址(DX)单元内容到AL 4.IN AX,DX(DX)及(DX+1)口名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 28 页 -微机原理指令整理4 内容到 AX 地址值输出指令OUT 在 I/O 口独立编址时,使用专门的输出指令 OUT,这种输出操作又是指定累加器 AL 或 AX来担当,因此,OUT属于专用
8、累加器传送指令无1.OUT 60H,AL AL中的字节输出到 8 位口 60H 不能使用除累加器外的其他寄存器进行操作;不能使用大于255 的地址作为 8 位口地址;不能使用除DX外的其他寄存器作为16 位间接口地址,且在间接口寻址时,须对 DX预先置地址值2.OUT 60H,AX AX中的字输出到8位口 60H及 61H 3.OUT DX,AL AL中的字节到 16位口地址(DX)4.OUT DX,AX AX中的字到(DX)及(DX+1)口地址传送指令有效地址传送指令LEA 将存储单元有效(偏移)地址 EA(源操作数)装入一个16 位通用寄存器(目的操作数),以使该寄存器作为地址指针无1.L
9、EA SP,1234H 直接地址 1234H装入 SP 存储器操作数(存储单元有效地址 EA)作源操作数段寄存器、IP 不能作目的操作数;16 位通用寄存器(BX、BP、SI 及DI)作目的操作数2.LEA BX,TABLE 标号或变量TABLE代表的地址装入 BX 3.LEA SI,BX 间接地址(BX)装入 SI 4.LEA DI,BX+100 基址地址(BX+100)装入DI 不能将存储器操作数与寄存器操作数在源与目的操作数的位置上互换(倒置)5.LEA DX,SI+200 变址地址(SI+200)装入DX 6.LEA AX,BP+DI+500 基(址)变址地名师资料总结-精品资料欢迎下
10、载-名师精心整理-第 4 页,共 28 页 -微机原理指令整理5 址(BP+DI+500)装入 AX 使用 DS段的地址指针传送指令LDS 将双字地址指针(包括偏移地址和段地址)分别传送到指令中给出的16 位寄存器及数据段寄存器DS中,双字地址指针从源操作数的双字内容即(EA)和(EA+2)字单元得到无1.LDS BX,3250H 由直接地址得到双字地址指针存储器操作数(存储单元有效地址(EA)作为源操作数16 位寄存器REG(BX、BP、SI 及 DI)作为目的操作数2.LDS SI,TMP 由标号(符号地址)的内容得到双字地址指针3.LDS BP,BX 由间接地址(BX)的内容得到双字地址
11、指针4.LDS DI,BX+20 由基址地址(BX+20)的内容得到双字地址指针5.LDS BX,DI+40 由变址地址(DI+40)的内容得到双字地址指针不能将存储器操作数(存储单元有效地址EA)与寄存器操作数在源与目的操作数的位置上互换(倒置)6.LDS BX,BP+SI+500 由基(址)变址地址(BP+SI+500)的内容得到双字地址指针使用 ES段的地址指LES 功能与上基本相同,差别在于能提供偏移地址直接访问和使用ES段的无名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 28 页 -微机原理指令整理6 针传送指令只有 DI,而 BX、SI 及 BP可通过段超越前缀(E
12、S:)由默认的DS段或SS段改为访问ES段标志传送指令低 8位标志取入 AH指令LAHF 将标志寄存器中低8 位 FL 取入寄存器 AH中(AH-FL),以便于阅读和校核无低 8 位FL(SF、ZF、AF、PF、CF)寄存器 AH 存 AH到低8 位标志指令SAHF 将 AH内容存到低 8 位标志寄存器FL中(FL-AH),以便于设置标志状况影响低 8 位标志位寄存器 AH 低 8 位FL(SF、ZF、AF、PF、CF)标志进栈指令PUSHF 将 16 位标志寄存器F(FH、FL)的内容进栈,SP-SP-2,F 的内容不变无16 位标志寄存器 F(FL、FH)堆栈标志出栈指令POPF 将堆栈栈
13、顶的2 个字节弹出送16 位标志寄存器F(FH、FL),SP-SP+2,影响标志寄存器的内容影响 16 位标志位堆栈栈顶的 2个字节16 位标志寄存器 F(FL、FH)算术运算类指令加法类指令加法指令ADD 将源操作数与目的操作数的内容相加,其结果(两者之和)存放于目的操作数,或者说将源操作数的内容加到目的操作数中CF、PF、AF、ZF、SF及 OF 1.ADD DI,SI 寄存器 SI 的内容加到 DI 中源与目的操作数不能同时为存储器操作数2.ADD CX,5000 5000 和 5001 单元内容加到 CX中寄存器、存储器或立即数寄存器或存储器;不能是立即数3.ADD WORD PTR
14、BP+DI+30,DX 寄存器 DX的内容加到(BP+DI+30)字单元中4.ADD WORD PTR SI+100,2040 立即数 2040加到(SI+100)字单元中名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 28 页 -微机原理指令整理7 5.ADD BH,86H 立即数 86H加到BH中6.ADD AX,FED0H 立即数 FED0H 加到累加器 AX中带进位的加法指令ADC 功能与上基本相同,唯一不同之处是,在源操作数与目的操作数的内容相加时,还要加上进位位CF的值CF、PF、AF、ZF、SF及 OF 与 ADD相同与 ADD相同与 ADD 相同 与 ADD相同增
15、量(加1)指令INC 将目的操作数的内容(8 位或 16 位)加 1,源操作数1 隐含在操作码中。目的操作数为寄存器或存储器,但不能是段寄存器或立即数PF、AF、ZF、SF及 OF,不影响 CF 1.INC AL AL中的内容加1 源操作数为 1 为寄存器或存储器;不能是段寄存器或立即数2.INC DI DI 中的内容加1 3.INC BYTE PTR 2000 2000 存储单元内容加 1 4.INC WORD PTR BP+SI+50(BP+SI+50)存储器字单元内容加1 减法类指令减法指令SUB 将目的操作数的内容与源操作数的内容相减,其结果(两者之差)存放于目的操作数,或者说从目的操
16、作数的内容中减去源操作数的内容CF、PF、AF、ZF、SF及 OF。CF=1,表示借位;OF=1,溢出1.SUB CH,DL CH中的内容减去DL中的内容,结果在 CH中源与目的操作数不能同时为存储器操作数2.SUB BL,DI 在 BL中减去(DI)单元的内容寄存器、存储器或立即数寄存器或存储器;不能是立即数3.SUB BP+4,cl 在 SS段的(BP+4)单元中减去 CL的内容4.SUB WORD PTR BX+DI+50,300 在(BX+DI+50)字单元中减去立即数 300 名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 28 页 -微机原理指令整理8 5.SUB B
17、X,3050H 在 BX中减去立即数 3050H 6.SUB AL,56 在 AL中减去立即数 56 带借位的减法指令SBB 在 SUB的基础上再减去CF的值。适合于多字节或多字的减法与 SUB相同与 SUB相同与 SUB相同与 SUB相同 与 SUB相同减量(减1)指令DEC 将目的操作数的内容(8 位或 16 位)减 1,源操作数1 隐含在操作码中。目的操作数为寄存器或存储器,但不能是段寄存器或立即数与 INC 相同1.DEC CL CL中的内容减1 源操作数为 1 为寄存器或存储器;不能是段寄存器或立即数2.DEC AX AX中的内容减1 3.DEC BYTE PTR BX(BX)存储单
18、元内容减 1 4.DEC WORD PTR BX+DI+20(BX+DI+20)存储器字单元内容减1 求补指令NEG 用 0 去减目的操作数的内容(8 位或16 位),其实质即为求取目的操作数内容的(2 的)补码CF、PF、AF、ZF、SF及 OF。与 SUB相同1.NEG AL AL中的内容求补码源操作数为 0 为寄存器或存储器;不能是段寄存器或立即数2.NEG BX BX中的内容求补码3.NEG BYTE PTR BX(BX)存储单元内容求补码4.NEG WORD PTR BX+SI+5(BX+SI+5)存储器字单元内容求补码比较指令CMP 将目的操作数的内容减去源操作数的内容,但其结果(
19、两者之差)不回送于目的操作数CF、PF、AF、ZF、SF及 OF。ZF=1,两数相1.CMP SI,BP SI 与 BP内容比较源与目的操作数不能同时为存储器操作数2.CMP CH,3000 CH与(3000)存储 寄存器、存寄存器或存名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 28 页 -微机原理指令整理9 等;ZF=0,两数不等CF=1,有借位;CF=0,无借位(无符号)SF OF=1,被减数大于减数;SFOF=0,被减数小于减数单元内容比较储器或立即数储器;不能是立即数3.CMP WORD PTR BX+DI+100,DX(BX+DI+100)字单元与 DX内容比较4.
20、CMP BYTE PTR BX+SI,40H(BX+SI)字节单元与立即数40H比较5.CMP DI,0550H DI 内容与立即数0550H比较6.CMP AL,80 累加器 AL内容与立即数 80 比较乘法类指令无符号数乘法指令MUL 不影响 PF、AF、ZF、SF 只影响 CF、OF 1.MUL DL AL与 DL内容相乘,乘积在 AX中寄存器或存储器;不能是立即数(8 位或 16 位)累加器 AL(8位)或 AX(16位)、DX 2.MUL CX AX与 CX内容相乘,乘积在 DX和AX中3.MUL BYTE PTR SI+2 AL与(SI+2)字节单元内容相乘,结果在 AX中4.MU
21、L WORD PTR DI AX与(DI)字单元内容相乘,结果在 DX和 AX中带符号数乘法指令IMUL 又称整型数乘法,即被乘数与乘数都是有符号的整数不影响 PF、AF、ZF、SF 只影响 CF、1.IMUL BL AL中的带符号数与 BL中的带符号数相乘,乘积在寄存器或存储器;不能是立累加器 AL(8位)或 AX(16位)、DX 名师资料总结-精品资料欢迎下载-名师精心整理-第 9 页,共 28 页 -微机原理指令整理10 OF AX中即数(8 位或 16 位)2.IMUL DX AX中的带符号数与 DX中的带符号数相乘,乘积在DX和 AX中3.IMUL BYTE PTR BX AL中的带
22、符号数与(BX)字节单元中的带符号数相乘,乘积在 AX中4.IMUL WORD PTR BX+SI+5 AX中的带符号数与(BX+SI+5)字单元中的带符号数相乘,乘积在DX和 AX中除法类指令无符号数除法指令DIV 不影响 CF、PF、AF、ZF、SF及 OF 1.DIV BL AX内容除以 BL内容,商在AL,余数在 AH 寄存器或存储器;不能是立即数(8 位或 16 位)累加器 AX(16 位)或DX、AX(前者高 16 位,后者低 16位,共 32位,DX看做AX的扩展)2.DIV BX DX与 AX内容除以 BX内容,商在AX,余数在 DX 3.DIV BYTE PTR 3040 A
23、X内容除以(3040)字节单元内容,商在AL,余数在 AH 4.DIV WORD PTR DI DX与 AX内容除名师资料总结-精品资料欢迎下载-名师精心整理-第 10 页,共 28 页 -微机原理指令整理11 以(DI)字单元内容,商在 AX,余数在 DX 有符号数除法指令IDIV 不影响 CF、PF、AF、ZF、SF及 OF 1.IDIV CL AX与 CL符号数相除,商在AL,余数在 AH 寄存器或存储器;不能是立即数(8 位或 16 位)累加器 AX(16 位)或DX、AX(前者高 16 位,后者低 16位,共 32位,DX看做AX的扩展)2.IDIV BX DX、AX与 BX符号数相
24、除,商在 AX,余数在 DX 3.IDIV BYTE PTR SI AX与(SI)字节单元符号数相除,商在 AL,余数在AH 4.IDIV WORD PTR 5500H DX、AX与(5500H)字单元符号数相除,商在 AX,余数在 DX 符号扩展类指令字节扩展成字指令CBW 为单字节指令。执行CBW 时,将 AL中的最高位(符号位)扩展到 AH中,亦即 AH中每一位的值与AL 中的符号位相同。当 AL=80H,为负数,执行 CBW 后,AH=FFH=-1(补码)无字扩展成双字指令CWD 执行 CWD,将 AX中的最高位(符号位)扩展到DX中,亦即 DX中每一无名师资料总结-精品资料欢迎下载-
25、名师精心整理-第 11 页,共 28 页 -微机原理指令整理12 位的值与 AX中的符号位相同。当AX=8000H,为负数,执行 CWD 后,DX=FFFFH=-1(补码)十进制调整类指令加法的十进制调整加法的ASCII调整指令AAA 针对两个非组合BCD码相加在 AL中的结果,将其调整为BCD 码。被调整的操作数隐含在AL 中,调整后的正确结果在AH和 AL 即 AX中只影响 AF、CF,对 PF、SF、ZF 及 OF无影响加法的十进制调整指令DAA 针对两个组合BCD 码相加在 AL中的结果,将其调整为BCD码。被调整的操作数隐含在AL中,调整后的正确结果仍在AL中影响 AF、CF、PF、
26、SF和 ZF,对 OF无影响减法的十进制调整减法的ASCII调整指令AAS 两个非组合 BCD码相减在 AL中的结果,若低 4 位大于 9 或 AF=1(此处表示向高 4 位借位),就从AL中减去 6,从 AH中减去 1,CF=1(此处表示 AL从 AH借位);AL减 6 后再和OFH相“与”,调整的结果在AL 中,其高 4 位为 0,低 4 位为 0-9 之间的一个数,即为正确的非组合BCD码只影响 AF、CF,对 PF、SF、ZF 及 OF无影响减法的十进制调整DAS 两个组合 BCD码相减在 AL 中的结果,若低 4 位大于 9 或 AF=1,则低4 位减 6(06H),AF=1;若高
27、4 位大于 9 亦即(AL&F0H)90H或 CF=1,影响 AF、CF、PF、SF和 ZF,对 OF无影响名师资料总结-精品资料欢迎下载-名师精心整理-第 12 页,共 28 页 -微机原理指令整理13 指令则高 4 位减 6,亦即 AL-60H,CF=1 乘法的十进制调整乘法的ASCII调整指令AAM 将被乘数和乘数均转换为非组合BCD码,其乘积也要求是非组合BCD码放在 AX中影响 PF、SF及 ZF,不影响 AF、CF及OF 除法的十进制调整除法的ASCII调整指令AAD 将被除数和除数均转换为非组合BCD码,其商也要求是非组合BCD码放在 AL中,余数也要求是非组合BCD码放在 AH
28、中。但在做除法之前,先对 AX中的被除数的非组合BCD 码进行 ASCII 调整,其指令为AAD 影响 PF、SF及 ZF,不影响 AF、CF及OF 逻辑运算指令取反(逻辑非)指令NOT 执行该指令时,对操作数取反使 CF=0、OF=0;影响 PF、ZF及 SF;对 AF不确定1.NOT BL BL内容取反,结果在 BL 中操作数只有一个,可以是寄存器或存储器操作数,但不能是立即数2.NOT AX AX内容取反,结果在 AX中3.NOT BYTE PTR 2000H(2000H)单元内容取反,结果在2000H中逻4.NOT WORD PTR SI+2(SI+2)字单元内名师资料总结-精品资料欢
29、迎下载-名师精心整理-第 13 页,共 28 页 -微机原理指令整理14 辑运算类指令容取反,结果“与”(逻辑乘)指令AND 将源操作数和目的操作数相“与”,结果存入目的操作数。相“与”时,两数对应位均为1,则该结果为1,其他情况下均为0 与 NOT相同1.AND CX,DI DI 和 CX内容相“与”,结果在CX中寄存器、存储器或立即数寄存器、存储器或单独列出的累加器(也可含在寄存器中),但不能为立即数(因为不能存放结果)2.AND DH,2000(2000)字节单元和 DH内容相“与”,存入(DI+4)字单元3.AND WORD PTR DI+4,DX DX和(DI+4)字单元内容相“与”
30、,存入(DI+4)字单元4.AND BYTE PTR BX+10,50 50 和(BX+10)字节单元内容相“与”,存入(BX+10)字节单元5.AND BL,01100110B 66H和 BL内容相“与”,存入AX 6.AND AX,3344H 3344H和 AX内容相“与”,存入AX“或”(逻辑和)指令OR 将源操作数和目的操作数相“或”,结果存入目的操作数。用 1 去相“或”时,该位结果为1,起到置位的作用;与 AND相同格式与 AND 相同与 AND 相同 与 AND相同名师资料总结-精品资料欢迎下载-名师精心整理-第 14 页,共 28 页 -微机原理指令整理15 而用 0 去相“或
31、”时,则保留原来位的结果“异或”指令XOR 将源操作数与目的操作数取“异或”,结果存入目的操作数。用1去“异或”时,使对应位取反;而用 0 去“异或”时,则保留原来位的结果(对应位相同,结果为 0;对应位不同,结果为1)与 AND相同格式与 AND 相同与 AND 相同 与 AND相同测试指令TEST 将源操作数与目的操作数相“与”,但结果不送回到目的操作数。依据对 ZF(最低位是否为0,是,为 1,否则为 0)、SF(最高位是否为1,是,为 1,否则为 0)的判断,来决定程序转移是否与 AND相同与 AND相同与 AND 相同 与 AND相同移位指令逻辑左移指令SHL 对无符号数而言,左移1
32、 位相当于乘以 2,左移若干位相当于乘以2 的幂次。但当CF首次出现 1(表示已到扩展位)之后,便不遵循此规则影响 CF、PF、ZF、SF及 OF;对 AF不确定1.SHL AH,1 AH内容左移 1 位寄存器或存储器,其内容可以是 8 位或 16位,、但不能为立即数2.SHL CX,1 CX内容左移 1 位3.MOV CL,4 4.SHL DL,CL DL内容左移 4 位5.SHL AX,CL AX内容左移 4 位6.SHL BYTE PTR DI+2,1(DI+2)字节单元内容左移 1 位7.SHL WORD PTR BX+100,1(BX+100)字单元内容左移 1 位8.MOV CL,
33、3 9.SHL BYTE PTR 1000(1000)字节单元名师资料总结-精品资料欢迎下载-名师精心整理-第 15 页,共 28 页 -微机原理指令整理16 内容左移 3 位10.SHL WORD PTR BX+SI+10(BX+SI+10)字单元内容左移3 位算术左移指令SAL 对带符号数而言,左移 1 位乘 2,左移若干位乘2 的幂次。但当符号位发生变化的情况下,也不遵循此规则影响 CF、PF、ZF、SF及 OF;对 AF不确定1.SAL AH,1 AH内容左移 1 位寄存器或存储器,其内容可以是 8 位或 16位,但不能为立即数2.SAL CX,1 CX内容左移 1 位3.MOV CL
34、,4 4.SAL DL,CL DL内容左移 4 位5.SAL AX,CL AX内容左移 4 位6.SAL BYTE PTR DI+2,1(DI+2)字节单元内容左移 1 位7.SAL WORD PTR BX+100,1(BX+100)字单元内容左移 1 位8.MOV CL,3 9.SAL BYTE PTR 1000(1000)字节单元内容左移 3 位10.SAL WORD PTR BX+SI+10(BX+SI+10)字单元内容左移3 位逻辑右移指令SHR 每右移 1 位时,高位向低位移1 位,最低位移入进位位CF,CF的内容被冲掉(自动消失),而最高位 D15(或D7)补 0。对无符号数而言,
35、右移1位相当于除以2,右移若干位相当于除以 2 的幂次与 SHL相同格式与 SHL相同与 SHL相同 与 SHL相同算术右移指令SAR 右移时,最高位D15(或 D7)维持不变。带符号位数右移1 位除以 2,与 SAL相同格式与 SAL相同与 SAL相同 与 SAL相同名师资料总结-精品资料欢迎下载-名师精心整理-第 16 页,共 28 页 -微机原理指令整理17 右移多位除以2 的幂次。当执行 SAR指令截断整数时,对整数使其值接近于 0,对负数使其值更接近于负无穷大循环移位指令不带进位位循环左移指令ROL 每左移 1 位时,低位向高位移1 位,最高位 D15(或 D7)移入进位位CF,并同
36、时移入最低位仅影响 OF及CF 与 SHL相同 与 SHL相同不带进位位循环右移指令ROR 每右移 1 位时,高位向低位移1 位,最低位移入进位位CF,并且同时移入最高位 D15(或 D7)仅影响 OF及CF 与 SHL相同 与 SHL相同带进位位循环左移指令RCL 将 CF作为扩展位放在循环之中,在每左移 1 位时,低位向高位移1 位,最高位 D15(或 D7)移入进位位CF,而 CF移入最低位仅影响 OF及CF 与 SHL相同 与 SHL相同带进位位循环右移指令RCR 每右移 1 位时,高位向低位移1 位,最低位移入进位位CF,而 CF移入最高位 D15(或 D7)仅影响 OF及CF 与
37、SHL相同 与 SHL相同串操作类指令重复前缀指令REP 串操作的次数用CX作为计数器来计数。执行 REP时,先判断CX=0?,若CX不等于 0,则重复执行串操作,CX-CX-1(次数减 1),这样一直持续到 CX=0为止REPE/REPZ 除了满足上述CX不等于 0 的条件之外,再加上一个ZF=1(相等/为零)的条件,这样才能重复执行。反过名师资料总结-精品资料欢迎下载-名师精心整理-第 17 页,共 28 页 -微机原理指令整理18 来说,只有在ZF=0或 CX=0时,就退出串操作。REPE/REPZ 有两种形式(写法),功能相同,使用时可任选。常用作串比较(结果相等)或串搜索(结果相同)
38、的重复前缀REPNE/REPNZ 除了满足 CX不等于 0 的条件之外,再加上一个ZF=0(不相等/不为零)的条件,才重复执行。只有在ZF=1或者 CX=0时,退出串操作。REPNE/REPNZ 也有两种形式(写法),常用作串比较(结果不等)或串搜索(结果不同)的重复前缀串传送指令MOVS 串传送(字或字节均可),在不致引起混淆的情况下,也可用MOVS 取代MOVSB 或 MOVSW 源串隐含在 DS段,用 SI 间接寻址目的串隐含在 ES段,用DI 间接寻址字节串传送MOVSB 将源串中的字节传送至目的串。串源隐含在 DS段,用 SI 间接寻址;目的串隐含在ES段,用 DI 间接寻址。每执行
39、 1 次传送,SI 与 DI 各自自动+/-1,指向下一个字节单元源串隐含在 DS段,用 SI 间接寻址目的串隐含在 ES段,用DI 间接寻址字传送MOVSW 将源串中的字传送至目的串。串源隐含在 DS段,用 SI 间接寻址;目的串隐含在ES段,用 DI 间接寻址。每执行 1 次传送,SI 与 DI 各自自动+/-2,指向下一个字单元源串隐含在 DS段,用 SI 间接寻址目的串隐含在 ES段,用DI 间接寻址名师资料总结-精品资料欢迎下载-名师精心整理-第 18 页,共 28 页 -微机原理指令整理19 串比较指令CMPS 串比较(字或字节均可),在不致引起混淆的情况下,也可用CMPS 取代
40、CMPSB 或 CMPSW 仅影响 CF、PF、AF、ZF、SF及 OF 源串隐含在 DS段,用 SI 间接寻址目的串隐含在 ES段,用DI 间接寻址字节串传送CMPSB 将源串中的字节传送至目的串,但不回送结果到目的串。串源隐含在DS段,用 SI 间接寻址;目的串隐含在 ES段,用 DI 间接寻址。每执行 1次比较,SI 与 DI 各自自动+/-1,指向下一个字节单元仅影响 CF、PF、AF、ZF、SF及 OF 源串隐含在 DS段,用 SI 间接寻址目的串隐含在 ES段,用DI 间接寻址字串传送CMPSW 将源串中的字传送至目的串,但不回送结果到目的串。串源隐含在DS段,用 SI 间接寻址;
41、目的串隐含在ES段,用 DI 间接寻址。每执行 1 次比较,SI 与 DI 各自自动+/-2,指向下一个字单元仅影响 CF、PF、AF、ZF、SF及 OF 源串隐含在 DS段,用 SI 间接寻址目的串隐含在 ES段,用DI 间接寻址串搜索指令SCAS 串搜索(字或字节均可),在不致引起混淆的情况下,也可用CSCAS取代 SCASB 或 SCASW 累加器AL/AX(存放关键字/字节)字节串搜索SCASB 用累加器 AL/AX(存放一个关键字节)取代源串,寻找目的串中与其不同或相同的字节。用AL/AX 减去目的串,但不回送结果到目的串,也不回送结果到AL/AX。目的串隐含在 ES段,用 DI 间
42、接寻址。每执行累加器AL/AX(存放关键字/字节)名师资料总结-精品资料欢迎下载-名师精心整理-第 19 页,共 28 页 -微机原理指令整理20 一次搜索,SI 与 DI 各自自动+/-1,指向下一字节单元字串搜索SCASW 用累加器 AL/AX(存放一个关键字)取代源串,寻找目的串中与其不同或相同的字。用AL/AX减去目的串,但不回送结果到目的串,也不回送结果到 AL/AX。目的串隐含在ES段,用 DI 间接寻址。每执行一次搜索,SI 与 DI 各自自动+/-2,指向下一字单元累加器AL/AX(存放关键字/字节)取串指令LODS 取串(字或字节均可),在不致引起混淆的情况下,也可用LODS
43、 取代LODSB 或 LODSW 将源串取入累加器AL/AX,源串隐含在 DS段,用 SI 间接寻址取字节串LODSB 将源串取入累加器AL/AX。源串隐含在 DS段,用 SI 间接寻址。每执行一次取入操作,SI 自动+/-1,指向下一个字节单元将源串取入累加器AL/AX,源串隐含在 DS段,用 SI 间接寻址取字串LODSW 将源串取入累加器AL/AX。源串隐含在 DS段,用 SI 间接寻址。每执行将源串取入累加器名师资料总结-精品资料欢迎下载-名师精心整理-第 20 页,共 28 页 -微机原理指令整理21 一次取入操作,SI 自动+/-2,指向下一个字单元AL/AX,源串隐含在 DS段,
44、用 SI 间接寻址存串指令STOS 存串(字或字节均可),在不致引起混淆的情况下,也可用STOS 取代STOSB 或 STOSW 将源串取入累加器AL/AX 目的串隐含在 ES段,用DI 间接寻址存字节串STOSB 将累加器 AL/AX 的内容存放到目的串(区)。目的串隐含在ES段,用DI 间接寻址。每执行 1 次存放操作,DI 自动+/-1,指向下一个字节单元将源串取入累加器AL/AX 目的串隐含在 ES段,用DI 间接寻址存字串STOSW 将累加器 AL/AX 的内容存放到目的串(区)。目的串隐含在ES段,用DI 间接寻址。每执行 1 次存放操作,DI 自动+/-2,指向下一个字单元将源串
45、取入累加器AL/AX 目的串隐含在 ES段,用DI 间接寻址程序控制类指令转移指令无条件转移指令JMP 若为段内,则转移地址送IP;若为段间,则转移地址偏移量部分送 IP,段地址部分送CS 格式为:JMP OPRD(OPRD 为转移的目标地址(程序转移地址),除短转移时OPRD 为 8 位符号数之外,其余情况同CALL)JMP SHORT DEST 段内直接(相对)短转移JMP NEAR PTR MULTI 段内直接(相对)近转移JMP WORD PTR MULTI 段内间接转移JMP FAR PTR DEST 段间直接(远)转移JMP DWORD PTR DEST 段间间接转移简单的标JZ/
46、JE 结果为 0(相等),即ZF=1,则转对标志无影名师资料总结-精品资料欢迎下载-名师精心整理-第 21 页,共 28 页 -微机原理指令整理22 志条件转移指令移响JNZ/JNE 结果不为 0(不相等),即ZF=0,则转移JS 结果为负(符号位为1),即 SF=1,则转移JNS 结果为正(符号位为0),即 SF=0,则转移JP/JPE 奇偶位为 1(奇偶性为偶),即 PF=1,则转移JNP/JPO 奇偶位为(奇偶性为奇),即 PF=0,则转移JO 溢出,即 OF=1,则转移JNO 不溢出,即OF=0,则转移JC/JB/JNAE 有进位(低于,或者不高于且不等于),即 CF=1,则转移JNC
47、/JNB/JAE 无进位(不低于,或者高于或等于),即 CF=0,则转移无符号数比较结果的条件转移指令JB/JNAE/JC 低于,或者不高于且不等于(有进位),即 CF=1,则转移JNB/JAE/JNC 不低于,或者高于或等于(无进位),即 CF=0,则转移JA/JNBE 高于,或者不低于且不等于,即CFZF=0,则转移(此为反相的逻辑或,也可写为CF+ZF=0,即 CF=0与ZF=0)名师资料总结-精品资料欢迎下载-名师精心整理-第 22 页,共 28 页 -微机原理指令整理23 JNA/JBE 不高于,或者低于或等于,即CF ZF=1,则转移(此为逻辑或,也可写为 CF+ZF=1,即 CF
48、=1或 ZF=1)带符号数比较结果的条件转移指令JL/JNGE 小于,或者不大于且不等于,即SF OF=1,则转移(此为异或,也可写为 SF OF=1,即 SF OF)JNL/JGE 不小于,或者大于或等于,即SF OF=0,则转移(此为反相的异或即同或,也可写为 SF OF=0,即 SF=OF)JG/JNLE 大于,或者不小于且不等于,即(SF OF)ZF=0,则转移(也可写为(SF OF)+ZF=0,即 SF=OF 且 ZF=0,转移;SF OF或 ZF=1,不转移)JNG/JLE 不大于,或者小于或等于,即(SF OF)ZF=1,则转移(也可写为(SFOF)+ZF=1,即SF OF或ZF
49、=1,转移;SF=OF且 ZF=0,不转移)循环控制指令LOOP 如果 CX 0,则循环执行一操作;当CX=0时,则退出循环LOOPE/LOOPZ 如果 CX 0 且 ZF=1(相等/为零),则循环执行一操作;当CX=0或 ZF=0时,则退出循环LOOPNE/LOOPNZ 如果 CX 0 且 ZF=0(不相等/不为零),则循环执行一操作;当CX=0名师资料总结-精品资料欢迎下载-名师精心整理-第 23 页,共 28 页 -微机原理指令整理24 或 ZF=1时,则退出循环子程序调用与返回调用CALL 执行此指令时,以此指令来多次调用程序中一些具有相对独立功能的子程序CALL DEST DEST表
50、示调用的目标地址段内直接(相对)近调用1.CALL BBB 调用以 BBB为标号(符号地址)的子程序2.CALL 1000H 调用目标地址为1000H的子程序3.CALL NEAR PROC 调用一个近程序段内间接调用1.CALL BX BX内容为目标地址2.CALL WORD PTR BX(BX)间接寻址的字单元内容为目标地址3.CALL WORD PTR BP+DI+10(BP+DI+10)基变址寻址的字单元内容为目标地址(在 SS段)4.CALL WORD PTR ES:BP+SI(BP+SI)基变寻址的字单元内容为目标地址(在ES段)段间直接调用1.CALL 3500H:1000H 调