微机——微机原理指令汇总情况8086/8088
指令系统记忆表
数据寄存器分为: AH&AL=AX(accumulator):累加寄存器,常⽤于运算;
在乘除等指令中指定⽤来存放操作数,另外,所有的I/O指令都使⽤这⼀寄存器与外界设备传送数据. 
BH&BL=BX(base):基址寄存器,常⽤于地址索引;
CH&CL=CX(count):计数寄存器,常⽤于计数;常⽤于保存计算值,如在移位指令,循环(loop)
和串处理指令中⽤作隐含的计数器. 
DH&DL=DX(data):数据寄存器,常⽤于数据传递。
他们的特点是,这4个16位的寄存器可以分为⾼8位: AH, BH, CH, DH.
以及低⼋位:AL,BL,CL,DL。这2组8位寄存器可以分别寻址,并单独使⽤。
另⼀组是指针寄存器和变址寄存器,包括:
SP(Stack Pointer):堆栈指针,与SS
配合使⽤,可指向⽬前的堆栈位置;
BP(Base Pointer):基址指针寄存器,可⽤作SS的⼀个相对基址位置;
SI(Source Index):源变址寄存器可⽤来存放相对于DS段之源变址指针;
DI(Destination Index):⽬的变址寄存器,可⽤来存放相对于
ES 段之⽬的变址指针。
指令指针
IP(Instruction Pointer) 
标志寄存器
FR(Flag Register) 
OF(overflow flag) 
DF(direction flag) 
offset指令是什么意思CF(carrier flag) 
PF(parity flag) 
AF(auxiliary flag) 
ZF(zero flag) 
SF(sign flag) 
IF(interrupt flag) 
TF(trap flag) 
为了运⽤所有的内存空间,
8086
设定了四个段寄存器,专门⽤来保存段地址: 
CS(Code Segment):代码段寄存器; DS(Data Segment):数据段寄存器; SS(Stack Segment):堆栈段寄存器; ES(Extra Segment):附加段寄存器。 
第⼀部分:指令助记符:
⼀、数据传送指令
1.
通⽤数据传送指令
MOV(Move)传送
 PUSH(Push onto the stack)
 进栈
 POP(Pop from the stack)
 出栈
XCHG(Exchange)
 交换
2.
累加器专⽤传送指令
 IN(Input) 输⼊
 OUT(Output) 输出
 XLAT(Translate) 换码
 3.有效地址送寄存器指令
有效地址送寄存器
LDS(Load DS with Pointer) 
指针送寄存器和
DS 
LES(Load ES with Pointer) 
指针送寄存器和
ES 
4.标志寄存器传送指令
 LAHF(Load AH with flags) 标志送AH SAHF(store AH into flags) AH送标志寄存器 
PUSHF(push the flags) 标志进栈
POPF(pop the flags) 标志出栈
⼆、算术指令
1.加法指令
ADD(add) 加法
ADC(add with carry) 带进位加法
INC(increment) 加1 
2.减法指令
SUB(subtract) 减法
SBB(subtract with borrow) 带借位减法
DEC(Decrement) 减1 
CMP(Compare) ⽐较
3.乘法指令
MUL(Unsigned Multiple) ⽆符号数乘法
IMUL(Signed Multiple) 带符号数乘法
4.
除法指令
DIV(Unsigned divide) ⽆符号数除法
IDIV(Signed divide) 带符号数除法
CBW(Convert byte to word) 字节转换为字
CWD(Contert word to double word) 字转换为双字 
三、逻辑指令
1.逻辑运算指令
AND(and) 逻辑与
OR(or) 逻辑或
NOT(not) 逻辑⾮
XOR(exclusive or) 异或
TEST(test) 测试
SHL(shift logical left) 逻辑左移
SAL(shift arithmetic left) 算术左移
SHR(shift logical right) 逻辑右移
SAR(shift arithmetic right) 算术右移
ROL(Rotate left) 循环左移
ROR(Rotate right) 循环右移
RCL(Rotate left through carry) 带进位循环左移 
RCR(Rotate right through carry) 带进位循环右移 
四、串处理指令
1.重复前端指令
REP(Repeat) 重复串操作直到(CX)=0为上
REPE(Repeat when empty) 
若(CX)=0,则退出,否则CX=CX+1; 
REPZ(Repeat when flag ) 
若ZF=0,则退出,否则CX=CX+1; 
REPC(Repeat when carry flag) 
REPNE(Repeat when not empty) 
REPNZ(Repeat when not zero flag) 
REPNC(Repeat when not carry flag)