指类令
指令名称 指令缩写
指令功能 影响标志 格式 格式含义 源操作数 目的操作数
别 类型
通传用
送传基本传输指输指令 令 指令
将AX 送2000和至少有一个是寄存器1.MOV WORD PTR [2000],AX
2001单元(低位(除立即数送存储器
在低地址,高位外); 在高地址,下同) 不能在两个存储单元之
将ES 段
间直接传送数据; 2.MOV AX,ES:[BX+SI+50] (BX+SI+50)字不能在两个段寄存器之
单元内容送AX 间直接传送数据;
3.MOV SS,BX 将BX 内容送SS 不能将立即数直接送至
将源操作数中的数据传送至目的操将SS 段(DI+200)段寄存器;SS 和SP 赋
4.MOV ES,SS:[DI+200] 字单元内容送ES
值必须紧邻 MOV
作数,以实现寄存器与寄存器、寄指令指针IP 既不作目
存器与存储器之间数据传送以及立无
即数送往寄存器或存储器
5.MOV BX,CX 将CS 内容送BX 的操作数也不做源操作
数 6.MOV WORD PTR 将SS 内容送 CS 不能作目[BX+DI],SS (BX+DI)字单元 的操作数; 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
立即数3330送
微机原理指令整理
1
CX
立即数0送(DI)
11.MOV BYTE PTR [DI],0
堆栈操作
指令
1.PUSH AX 2.PUSH SI
将来自通用寄存器、段寄存器或存3.PUSH ES
PUSH
储单元的一个字(16位)内容压入无
4.PUSH CS
堆栈(SP 指向的栈顶个单元)
5.PUSH WORD PTR [BX]
6.PUSH WORD PTR BETA [BX] 1.POP BX
2.POP DX 3.POP ES
将栈顶个单元的内容退出(弹出)POP
到通用寄存器、段寄存器或存储单无
4.POP SS
元
5.POP [BX+50]
6.POP [BP+DI]
微机原理指令整理
字节单元 AX 内容进栈 通用寄存CS 不能作目SI 内容进栈 器、段寄存的操作数; ES 内容进栈 器、存储单CS 内容进栈 元的一个(BX) 和(BX+1)字
单元内容进栈
(BX+BETA)字单不能使用8位源或目的元内容进栈 操作数 栈顶2个字节出不能使用8位源或目的栈到BX 操作数 栈顶2个字节出 通用寄存栈到DX 器、段寄存栈顶2个字节出器、存储单栈到ES 元的一个字栈顶2个字节出节;
栈到SS CS 不能作目栈顶2个字节出的操作数
栈到(BX+50)字单元
栈顶2个字节出栈到(BP+DI)字单元
2
交换指令 专换码指令 用累加器传送
指输入指令 令
1.XCHG AL,BL AL 与BL 之间字段寄存器、CS 、IP 、立节交换 即数不能作为源或目的
2.XCHG CX,AX
CX 与AX 之间字操作数;
两个实现数据宽度相同的源操作数与目交换
存储单元之间、段寄存的操作数之间的数据交换,亦即同3.XCHG DH,CL
DH 与CL 之间字器与段寄存器之间不能
XCHG
为8位或16位的累加器与寄存器、无
节交换 进行交换 寄存器与寄存器以及寄存器与存储4.XCHG BX,CX BX 与CX 之间字
单元之间的数据交换
交换
5.XCHG BL,[1000]
BL 与1000单元内容字节交换
6.XCHG WORD PTR [DI],DX
(DI) 字单元内
容与DX 字交换
专门使用累加器AL 并将其中的值设置SEGCODE 表有操作码,无操作数。
(比如按二进制、十进制或十六进XLAT 制等编码)变换成内存某一表格区无
MOV BX,TABLE_SEGCODE
首址 操作数AL 隐藏在操作
内对应的另一种编码(比如发光二XLAT
对表进行检索 码之中
极管LED 的字形码或其他通讯码等)
8位口地址60H 不能使用除累加器外的1.IN AL,60H
中的1个字节到其他寄存器进行操作; 在I/O口独立编址时,使用专门的AL 不能使用大于255的地IN 输入指令IN ,这种输入操作又是指60H 内容到AL ,址作为8位口地址; 定累加器AL 或AX 来担当,因此,无 2.IN AX,60H 61H 内容到AH 不能使用除DX 外的其
IN 属于专用累加器传送指令
3.IN AL,DX 16位口地址(DX )
他寄存器作为16位间单元内容到AL 接口地址,且在间接口
4.IN AX,DX
(DX)及(DX+1)口寻址时,
须对DX 预先置微机原理指令整理
3
输出指令 地址
传有效地址送传送指令 指令
1.OUT 60H,AL
在I/O口独立编址时,使用专门的2.OUT 60H,AX
OUT
输出指令OUT ,这种输出操作又是指定累加器AL 或AX 来担当,因此,无
3.OUT DX,AL OUT 属于专用累加器传送指令
4.OUT DX,AX 1.LEA SP,[1234H]
2.LEA BX,TABLE
将存储单元有效(偏移)地址EA (源LEA
操作数)装入一个16位通用寄存器3.LEA SI,[BX]
(目的操作数),以使该寄存器作无
为地址指针
4.LEA DI,[BX+100]
5.LEA DX,[SI+200]
6.LEA AX,[BP+DI+500] 微机原理指令整理
内容到AX
地址值
AL 中的字节输出不能使用除累加器外的到8位口60H 其他寄存器进行操作; AX 中的字输出到不能使用大于255的地
8位口60H 及61H
址作为8位口地址; AL 中的字节到16不能使用除DX 外的其位口地址(DX) 他寄存器作为16位间
AX 中的字到(DX) 接口地址,且在间接口
及(DX+1)口 寻址时,须对DX 预先置地址值
直接地址1234H 存储器操段寄存器、装入SP 作数(存储IP 不能作目
标号或变量
单元有效的操作数;TABLE 代表的地地址EA )
作16位通用寄址装入BX
源操作数 存器(BX、BP 、SI 及
间接地址(BX)装DI) 作目的入SI 操作数 基址地址不能将存储器操作数与(BX+100)装入寄存器操作数在源与目DI 的操作数的位置上互换
变址地址(倒置) (SI+200)装入
DX
基(址)变址地
4
使用DS 段的地址指针传送指令
使用ES 段的地址指
1.LDS BX,[3250H]
2.LDS SI,TMP
3.LDS BP,[BX]
将双字地址指针(包括偏移地址和段地址)分别传送到指令中给出的LDS 16位寄存器及数据段寄存器DS 中,无
4.LDS DI,[BX+20]
双字地址指针从源操作数的双字内容即(EA )和(EA+2)字单元得到
5.LDS BX,[DI+40]
6.LDS BX,[BP+SI+500] LES
功能与上基本相同,差别在于能提供偏移地址直接访问和使用ES 段的
无
微机原理指令整理
址(BP+DI+500)装入AX
由直接地址得到存储器操16位寄存器双字地址指针 作数(存储REG(BX、BP 、由标号(符号地单元有效SI 及DI) 作址)的内容得到地址(EA)为目的操作双字地址指针 作为源操数 由间接地址(BX)作数 的内容得到双字地址指针 由基址地址(BX+20)的内容得到双字地址指针
由变址地址不能将存储器操作数(DI+40)的内容(存储单元有效地址
得到双字地址指EA )与寄存器操作数在针
源与目的操作数的位置
由基(址)变址上互换(倒置) 地址
(BP+SI+500)的
内容得到双字地址指针
5
针传送指令 低8位标志取入AH 指令 标存AH 到低志8位标志
传指令 送
指
标志进栈令
指令 标志出栈指令
算术加运法
算类加法指令 类指指令 令
只有DI ,而BX 、SI 及BP 可通过段超越前缀(ES:)由默认的DS 段或SS 段改为访问ES 段
将标志寄存器中低8位FL 取入寄存LAHF
器AH 中(AH
校核
将AH 内容存到低8位标志寄存器FL
影响低8位
SAHF
中(FL
将16位标志寄存器F(FH、FL )的内无
PUSHF 容进栈,SP
将堆栈栈顶的2个字节弹出送16位影响16位标POPF
标志寄存器F(FH、FL ),SP
CF 、PF 、AF 、
ZF 、SF 及OF
1.ADD DI,SI
将源操作数与目的操作数的内容相2.ADD CX,[5000] ADD
加,其结果(两者之和)存放于目的操作数,或者说将源操作数的内3.ADD WORD PTR 容加到目的操作数中
[BP+DI+30],DX 4.ADD WORD PTR [SI+100],2040
微机原理指令整理
低8位寄存器AH
FL(SF、ZF 、AF 、PF 、CF) 寄存器AH 低8位
FL(SF、ZF 、AF 、PF 、CF) 16位标志堆栈
寄存器F (FL 、FH ) 堆栈栈顶16位标志寄
的2个字节 存器F (FL 、
FH )
寄存器SI 的内容源与目的操作数不能同加到DI 中 时为存储器操作数 5000和5001单寄存器、存寄存器或存元内容加到CX 中 储器或立储器;
寄存器DX 的内容即数
不能是立即加到(BP+DI+30)数 字单元中 立即数2040加到
(SI+100)字单元中
6
带进位的加法指令
增量(加1)指令
减法
类减法指令 指令
5.ADD BH,86H 6.ADD AX,FED0H
功能与上基本相同,唯一不同之处CF 、PF 、AF 、ADC
是,在源操作数与目的操作数的内ZF 、SF 及OF 与ADD 相同 容相加时,还要加上进位位CF 的值
PF 、AF 、ZF 、1.INC AL 将目的操作数的内容(8位或16位)SF 及OF , 2.INC DI
INC
加1,源操作数1隐含在操作码中。不影响CF 3.INC BYTE PTR [2000] 目的操作数为寄存器或存储器,但不能是段寄存器或立即数 4.INC WORD PTR
[BP+SI+50]
CF 、PF 、AF 、
ZF 、SF 及OF 。 1.SUB CH,DL CF=1,表示借将目的操作数的内容与源操作数的位;
OF=1,溢出 2.SUB BL,[DI] SUB
内容相减,其结果(两者之差)存放于目的操作数,或者说从目的操
作数的内容中减去源操作数的内容
3.SUB [BP+4},cl
4.SUB WORD PTR [BX+DI+50],300
微机原理指令整理
立即数86H 加到BH 中
立即数FED0H 加到累加器AX 中
与ADD 相同 与ADD 相同
与ADD 相同
AL 中的内容加1 源操作数为寄存器或
DI 中的内容加1 为1
存储器; 2000存储单元内
不能是段寄容加1
存器或立即(BP+SI+50)存储数 器字单元内容加
1
CH 中的内容减去源与目的操作数不能同DL 中的内容,结时为存储器操作数 果在CH 中
在BL 中减去(DI)寄存器、存寄存器或存单元的内容 储器或立储器;
在SS 段的(BP+4)即数
不能是立即单元中减去CL 的数 内容
在(BX+DI+50)字
单元中减去立即数300
7
带借位的减法指令
减量(减
1)指令
求补指令 比较指令
5.SUB BX,3050H 在BX 中减去立即数3050H 6.SUB AL,56
在AL 中减去立即数56 SBB
在SUB 的基础上再减去CF 的值。适与SUB 相同
合于多字节或多字的减法
与SUB 相同
与SUB 相同
与SUB 相同 与SUB 相同
与INC 相同 1.DEC CL
CL 中的内容减1 源操作数为寄存器或
将目的操作数的内容(8位或16位)2.DEC AX
AX 中的内容减1 为1
存储器; 减1,源操作数1隐含在操作码中。3.DEC BYTE PTR [BX] (BX)存储单元内
不能是段寄DEC
目的操作数为寄存器或存储器,但容减1
存器或立即不能是段寄存器或立即数
4.DEC WORD PTR (BX+DI+20)存储数 [BX+DI+20]
器字单元内容减
1
CF 、PF 、AF 、
AL 中的内容求补源操作数为寄存器或ZF 、SF 及OF 。 1.NEG AL
码 为0 存储器;
与SUB 相同
2.NEG BX
BX 中的内容求补
不能是段寄用0去减目的操作数的内容(8位或
码
存器或立即NEG
16位),其实质即为求取目的操作(BX)存储单元内数 数内容的(2的)补码
3.NEG BYTE PTR [BX]
容求补码
(BX+SI+5)存储
4.NEG WORD PTR [BX+SI+5] 器字单元内容求
补码
将目的操作数的内容减去源操作数CF 、PF 、AF 、
SI 与BP 内容比源与目的操作数不能同
CMP
的内容,但其结果(两者之差)不ZF 、SF 及OF 。 1.CMP SI,BP
较 时为存储器操作数 回送于目的操作数
ZF=1,两数相2.CMP CH,[3000] CH 与(3000)存储寄存器、存寄存器或存
微机原理指令整理
8
乘无符号数
法乘法指令 类指令
带符号数乘法指令
等;ZF=0,两数不等
CF=1,有借
3.CMP WORD PTR
位;CF=0,无[BX+DI+100],DX
借位(无符
号) SF⊕4.CMP BYTE PTR OF=1,被减数[BX+SI],40H 大于减数; SF ⊕OF=0,被5.CMP DI,0550H 减数小于减
数 6.CMP AL,80 不影响PF 、
AF 、ZF 、SF 1.MUL DL
只影响CF 、OF 2.MUL CX
MUL
3.MUL BYTE PTR [SI+2] 4.MUL WORD PTR [DI]
又称整型数乘法,即被乘数与乘数
不影响PF 、
都是有符号的整数
AF 、ZF 、SF 1.IMUL BL
只影响CF 、
微机原理指令整理
单元内容比较 储器或立储器;
(BX+DI+100)字即数
不能是立即单元与DX 内容比数 较
(BX+SI)字节单
元与立即数40H 比较
DI 内容与立即数0550H 比较 累加器AL 内容与立即数80比较
AL 与DL 内容相寄存器或累加器AL (8乘,乘积在AX 中 存储器; 位)或AX (16AX 与CX 内容相不能是立位)、DX 乘,乘积在DX 和即数(8位
AX 中
或16位) AL 与(SI+2)字节
单元内容相乘,
结果在AX 中 AX 与(DI)字单元内容相乘,结果在DX 和AX 中
AL 中的带符号数寄存器或累加器AL (8与BL 中的带符号存储器; 位)或AX (16数相乘,乘积在不能是立位)、DX
9
IMUL
除法
类
无符号数指除法指令 令
DIV
OF 2.IMUL DX
3.IMUL BYTE PTR [BX]
4.IMUL WORD PTR [BX+SI+5]
不影响CF 、PF 、AF 、ZF 、1.DIV BL SF 及OF
2.DIV BX
3.DIV BYTE PTR [3040]
4.DIV WORD PTR [DI]
微机原理指令整理
AX 中
即数(8位
AX 中的带符号数或16位)
与DX 中的带符号数相乘,乘积在DX 和AX 中
AL 中的带符号数与(BX)字节单元
中的带符号数相乘,乘积在AX 中
AX 中的带符号数与(BX+SI+5)字单元中的带符号数相乘,乘积在DX 和AX 中
AX 内容除以BL 寄存器或累加器AX 内容,商在AL ,存储器; (16位)或余数在AH 不能是立DX 、AX (前DX 与AX 内容除即数(8位者高16位,以BX 内容,商在或16位) 后者低16
AX ,余数在DX
位,共32AX 内容除以
位,DX 看做(3040)字节单元AX 的扩展) 内容,商在AL ,
余数在AH DX 与AX 内容除
10
有符号数除法指令
符号
扩
字节扩展展成字指令 类指
令
字扩展成双字指令
以(DI)字单元内容,商在AX ,余数在DX
不影响CF 、AX 与CL 符号数寄存器或累加器AX PF 、AF 、ZF 、1.IDIV CL 相除,商在AL ,存储器; (16位)或SF 及OF
余数在AH 不能是立DX 、AX (前DX 、AX 与BX 符号即数(8位者高16位,
2.IDIV BX
数相除,商在AX ,
或16位) 后者低16余数在DX
位,共32
AX 与(SI)字节单
位,DX 看做3.IDIV BYTE PTR [SI]
元符号数相除,AX 的扩展)商在AL ,余数在
AH
DX 、AX 与(5500H)4.IDIV WORD PTR [5500H]
字单元符号数相
除,商在AX ,余数在DX
为单字节指令。执行CBW 时,将AL 无
中的最高位(符号位)扩展到AH 中,CBW 亦即AH 中每一位的值与AL 中的符号位相同。当AL
CBW 后,AH=00H;当AL>=80H,为负数,执行CBW 后,AH=FFH=-1(补码) CWD
执行CWD ,将AX 中的最高位(符号无
位)扩展到DX 中,亦即DX 中每一
微机原理指令整理
11
IDIV
加法加的法ASCII 的调整十
指令
进加法制的十十调进制进整 调整
制
指令 调整
类减
减法
指法
的
令 的
ASCII
十
调整进指令 制
调减法整 的十
进制调整
位的值与AX 中的符号位相同。当AX=8000H,为负数,执行CWD 后,DX=FFFFH=-1(补码)
针对两个非组合BCD 码相加在AL 中
只影响AF 、
AAA 的结果,将其调整为BCD 码。被调
CF ,对PF 、
整的操作数隐含在AL 中,调整后的
SF 、ZF 及OF
正确结果在AH 和AL 即AX 中
无影响
针对两个组合BCD 码相加在AL 中的
影响AF 、CF 、
DAA 结果,将其调整为BCD 码。被调整
PF 、SF 和ZF ,
的操作数隐含在AL 中,调整后的正对OF 无影响
确结果仍在AL 中
两个非组合BCD 码相减在AL 中的结只影响AF 、果,若低4位大于9或AF=1(此处CF ,对PF 、表示向高4位借位),就从AL 中减SF 、ZF 及OF AAS 去6,从AH 中减去1,CF=1(此处表无影响
示AL 从AH 借位);AL 减6后再和
OFH 相“与”,调整的结果在AL 中,其高4位为0,低4位为0-9之间的一个数,即为正确的非组合BCD 码
两个组合BCD 码相减在AL 中的结影响AF 、CF 、DAS 果,若低4位大于9或AF=1,则低PF 、SF 和ZF ,
4位减6(06H ),AF=1;若高4位对OF 无影响
大于9亦即(AL&F0H)>90H或CF=1,
微机原理指令整理12
指令 乘法
的
乘法十
的进
ASCII 制
调整调指令 整 除法
的
除法十
的进
ASCII 制
调整调指令 整
逻辑
运
取反(逻算
辑非)指指令
令
逻
则高4位减6,亦即AL-60H,CF=1
影响PF 、SF 及ZF ,不影将被乘数和乘数均转换为非组合响AF 、CF 及AAM
BCD 码,其乘积也要求是非组合BCD OF
码放在AX 中
影响PF 、SF
将被除数和除数均转换为非组合及ZF ,不影BCD 码,其商也要求是非组合BCD 码响AF 、CF 及AAD
放在AL 中,余数也要求是非组合BCD OF
码放在AH 中。但在做除法之前,先
对AX 中的被除数的非组合BCD 码进行ASCII 调整,其指令为AAD
使CF=0、
BL 内容取反,结操作数只有一个,可以OF=0; 1.NOT BL
果在BL 中 是寄存器或存储器操作影响PF 、ZF
AX 内容取反,结数,但不能是立即数 NOT 执行该指令时,对操作数取反
及SF ; 2.NOT AX
果在AX 中
对AF 不确定
(2000H)单元内
3.NOT BYTE PTR [2000H] 容取反,结果在
2000H 中 4.NOT WORD PTR [SI+2] (SI+2)字单元内
微机原理指令整理
13
辑运算类指令
“与”(逻
辑乘)指令
“或”(逻辑和)指令
容取反,结果
与NOT 相同
DI 和CX 内容相寄存器、存寄存器、存
1.AND CX,DI “与”,结果在储器或立储器或单独
CX 中 即数 列出的累加
(2000)字节单元
器(也可含2.AND DH,[2000]
和DH 内容相
在寄存器“与”,存入
中), 但(DI+4)字单元
不能为立即DX 和(DI+4)字单
数(因为不能存放结将源操作数和目的操作数相“与”,3.AND WORD PTR [DI+4],DX 元内容相“与”,
存入(DI+4)字单
果) AND
结果存入目的操作数。相“与”时,两数对应位均为1,则该结果为1,元
其他情况下均为0
50和(BX+10)字
4.AND BYTE PTR 节单元内容相[BX+10],50
“与”,存入(BX+10)字节单元
5.AND BL,01100110B
66H 和BL 内容相“与”,存入AX 3344H 和AX 内容6.AND AX,3344H
相“与”,存入AX
将源操作数和目的操作数相“或”,与AND 相同 与AND 相同 与AND 相同
OR
结果存入目的操作数。用1去相“或”格式与AND 相同
时,该位结果为1,起到置位的作用;
微机原理指令整理
14
“异或”
指令
测试指令 移
位逻辑左移指指令 令
而用0去相“或”时,则保留原来位的结果
将源操作数与目的操作数取“异与AND 相同 与AND 相同 与AND 相同
或”,结果存入目的操作数。用1XOR 去“异或”时,使对应位取反;而
用0去“异或”时,则保留原来位格式与AND 相同
的结果(对应位相同,结果为0;对应位不同,结果为1)
将源操作数与目的操作数相“与”,与AND 相同 与AND 相同 与AND 相同 与AND 相同
但结果不送回到目的操作数。依据TEST 对ZF (最低位是否为0,是,为1,否则为0)、SF (最高位是否为1,
是,为1,否则为0)的判断,来决定程序转移是否
影响CF 、PF 、1.SHL AH,1 AH 内容左移1位 寄存器或存ZF 、SF 及OF ; 2.SHL CX,1 CX 内容左移1位 储器, 对AF 不确定 3.MOV CL,4
其内容可以对无符号数而言,左移1位相当于4.SHL DL,CL DL 内容左移4位 是8位或16乘以2,左移若干位相当于乘以2的5.SHL AX,CL
AX 内容左移4位
位, 、 SHL
但不能为立幂次。但当CF 首次出现1(表示已6.SHL BYTE PTR [DI+2],1
(DI+2)字节单元
到扩展位)之后,便不遵循此规则
内容左移1位 即数
7.SHL WORD PTR (BX+100)字单元[BX+100],1 内容左移1位 8.MOV CL,3
9.SHL BYTE PTR [1000] (1000)字节单元
微机原理指令整理
15
指类令
指令名称 指令缩写
指令功能 影响标志 格式 格式含义 源操作数 目的操作数
别 类型
通传用
送传基本传输指输指令 令 指令
将AX 送2000和至少有一个是寄存器1.MOV WORD PTR [2000],AX
2001单元(低位(除立即数送存储器
在低地址,高位外); 在高地址,下同) 不能在两个存储单元之
将ES 段
间直接传送数据; 2.MOV AX,ES:[BX+SI+50] (BX+SI+50)字不能在两个段寄存器之
单元内容送AX 间直接传送数据;
3.MOV SS,BX 将BX 内容送SS 不能将立即数直接送至
将源操作数中的数据传送至目的操将SS 段(DI+200)段寄存器;SS 和SP 赋
4.MOV ES,SS:[DI+200] 字单元内容送ES
值必须紧邻 MOV
作数,以实现寄存器与寄存器、寄指令指针IP 既不作目
存器与存储器之间数据传送以及立无
即数送往寄存器或存储器
5.MOV BX,CX 将CS 内容送BX 的操作数也不做源操作
数 6.MOV WORD PTR 将SS 内容送 CS 不能作目[BX+DI],SS (BX+DI)字单元 的操作数; 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
立即数3330送
微机原理指令整理
1
CX
立即数0送(DI)
11.MOV BYTE PTR [DI],0
堆栈操作
指令
1.PUSH AX 2.PUSH SI
将来自通用寄存器、段寄存器或存3.PUSH ES
PUSH
储单元的一个字(16位)内容压入无
4.PUSH CS
堆栈(SP 指向的栈顶个单元)
5.PUSH WORD PTR [BX]
6.PUSH WORD PTR BETA [BX] 1.POP BX
2.POP DX 3.POP ES
将栈顶个单元的内容退出(弹出)POP
到通用寄存器、段寄存器或存储单无
4.POP SS
元
5.POP [BX+50]
6.POP [BP+DI]
微机原理指令整理
字节单元 AX 内容进栈 通用寄存CS 不能作目SI 内容进栈 器、段寄存的操作数; ES 内容进栈 器、存储单CS 内容进栈 元的一个(BX) 和(BX+1)字
单元内容进栈
(BX+BETA)字单不能使用8位源或目的元内容进栈 操作数 栈顶2个字节出不能使用8位源或目的栈到BX 操作数 栈顶2个字节出 通用寄存栈到DX 器、段寄存栈顶2个字节出器、存储单栈到ES 元的一个字栈顶2个字节出节;
栈到SS CS 不能作目栈顶2个字节出的操作数
栈到(BX+50)字单元
栈顶2个字节出栈到(BP+DI)字单元
2
交换指令 专换码指令 用累加器传送
指输入指令 令
1.XCHG AL,BL AL 与BL 之间字段寄存器、CS 、IP 、立节交换 即数不能作为源或目的
2.XCHG CX,AX
CX 与AX 之间字操作数;
两个实现数据宽度相同的源操作数与目交换
存储单元之间、段寄存的操作数之间的数据交换,亦即同3.XCHG DH,CL
DH 与CL 之间字器与段寄存器之间不能
XCHG
为8位或16位的累加器与寄存器、无
节交换 进行交换 寄存器与寄存器以及寄存器与存储4.XCHG BX,CX BX 与CX 之间字
单元之间的数据交换
交换
5.XCHG BL,[1000]
BL 与1000单元内容字节交换
6.XCHG WORD PTR [DI],DX
(DI) 字单元内
容与DX 字交换
专门使用累加器AL 并将其中的值设置SEGCODE 表有操作码,无操作数。
(比如按二进制、十进制或十六进XLAT 制等编码)变换成内存某一表格区无
MOV BX,TABLE_SEGCODE
首址 操作数AL 隐藏在操作
内对应的另一种编码(比如发光二XLAT
对表进行检索 码之中
极管LED 的字形码或其他通讯码等)
8位口地址60H 不能使用除累加器外的1.IN AL,60H
中的1个字节到其他寄存器进行操作; 在I/O口独立编址时,使用专门的AL 不能使用大于255的地IN 输入指令IN ,这种输入操作又是指60H 内容到AL ,址作为8位口地址; 定累加器AL 或AX 来担当,因此,无 2.IN AX,60H 61H 内容到AH 不能使用除DX 外的其
IN 属于专用累加器传送指令
3.IN AL,DX 16位口地址(DX )
他寄存器作为16位间单元内容到AL 接口地址,且在间接口
4.IN AX,DX
(DX)及(DX+1)口寻址时,
须对DX 预先置微机原理指令整理
3
输出指令 地址
传有效地址送传送指令 指令
1.OUT 60H,AL
在I/O口独立编址时,使用专门的2.OUT 60H,AX
OUT
输出指令OUT ,这种输出操作又是指定累加器AL 或AX 来担当,因此,无
3.OUT DX,AL OUT 属于专用累加器传送指令
4.OUT DX,AX 1.LEA SP,[1234H]
2.LEA BX,TABLE
将存储单元有效(偏移)地址EA (源LEA
操作数)装入一个16位通用寄存器3.LEA SI,[BX]
(目的操作数),以使该寄存器作无
为地址指针
4.LEA DI,[BX+100]
5.LEA DX,[SI+200]
6.LEA AX,[BP+DI+500] 微机原理指令整理
内容到AX
地址值
AL 中的字节输出不能使用除累加器外的到8位口60H 其他寄存器进行操作; AX 中的字输出到不能使用大于255的地
8位口60H 及61H
址作为8位口地址; AL 中的字节到16不能使用除DX 外的其位口地址(DX) 他寄存器作为16位间
AX 中的字到(DX) 接口地址,且在间接口
及(DX+1)口 寻址时,须对DX 预先置地址值
直接地址1234H 存储器操段寄存器、装入SP 作数(存储IP 不能作目
标号或变量
单元有效的操作数;TABLE 代表的地地址EA )
作16位通用寄址装入BX
源操作数 存器(BX、BP 、SI 及
间接地址(BX)装DI) 作目的入SI 操作数 基址地址不能将存储器操作数与(BX+100)装入寄存器操作数在源与目DI 的操作数的位置上互换
变址地址(倒置) (SI+200)装入
DX
基(址)变址地
4
使用DS 段的地址指针传送指令
使用ES 段的地址指
1.LDS BX,[3250H]
2.LDS SI,TMP
3.LDS BP,[BX]
将双字地址指针(包括偏移地址和段地址)分别传送到指令中给出的LDS 16位寄存器及数据段寄存器DS 中,无
4.LDS DI,[BX+20]
双字地址指针从源操作数的双字内容即(EA )和(EA+2)字单元得到
5.LDS BX,[DI+40]
6.LDS BX,[BP+SI+500] LES
功能与上基本相同,差别在于能提供偏移地址直接访问和使用ES 段的
无
微机原理指令整理
址(BP+DI+500)装入AX
由直接地址得到存储器操16位寄存器双字地址指针 作数(存储REG(BX、BP 、由标号(符号地单元有效SI 及DI) 作址)的内容得到地址(EA)为目的操作双字地址指针 作为源操数 由间接地址(BX)作数 的内容得到双字地址指针 由基址地址(BX+20)的内容得到双字地址指针
由变址地址不能将存储器操作数(DI+40)的内容(存储单元有效地址
得到双字地址指EA )与寄存器操作数在针
源与目的操作数的位置
由基(址)变址上互换(倒置) 地址
(BP+SI+500)的
内容得到双字地址指针
5
针传送指令 低8位标志取入AH 指令 标存AH 到低志8位标志
传指令 送
指
标志进栈令
指令 标志出栈指令
算术加运法
算类加法指令 类指指令 令
只有DI ,而BX 、SI 及BP 可通过段超越前缀(ES:)由默认的DS 段或SS 段改为访问ES 段
将标志寄存器中低8位FL 取入寄存LAHF
器AH 中(AH
校核
将AH 内容存到低8位标志寄存器FL
影响低8位
SAHF
中(FL
将16位标志寄存器F(FH、FL )的内无
PUSHF 容进栈,SP
将堆栈栈顶的2个字节弹出送16位影响16位标POPF
标志寄存器F(FH、FL ),SP
CF 、PF 、AF 、
ZF 、SF 及OF
1.ADD DI,SI
将源操作数与目的操作数的内容相2.ADD CX,[5000] ADD
加,其结果(两者之和)存放于目的操作数,或者说将源操作数的内3.ADD WORD PTR 容加到目的操作数中
[BP+DI+30],DX 4.ADD WORD PTR [SI+100],2040
微机原理指令整理
低8位寄存器AH
FL(SF、ZF 、AF 、PF 、CF) 寄存器AH 低8位
FL(SF、ZF 、AF 、PF 、CF) 16位标志堆栈
寄存器F (FL 、FH ) 堆栈栈顶16位标志寄
的2个字节 存器F (FL 、
FH )
寄存器SI 的内容源与目的操作数不能同加到DI 中 时为存储器操作数 5000和5001单寄存器、存寄存器或存元内容加到CX 中 储器或立储器;
寄存器DX 的内容即数
不能是立即加到(BP+DI+30)数 字单元中 立即数2040加到
(SI+100)字单元中
6
带进位的加法指令
增量(加1)指令
减法
类减法指令 指令
5.ADD BH,86H 6.ADD AX,FED0H
功能与上基本相同,唯一不同之处CF 、PF 、AF 、ADC
是,在源操作数与目的操作数的内ZF 、SF 及OF 与ADD 相同 容相加时,还要加上进位位CF 的值
PF 、AF 、ZF 、1.INC AL 将目的操作数的内容(8位或16位)SF 及OF , 2.INC DI
INC
加1,源操作数1隐含在操作码中。不影响CF 3.INC BYTE PTR [2000] 目的操作数为寄存器或存储器,但不能是段寄存器或立即数 4.INC WORD PTR
[BP+SI+50]
CF 、PF 、AF 、
ZF 、SF 及OF 。 1.SUB CH,DL CF=1,表示借将目的操作数的内容与源操作数的位;
OF=1,溢出 2.SUB BL,[DI] SUB
内容相减,其结果(两者之差)存放于目的操作数,或者说从目的操
作数的内容中减去源操作数的内容
3.SUB [BP+4},cl
4.SUB WORD PTR [BX+DI+50],300
微机原理指令整理
立即数86H 加到BH 中
立即数FED0H 加到累加器AX 中
与ADD 相同 与ADD 相同
与ADD 相同
AL 中的内容加1 源操作数为寄存器或
DI 中的内容加1 为1
存储器; 2000存储单元内
不能是段寄容加1
存器或立即(BP+SI+50)存储数 器字单元内容加
1
CH 中的内容减去源与目的操作数不能同DL 中的内容,结时为存储器操作数 果在CH 中
在BL 中减去(DI)寄存器、存寄存器或存单元的内容 储器或立储器;
在SS 段的(BP+4)即数
不能是立即单元中减去CL 的数 内容
在(BX+DI+50)字
单元中减去立即数300
7
带借位的减法指令
减量(减
1)指令
求补指令 比较指令
5.SUB BX,3050H 在BX 中减去立即数3050H 6.SUB AL,56
在AL 中减去立即数56 SBB
在SUB 的基础上再减去CF 的值。适与SUB 相同
合于多字节或多字的减法
与SUB 相同
与SUB 相同
与SUB 相同 与SUB 相同
与INC 相同 1.DEC CL
CL 中的内容减1 源操作数为寄存器或
将目的操作数的内容(8位或16位)2.DEC AX
AX 中的内容减1 为1
存储器; 减1,源操作数1隐含在操作码中。3.DEC BYTE PTR [BX] (BX)存储单元内
不能是段寄DEC
目的操作数为寄存器或存储器,但容减1
存器或立即不能是段寄存器或立即数
4.DEC WORD PTR (BX+DI+20)存储数 [BX+DI+20]
器字单元内容减
1
CF 、PF 、AF 、
AL 中的内容求补源操作数为寄存器或ZF 、SF 及OF 。 1.NEG AL
码 为0 存储器;
与SUB 相同
2.NEG BX
BX 中的内容求补
不能是段寄用0去减目的操作数的内容(8位或
码
存器或立即NEG
16位),其实质即为求取目的操作(BX)存储单元内数 数内容的(2的)补码
3.NEG BYTE PTR [BX]
容求补码
(BX+SI+5)存储
4.NEG WORD PTR [BX+SI+5] 器字单元内容求
补码
将目的操作数的内容减去源操作数CF 、PF 、AF 、
SI 与BP 内容比源与目的操作数不能同
CMP
的内容,但其结果(两者之差)不ZF 、SF 及OF 。 1.CMP SI,BP
较 时为存储器操作数 回送于目的操作数
ZF=1,两数相2.CMP CH,[3000] CH 与(3000)存储寄存器、存寄存器或存
微机原理指令整理
8
乘无符号数
法乘法指令 类指令
带符号数乘法指令
等;ZF=0,两数不等
CF=1,有借
3.CMP WORD PTR
位;CF=0,无[BX+DI+100],DX
借位(无符
号) SF⊕4.CMP BYTE PTR OF=1,被减数[BX+SI],40H 大于减数; SF ⊕OF=0,被5.CMP DI,0550H 减数小于减
数 6.CMP AL,80 不影响PF 、
AF 、ZF 、SF 1.MUL DL
只影响CF 、OF 2.MUL CX
MUL
3.MUL BYTE PTR [SI+2] 4.MUL WORD PTR [DI]
又称整型数乘法,即被乘数与乘数
不影响PF 、
都是有符号的整数
AF 、ZF 、SF 1.IMUL BL
只影响CF 、
微机原理指令整理
单元内容比较 储器或立储器;
(BX+DI+100)字即数
不能是立即单元与DX 内容比数 较
(BX+SI)字节单
元与立即数40H 比较
DI 内容与立即数0550H 比较 累加器AL 内容与立即数80比较
AL 与DL 内容相寄存器或累加器AL (8乘,乘积在AX 中 存储器; 位)或AX (16AX 与CX 内容相不能是立位)、DX 乘,乘积在DX 和即数(8位
AX 中
或16位) AL 与(SI+2)字节
单元内容相乘,
结果在AX 中 AX 与(DI)字单元内容相乘,结果在DX 和AX 中
AL 中的带符号数寄存器或累加器AL (8与BL 中的带符号存储器; 位)或AX (16数相乘,乘积在不能是立位)、DX
9
IMUL
除法
类
无符号数指除法指令 令
DIV
OF 2.IMUL DX
3.IMUL BYTE PTR [BX]
4.IMUL WORD PTR [BX+SI+5]
不影响CF 、PF 、AF 、ZF 、1.DIV BL SF 及OF
2.DIV BX
3.DIV BYTE PTR [3040]
4.DIV WORD PTR [DI]
微机原理指令整理
AX 中
即数(8位
AX 中的带符号数或16位)
与DX 中的带符号数相乘,乘积在DX 和AX 中
AL 中的带符号数与(BX)字节单元
中的带符号数相乘,乘积在AX 中
AX 中的带符号数与(BX+SI+5)字单元中的带符号数相乘,乘积在DX 和AX 中
AX 内容除以BL 寄存器或累加器AX 内容,商在AL ,存储器; (16位)或余数在AH 不能是立DX 、AX (前DX 与AX 内容除即数(8位者高16位,以BX 内容,商在或16位) 后者低16
AX ,余数在DX
位,共32AX 内容除以
位,DX 看做(3040)字节单元AX 的扩展) 内容,商在AL ,
余数在AH DX 与AX 内容除
10
有符号数除法指令
符号
扩
字节扩展展成字指令 类指
令
字扩展成双字指令
以(DI)字单元内容,商在AX ,余数在DX
不影响CF 、AX 与CL 符号数寄存器或累加器AX PF 、AF 、ZF 、1.IDIV CL 相除,商在AL ,存储器; (16位)或SF 及OF
余数在AH 不能是立DX 、AX (前DX 、AX 与BX 符号即数(8位者高16位,
2.IDIV BX
数相除,商在AX ,
或16位) 后者低16余数在DX
位,共32
AX 与(SI)字节单
位,DX 看做3.IDIV BYTE PTR [SI]
元符号数相除,AX 的扩展)商在AL ,余数在
AH
DX 、AX 与(5500H)4.IDIV WORD PTR [5500H]
字单元符号数相
除,商在AX ,余数在DX
为单字节指令。执行CBW 时,将AL 无
中的最高位(符号位)扩展到AH 中,CBW 亦即AH 中每一位的值与AL 中的符号位相同。当AL
CBW 后,AH=00H;当AL>=80H,为负数,执行CBW 后,AH=FFH=-1(补码) CWD
执行CWD ,将AX 中的最高位(符号无
位)扩展到DX 中,亦即DX 中每一
微机原理指令整理
11
IDIV
加法加的法ASCII 的调整十
指令
进加法制的十十调进制进整 调整
制
指令 调整
类减
减法
指法
的
令 的
ASCII
十
调整进指令 制
调减法整 的十
进制调整
位的值与AX 中的符号位相同。当AX=8000H,为负数,执行CWD 后,DX=FFFFH=-1(补码)
针对两个非组合BCD 码相加在AL 中
只影响AF 、
AAA 的结果,将其调整为BCD 码。被调
CF ,对PF 、
整的操作数隐含在AL 中,调整后的
SF 、ZF 及OF
正确结果在AH 和AL 即AX 中
无影响
针对两个组合BCD 码相加在AL 中的
影响AF 、CF 、
DAA 结果,将其调整为BCD 码。被调整
PF 、SF 和ZF ,
的操作数隐含在AL 中,调整后的正对OF 无影响
确结果仍在AL 中
两个非组合BCD 码相减在AL 中的结只影响AF 、果,若低4位大于9或AF=1(此处CF ,对PF 、表示向高4位借位),就从AL 中减SF 、ZF 及OF AAS 去6,从AH 中减去1,CF=1(此处表无影响
示AL 从AH 借位);AL 减6后再和
OFH 相“与”,调整的结果在AL 中,其高4位为0,低4位为0-9之间的一个数,即为正确的非组合BCD 码
两个组合BCD 码相减在AL 中的结影响AF 、CF 、DAS 果,若低4位大于9或AF=1,则低PF 、SF 和ZF ,
4位减6(06H ),AF=1;若高4位对OF 无影响
大于9亦即(AL&F0H)>90H或CF=1,
微机原理指令整理12
指令 乘法
的
乘法十
的进
ASCII 制
调整调指令 整 除法
的
除法十
的进
ASCII 制
调整调指令 整
逻辑
运
取反(逻算
辑非)指指令
令
逻
则高4位减6,亦即AL-60H,CF=1
影响PF 、SF 及ZF ,不影将被乘数和乘数均转换为非组合响AF 、CF 及AAM
BCD 码,其乘积也要求是非组合BCD OF
码放在AX 中
影响PF 、SF
将被除数和除数均转换为非组合及ZF ,不影BCD 码,其商也要求是非组合BCD 码响AF 、CF 及AAD
放在AL 中,余数也要求是非组合BCD OF
码放在AH 中。但在做除法之前,先
对AX 中的被除数的非组合BCD 码进行ASCII 调整,其指令为AAD
使CF=0、
BL 内容取反,结操作数只有一个,可以OF=0; 1.NOT BL
果在BL 中 是寄存器或存储器操作影响PF 、ZF
AX 内容取反,结数,但不能是立即数 NOT 执行该指令时,对操作数取反
及SF ; 2.NOT AX
果在AX 中
对AF 不确定
(2000H)单元内
3.NOT BYTE PTR [2000H] 容取反,结果在
2000H 中 4.NOT WORD PTR [SI+2] (SI+2)字单元内
微机原理指令整理
13
辑运算类指令
“与”(逻
辑乘)指令
“或”(逻辑和)指令
容取反,结果
与NOT 相同
DI 和CX 内容相寄存器、存寄存器、存
1.AND CX,DI “与”,结果在储器或立储器或单独
CX 中 即数 列出的累加
(2000)字节单元
器(也可含2.AND DH,[2000]
和DH 内容相
在寄存器“与”,存入
中), 但(DI+4)字单元
不能为立即DX 和(DI+4)字单
数(因为不能存放结将源操作数和目的操作数相“与”,3.AND WORD PTR [DI+4],DX 元内容相“与”,
存入(DI+4)字单
果) AND
结果存入目的操作数。相“与”时,两数对应位均为1,则该结果为1,元
其他情况下均为0
50和(BX+10)字
4.AND BYTE PTR 节单元内容相[BX+10],50
“与”,存入(BX+10)字节单元
5.AND BL,01100110B
66H 和BL 内容相“与”,存入AX 3344H 和AX 内容6.AND AX,3344H
相“与”,存入AX
将源操作数和目的操作数相“或”,与AND 相同 与AND 相同 与AND 相同
OR
结果存入目的操作数。用1去相“或”格式与AND 相同
时,该位结果为1,起到置位的作用;
微机原理指令整理
14
“异或”
指令
测试指令 移
位逻辑左移指指令 令
而用0去相“或”时,则保留原来位的结果
将源操作数与目的操作数取“异与AND 相同 与AND 相同 与AND 相同
或”,结果存入目的操作数。用1XOR 去“异或”时,使对应位取反;而
用0去“异或”时,则保留原来位格式与AND 相同
的结果(对应位相同,结果为0;对应位不同,结果为1)
将源操作数与目的操作数相“与”,与AND 相同 与AND 相同 与AND 相同 与AND 相同
但结果不送回到目的操作数。依据TEST 对ZF (最低位是否为0,是,为1,否则为0)、SF (最高位是否为1,
是,为1,否则为0)的判断,来决定程序转移是否
影响CF 、PF 、1.SHL AH,1 AH 内容左移1位 寄存器或存ZF 、SF 及OF ; 2.SHL CX,1 CX 内容左移1位 储器, 对AF 不确定 3.MOV CL,4
其内容可以对无符号数而言,左移1位相当于4.SHL DL,CL DL 内容左移4位 是8位或16乘以2,左移若干位相当于乘以2的5.SHL AX,CL
AX 内容左移4位
位, 、 SHL
但不能为立幂次。但当CF 首次出现1(表示已6.SHL BYTE PTR [DI+2],1
(DI+2)字节单元
到扩展位)之后,便不遵循此规则
内容左移1位 即数
7.SHL WORD PTR (BX+100)字单元[BX+100],1 内容左移1位 8.MOV CL,3
9.SHL BYTE PTR [1000] (1000)字节单元
微机原理指令整理
15