微机

您所在的位置:网站首页 电脑指令集合是什么意思啊怎么写 微机

微机

2024-07-17 04:23| 来源: 网络整理| 查看: 265

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) 

CF(carrier flag) 

PF(parity flag) 

AF(auxiliary flag) 

ZF(zero flag) 

SF(sign flag) 

IF(interrupt flag) 

TF(trap flag) 

段寄存器(Segment Register) 

 

为了运用所有的内存空间,

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.有效地址送寄存器指令

LEA(Load effective address) 

有效地址送寄存器

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 

NEG(Negate) 求补

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) 测试

2.移位指令

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) 

2.串操作指令

MOVSB (Move string of byte) 串传送指令

MOVSW(Move string of word) 串传送指令

CMPSB(Compare string of byte) 串比较指令

CMPSW(Compare string of word) 串比较指令

SCASB(Scan string of byte) 串搜索指令

SCASW(Scan string of word) 串搜索指令

STOSB(Store string of byte) 存串指令

STOSW(Store string of word) 存串指令

LODSB(Load string of byte) 取串指令

LODSW(Load string of word) 取串指令

CLD(Clear direction flag)

该指令使DF=0,在执行串操作指令时可使地址自动增量; 

STD(Set direction flag) 

该指令使DF=1,在执行串操作指令时可使地址自动减量. 

DAA(Decimal adjust after addition)

 组合BCD码的加法调整指令

DAS(Decimal adjust after substract)

 组合BCD码的减法调整指令

 

AAA(ASCII adjust after addition)

非压缩

BCD

码加法调成指令

AAS(ASCII adjust after substract) 

非压缩BCD码减法调成指令

AAM(ASCII adjust after multiple) 

非压缩BCD码乘法调成指令

AAD(ASCII adjust after divid) 

非压缩BCD码除法调成指令

五、控制转移指令

1.无条件转移指令

JMP(jmp) 跳转指令

2.条件转移指令

 (1)根据单个条件标志的设置情况转移

JZ(或JE)(Jump if zero,or equal) 结果为零(或相等)则转移

JS(Jump if sign) 结果为负则转移

JNS(Jump if not sign) 结果为正则转移

JO(Jump if overflow) 溢出则转移

JNO(Jump if not overflow) 不溢出则转移

JNP(或JPO)(Jump if not parity,or parity odd) 奇偶位为0则转移

JP(或JPE)(Jump if parity,or parity even) 奇偶位为1则转移

JB(或JNAE,JC)(Jump if below,or not above or equal,or carry)低于,或者不高于或等于,或进位位为1则转移

JNB(或JAE,JNC)(Jump if not below,or above or equal,or not carry)

不低于,或者高于或者等于,或进位位为0则转移

(2)比较两个无符号数,并根据比较的结果转移

JB(或JNAE,JC) 

JNB(或JAE,JNC) 

JBE(或JNA)(Jump if below or equal,or not above低于或等于,或不高于则转移

JNBE(或JA)(Jump if not below or equal,or above)不低于或等于,或者高于则转移

(3)

比较两个带符号数,

并根据比较的结果转移

JL(或LNGE)(Jump if less,or not greater or equal)小于,或者不大于或者等于则转移

JNL(或JGE)(Jump if not less,or greater or equal)不小于,或者大于或者等于则转移

JLE(或JNG)(Jump if less or equal,or not greater)小于或等于,或者不大于则转移

JNLE(或JG)(Jump if not less or equal,or greater)不小于或等于,或者大于则转移

 

(4)

测试CX的值为0则转移指令

JCXZ(Jump if CX register is zero) CX寄存器

3.

循环指令

 LOOP(loop) 

循环指令

4.子程序

CALL(call) 调用指令

RET(return) 返回指令

5.

中断

INT(interrupt)指令

IRET(interrupt return) 从中断返回指令

INTO(interrupt if overflow) 若溢出则中断

六、处理机控制指令

1.标志处理指令

CLC(Clear carry) 进位位置0指令

CF



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3