8086指令系统

8086指令系统


数据传送指令:

1. 通用数据传送:

指令名称 指令格式 功能
MOV MOV des,sou (sou)–>(des)
XCHG XCHG des,sou 交换数据
PUSH PUSH sou 入栈
POP POP sou 出栈

2. 累加器AX传送

指令名称 指令格式 功能
XLAT XLAT DS:[AL+BX] –> AL
IN IN des,sou 输入指令
OUT OUT des,sou 输出指令

3. 地址传送:

指令名称 指令格式 功能
LEA LEA des,sou sou的偏移地址–>des
LDS LDS des,sou sou32位,sou高16位–>DS,sou低16位–>des
LES LES des,sou sou32位,sou高16位–>ES,sou低16位–>des

4. 标志传送:

指令名称 指令格式 功能
LAHF LAHF 标志位低8位–>AH
SAHF SAHF AH–>标志位低8位
PUSHF PUSHF 标记寄存器人栈
POPF POPF 标记寄存器出栈

5. 数据类型传送:数据类型转换 byte到word ,word到double word

指令名称 指令格式 功能
CBW CBW (AL)>=80h AH=FFH 否则 AH=00H
CWD CWD (AX)>=8000h DX=FFFFH 否则 DX=0000H

算术运算指令:

减法指令

指令名称 指令格式 功能
NEG NEG des des取反加一(求补码操作)

乘法指令

指令名称 指令格式 功能
MUL MUL src 无符号乘法:src为byte:AL*(src)–> AX ,src为word:AX*(src)–> DX,AX
IMUL IMUL src 有符号乘法:src为byte:AL*(src)–> AX ,src为word:AX*(src)–> DX,AX

除法指令

指令名称 指令格式 功能
DIV DIV src 无符号乘法:src为byte:AL*(src)–> AX ,src为word:AX*(src)–> DX,AX
IDIV IDIV src 有符号乘法:src为byte:AX /(src)–> AL…AH ,src为word:DX,AX /(src)–> AX…DX

十进制调整指令

指令名称 指令格式 功能 注意
DAA DAA AL低四位>9或AF=1:AL自加6H修正,AF=1。AL高四位>9或CF=1:AL自加60H修正,CF=1 加法之后用,压缩码
DAS DAS AL低四位>9或AF=1:AL自加6H修正,AF=1。AL高四位>9或CF=1:AL自加60H修正,CF=1 减法之后用,压缩码
AAA AAA 只管AL低四位 加法之后用,非压缩码
AAS AAS 只管AL低四位 减法之后用,非压缩码
AAM AAM AL除10,商放在AH中,余数放AL,MUL之后,AL中乘积调整为非压缩的BCD码,结果放于AX 紧跟MUL之后用,ASCII码
AAD AAD AH寄存器的内容*10+AL的内容,结果送到AL,同时AH清零 DIV之前对被除数处理,ASCII码

位运算指令:


串操作指令:


控制转移指令:


处理器控制指令:


你可能感兴趣的:(微机原理)