当前位置:文档之家› 微机原理指令整理..

微机原理指令整理..

类别指令类型指令名称指令缩写指令功能影响标志格式格式含义源操作数目的操作数传送指令通用传输指令基本传输指令MOV将源操作数中的数据传送至目的操作数,以实现寄存器与寄存器、寄存器与存储器之间数据传送以及立即数送往寄存器或存储器无1.MOV WORD PTR [2000],AX将AX送2000和2001单元(低位在低地址,高位在高地址,下同)至少有一个是寄存器(除立即数送存储器外);不能在两个存储单元之间直接传送数据;不能在两个段寄存器之间直接传送数据;不能将立即数直接送至段寄存器;SS和SP赋值必须紧邻指令指针IP既不作目的操作数也不做源操作数2.MOV AX,ES:[BX+SI+50]将ES段(BX+SI+50)字单元内容送AX3.MOV SS,BX 将BX内容送SS4.MOV ES,SS:[DI+200]将SS段(DI+200)字单元内容送ES5.MOV BX,CX 将CS内容送BX6.MOV WORD PTR[BX+DI],SS将SS内容送(BX+DI)字单元CS不能作目的操作数;立即数不能作目的操作数7.MOV CL,DH 将DH内容送CL8.MOV DI,[SI+100]将(SI+100)字单元内容送DI9.MOV WORD PTR [DI],DX将DX内容送(DI)字单元10.MOV CX,3330 立即数3330送微机原理指令整理 1微机原理指令整理2CX11.MOV BYTE PTR [DI],0立即数0送(DI)字节单元 堆栈操作指令PUSH将来自通用寄存器、段寄存器或存储单元的一个字(16位)内容压入堆栈(SP 指向的栈顶个单元)无1.PUSH AX AX 内容进栈 通用寄存器、段寄存器、存储单元的一个字CS 不能作目的操作数; 2.PUSH SISI 内容进栈 3.PUSH ESES 内容进栈 4.PUSH CSCS 内容进栈 5.PUSH WORD PTR [BX](BX)和(BX+1)单元内容进栈6.PUSH WORD PTR BETA [BX] (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 )字单元交换指令XCHG 实现数据宽度相同的源操作数与目的操作数之间的数据交换,亦即同为8位或16位的累加器与寄存器、寄存器与寄存器以及寄存器与存储单元之间的数据交换无1.XCHG AL,BLAL与BL之间字节交换段寄存器、CS、IP、立即数不能作为源或目的操作数;两个存储单元之间、段寄存器与段寄存器之间不能进行交换2.XCHG CX,AXCX与AX之间字交换3.XCHG DH,CLDH与CL之间字节交换4.XCHG BX,CXBX与CX之间字交换5.XCHG BL,[1000]BL与1000单元内容字节交换6.XCHG WORD PTR [DI],DX(DI)字单元内容与DX字交换专用累加器传送指令换码指令XLAT专门使用累加器AL并将其中的值(比如按二进制、十进制或十六进制等编码)变换成内存某一表格区内对应的另一种编码(比如发光二极管LED的字形码或其他通讯码等)无MOV BX,TABLE_SEGCODEXLAT设置SEGCODE表首址对表进行检索有操作码,无操作数。

操作数AL隐藏在操作码之中输入指令IN在I/O口独立编址时,使用专门的输入指令IN,这种输入操作又是指定累加器AL或AX来担当,因此,IN属于专用累加器传送指令无1.IN AL,60H8位口地址60H中的1个字节到AL不能使用除累加器外的其他寄存器进行操作;不能使用大于255的地址作为8位口地址;不能使用除DX外的其他寄存器作为16位间接口地址,且在间接口寻址时,须对DX预先置2.IN AX,60H60H内容到AL,61H内容到AH3.IN AL,DX16位口地址(DX)单元内容到AL4.IN AX,DX (DX)及(DX+1)口微机原理指令整理 3内容到AX 地址值输出指令OUT 在I/O口独立编址时,使用专门的输出指令OUT,这种输出操作又是指定累加器AL或AX来担当,因此,OUT属于专用累加器传送指令无1.OUT 60H,ALAL中的字节输出到8位口60H不能使用除累加器外的其他寄存器进行操作;不能使用大于255的地址作为8位口地址;不能使用除DX外的其他寄存器作为16位间接口地址,且在间接口寻址时,须对DX预先置地址值2.OUT 60H,AXAX中的字输出到8位口60H及61H3.OUT DX,ALAL中的字节到16位口地址(DX)4.OUT DX,AXAX中的字到(DX)及(DX+1)口地址传送指令有效地址传送指令LEA将存储单元有效(偏移)地址EA(源操作数)装入一个16位通用寄存器(目的操作数),以使该寄存器作为地址指针无1.LEA SP,[1234H]直接地址1234H装入SP存储器操作数(存储单元有效地址EA)作源操作数段寄存器、IP不能作目的操作数;16位通用寄存器(BX、BP、SI及DI)作目的操作数2.LEA BX,TABLE标号或变量TABLE代表的地址装入BX3.LEA SI,[BX]间接地址(BX)装入SI4.LEA DI,[BX+100]基址地址(BX+100)装入DI不能将存储器操作数与寄存器操作数在源与目的操作数的位置上互换(倒置)5.LEA DX,[SI+200]变址地址(SI+200)装入DX6.LEA AX,[BP+DI+500] 基(址)变址地微机原理指令整理 4址(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)的内容得到双字地址指针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针传送指令只有DI,而BX、SI及BP可通过段超越前缀(ES:)由默认的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将堆栈栈顶的2个字节弹出送16位标志寄存器F(FH、FL),SP<-SP+2,影响标志寄存器的内容影响16位标志位堆栈栈顶的2个字节16位标志寄存器F(FL、FH)算术运算类指令加法类指令加法指令ADD将源操作数与目的操作数的内容相加,其结果(两者之和)存放于目的操作数,或者说将源操作数的内容加到目的操作数中CF、PF、AF、ZF、SF及OF1.ADD DI,SI寄存器SI的内容加到DI中源与目的操作数不能同时为存储器操作数2.ADD CX,[5000]5000和5001单元内容加到CX中寄存器、存储器或立即数寄存器或存储器;不能是立即数3.ADD WORD PTR[BP+DI+30],DX寄存器DX的内容加到(BP+DI+30)字单元中4.ADD WORD PTR[SI+100],2040立即数2040加到(SI+100)字单元中微机原理指令整理 65.ADD BH,86H 立即数86H加到BH中6.ADD AX,FED0H 立即数FED0H加到累加器AX中带进位的加法指令ADC功能与上基本相同,唯一不同之处是,在源操作数与目的操作数的内容相加时,还要加上进位位CF的值CF、PF、AF、ZF、SF及OF 与ADD相同与ADD相同与ADD相同与ADD相同增量(加1)指令INC将目的操作数的内容(8位或16位)加1,源操作数1隐含在操作码中。

目的操作数为寄存器或存储器,但不能是段寄存器或立即数PF、AF、ZF、SF及OF,不影响CF1.INC AL AL中的内容加1 源操作数为1为寄存器或存储器;不能是段寄存器或立即数2.INC DI DI中的内容加13.INC BYTE PTR [2000]2000存储单元内容加14.INC WORD PTR[BP+SI+50](BP+SI+50)存储器字单元内容加1减法类指令减法指令SUB将目的操作数的内容与源操作数的内容相减,其结果(两者之差)存放于目的操作数,或者说从目的操作数的内容中减去源操作数的内容CF、PF、AF、ZF、SF及OF。

CF=1,表示借位;OF=1,溢出1.SUB CH,DLCH中的内容减去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微机原理指令整理75.SUB BX,3050H 在BX中减去立即数3050H6.SUB AL,56 在AL中减去立即数56带借位的减法指令SBB在SUB的基础上再减去CF的值。

相关主题