导图社区 《指令系统》
微型计算机原理及应用。指令系统是计算机硬件的语言系统,也叫机器语言,指机器所具有的全部指令的集合,它是软件和硬件的主要界面,反映了计算机所拥有的基本功能。从系统结构的角度看,它是系统程序员看到的计算机的主要属性。因此指令系统表征了计算机的基本功能决定了机器所要求的能力,也决定了指令的格式和机器的结构。
社区模板帮助中心,点此进入>>
互联网9大思维
组织架构-单商户商城webAPP 思维导图。
域控上线
python思维导图
css
CSS
计算机操作系统思维导图
计算机组成原理
IMX6UL(A7)
考试学情分析系统
8086/8088指令系统
移位指令和循环移位指令
逻辑左移
SHL dst,1/CL (B,W)
(dst)逻辑左移1(或CL)位,最低位填0
逻辑右移
SHR dst,1/CL (B,W)
(dst)逻辑右移1(或CL)位,最高位填0
算术左移
SAL dst,1/CL (B,W)
(dst)算术左移1(或CL)位,最低位填0
算术右移
SAR dst,1/CL (B,W)
(dst)算术右移1(或CL)位,最高位填符号
循环左移
ROL dst,1/CL (B,W)
(dst)循环左移1(或CL)位
循环右移
ROR dst,1/CL (B,W)
(dst)循环右移1(或CL)位
带进位的循环左移
RCL dst,1/CL (B,W)
(dst)和CF循环左移1(或CL)位
带进位的循环右移
RCR dst,1/CL (B,W)
(dst)和CF循环右移1(或CL)位
串操作指令
数据串传送指令MOVS
MOVS dst,src
数据串比较指令CMPS
CMPS dst,src
数据串扫描指令SCAS
SCAS dst
数据串装入指令LODS
LODS src
字符串存储指令STOS
STOS dst
控制转移指令
无条件转移
JMP目标标号
CALL过程名
过程调用
RET n
过程返回
条件转移
对无符号数
JA/JNBE目标标号
高于 转移
CF=0且ZF=0
JAE/JNB目标标号
不低于 转移
CF=0或ZF=1
JB/JNAE目标标号
低于 转移
CF=1且ZF=0
JBE/JNA目标标号
不高于 转移
CF=1或ZF=1
对带符号数
JG/JNLE目标标号
大于 转移
ZF=0且OF⊕SF=0
JGE/JNL目标标号
不小于 转移
ZF=1或OF⊕SF=0
JL/JNGE目标标号
小于 转移
ZF=0且OF⊕SF=1
JLE/JNG目标标号
不大于 转移
ZF=1或OF⊕SF=1
单标志位条件转移
JC目标标号
进位位为1
CF=1
JNC目标标号
进位位为0
CF=0
JE/JZ目标标号
等于/结果为0
ZF=1
JNE/JNZ目标标号
不等于/结果不为0
ZF=0
JO目标标号
溢出
OF=1
JNO目标标号
不溢出
OF=0
JP/JPE目标标号
奇偶位为1(有偶数个1)
PF=1
JNP/JPO目标标号
奇偶位为0(有奇数个1)
PF=0
JS目标标号
符号标志位为1
SF=1
JNS目标标号
符号标志位为0
SF=0
循环控制
LOOP目标标号
循环
LOOPE/LOOPZ目标标号
等于/结果为0循环
LOOPNE/LOOPNZ目标标号
不等于/结果不为0循环
JCXZ目标标号
CX内容为0循环
中断
INT中断类型码
中段
INTO
溢出时中断
IRET
中断返回
处理器控制指令
标志处理
进位标志置0
CLC
CF←0,不影响其他标志位
进位标志置1
STC
CF←1,不影响其他标志位
进位标志求反
CMC
CF←CF求反,不影响其他标志位
方向标志置0
CLD
DF←0,不影响其他标志位
方向标志置1
STD
DF←1,不影响其他标志位
中断标志置0
CLI
IF←0,不影响其他标志位
中断标志置1
STI
IF←1,不影响其他标志位
外部同步
停机
HLT
CPU进入暂停状态,不影响标志位
等待
WAIT
CPU进入空转状态,不影响标志位
换码
ESC src
Src送到数据总线,不影响标志位
封锁
LOCK
(其他指令)执行期间封锁总线,不影响标志位
空操作
NOP
不进行任何操作,不影响标志位
逻辑运算指令
与
AND dst,src (B,W)
全1出1,有0出0(清0)
或
OR dst,src (B,W)
全0出0,有1出1(置1)
非
NOT dst (B,W)
位0出1,位1出0(取反)
异或
XOR dst,src (B,W)
相同为0,不同为1(指定位取反)
测试
TEST dst,src (B,W)
(dst)与(src)
算术运算指令
加法指令
加法
ADD dst,src (B,W)
(dst)←(dst)+(src)
带进位加法
ADC dst,src (B,W)
(dst)←(dst)+(src)+CF
加1
INC dst (B,W)
(dst)←(dst)+1
非压缩BCD调整
AAA (B)
对非压缩BCD相加结果调整
压缩BCD调整
DAA (B)
对压缩BCD相加结果调整
减法指令
减法
SUB dst,src (B,W)
(dst)←(dst)-(src)
带进位减法
SBB dst,src (B,W)
(dst)←(dst)-(src)-CF
减1
DEC dst (B,W)
(dst)←(dst)-1
求补
NEG DST (B,W)
(dst)←0-(dst)
比较
CMP DST,SRC (B,W)
(dst)-(src)
AAS (B)
对非压缩BCD相减结果调整
DAS (B)
对压缩BCD相减结果调整
乘法指令
无符号数相乘
MUL src
(AX)←(AL)×(src) (B)
(DX,AX)←(AL)×(src) (W)
带符号数相乘
IMUL src
AMM (B)
对非压缩BCD相乘结果调整
除法指令
无符号数除法
DIV src
(AL)←(AX)/(src),(AH)←余数 (B)
(AX)←(DX,AX)/(src),(DX)←余数 (W)
带符号数除法
IDIV src
(AX)←(DX,AX)/(src),(DX)←余数 (B)
ADD
对非压缩BCD相除预调整
字节扩展成字
CBW
将AL中的字节按符号扩展成AX中的字
字扩展成双字
CWD
将AX中的字按符号扩展成DX、AX中的双字
数据传送类指令
通用数据传送指令
基本传送指令MOV
MOV dst,src
入栈指令PUSH
PUSH src
出栈指令POP
POP dst
交换指令XCHG
XCHG dst,src
换码指令XLAT
XLAT表首址(可省略)
地址传送指令
取有效地址指令LEA
LEA dst,src
将双字地址指针送DS和一个寄存器指令LDS
LDS dst,src
将双字地址指令指针送到ES和一个寄存器的指令LES
LES dst,src
状态标志传送指令
标志寄存器低8位送AH指令LAHF
AH送标志寄存器低8位指令SAHF
标志寄存器入栈指令PUSHF
SP ←(SP)-2
标志出栈指令POPF
SP ←(SP)+2
指令格式与寻址方式
隐含寻址
立即数寻址
例:MOV AL,2CH
寄存器寻址
例:MOV AX,BX
直接寻址
例:MOV AX,[1400H]
寄存器间接寻址
例:MOV AX,[DI]
寄存器相对寻址
例:MOV AX,0100H[BP]
基址变址寻址
例:MOV AX,[BX][DI]
相对基址变址寻址
例:MOV AX,1460H[BP][SI]