微机原理指令集合
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微机原理8086 指令集合
地址总线:AB(单向输出)
数据总线:DB(双向总线)
控制总线:CB(输出输入或双向)
4个16位数据寄存器:AX累加器.BX基址寄存器.CX计数寄存器.DX数据寄存器
高八位记作:AH.BH.CH.DH低八位ALBLCLDL
指针寄存器:SP 堆栈指针寄存器BP基址指针寄存器
变址寄存器:SI 源变址寄存器(源操作数偏移地址)DI目的变址寄存器
进位标志位:CF最高位
奇偶标志位:PF
低8位1的个数为偶时为1 辅助进位标志位:AF低4位向高4为有进位时
零标志位:ZF算术逻辑运算为零时为1
符号标志位:SF运算结果最高位为1时为1
溢出标志位:OF结果超出有符号数补码表示的范围时为1
跟踪标志位:TF单步中断方式逐条检查
方向标志位:DF
中断允许标志位:IF为1时CPU可以响应可屏蔽中断(INTR)请求
立即数寻址:MOV BL,5BH
寄存器寻址:MOV DS,AX
存储器寻址:1直接寻址:MOV AX,[2000H]
2寄存器间接寻址:MOV AX,[BP]
操作数有效地址在BX,BP,SI,DI,当在BX ,SI,DI中
默认DS为基址,在BP中默认SS为基址
3寄存器相对寻址:MOV AX,COUNT[SI] 例:MOV BP:[DI+45H]
4基址加变址寻址:MOV AX, [SI+BP]
5相对基址加变址寻址指令MOV AX, [SI+BP+1234H]
指令
数据传送指令MOV dst,src
交换指令:XCHG dst,src
查表指令:XLAT[表首址]DS:(BX+AL)给AL
堆栈传送指令:PUSH src
取偏移地址指令;LEA dst,src
指针送寄存器和DS:LDS dst,src
指针送寄存器和ES:LES dst,src
标志传送指令:LAHF SAHF PUSHF POPF
输入、输出指令:IN.OUT
加法指令:ADD dst,src
带进位加法指令:ADC dst,src (CF也要加)
加1指令:INC dst
减法指令:SUB dst,src
带借位减法指令:SBB dst,src(也要减CF)
减1指令:DEC src111 求补指令:NEG src (0减src)
比较指令:CMP dst,src(相减但不送回目的操作数,结果都不变)
乘法指令:MUL src 字节操作数:AL*src给AX 字操作数:AX*src给AX
带符号数乘法指令:IMUL src 字运算AX字节运算AL
除法指令:DIV src 字节将AX/src给AL余数该AH 字将(DX,AX)/src给AX 余数给DX 带符号数除法指令:IDIV src
CBW 将字节转换为字CWD将字转换为字节
逻辑运算:
逻辑与:AND dst,src
逻辑或:OR dst,src
非:NOT dst
异或:XOR dst,src
测试:TEST dst,src(测试判断某些位知否同时为0)
移位指令
算术左移指令SAL dst, CL;移位位数
逻辑左移指令SHL dst ,CL;移位位数
算术右移指令:SAR dst ,CL;移位位数
逻辑右移指令:SHR dst,CL ;移位位数
循环移位指令:
循环左移指令:ROL dst,CL;移位位数
循环右移指令:ROR dst,CL;移位位数
带进位循环左移:RCL dst,CL;移位位数
带进位循环右移:RCR dst,CL;移位位数
串操作指令:
串传送指令:MOVS/W
串比较指令:CMPSB/W
串搜索指令:SCASB/W
取串指令:LODS/W
存串指令:STOSB/W
重复前缀指令:REP SOPR 重复执行REP指令后紧跟着的一个串操作指令,知直到CX寄存器中的值为0 REPE/REPZ执行REPE/REPZ后紧跟的一个串操作指令,当相等、为0时重复,直到CX=0/ZF=0 REPNE/REPNZ 执行REPNE/REPNZ后紧跟的串操作指令当不为0、不相等时重复,直到CX=0/ZF=0
转移指令:
远程转移:JMP FAR PTR OPRD(IP=IP+16位移量)
近程转移:JMP NEAR PTR OPRD (IP=IP+8位移量)
段内间接转移:JMP reg16
JMP men16
(IP)←reg16或men16
段间间接转移:JMP DWORD PTR [BX+SI]
调用和返回指令:
段内直接调用:CALL dst(SP=SP-2,SP+1,IP指向SP,IP=IP+16
段内直接调用:CALL dst (同,同,EA指向IP)
段间直接调用:CALL dst(SP=SP-2,SP+1,CS指向SP,SP=SP-2,SP+1,IP指向SP, 偏移地址指向IP,段地址指向CS)
段间间接调用:CALL dst 段内返回:RET(IP=SP+1,SP,SP=SP+2)
段内带立即数返回:RET n
循环控制指令:
LOOP OPRD(CX=CX-1,若C X≠0则循环
LOOPNZ/LOOPE OPRD(CX=CX-1,若C X≠0ZF=0则循环)
LOOPZ/LOOPE OPRD