微机原理指令集合

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

相关文档
最新文档