数据传输类指令

数据传输类指令

一、内部数据传送指令

1、立即寻址传送指令

MOV A#data

    指令名称:立即数据传送指令

    指令代码:74H

    指令功能:立即数送累加器

    操作内容:Adata

    字节数: 2

    机器周期:1

    说明:

#data——8位立即数。

例:在执行指令MOV  A #18H后,A=18h

MOV Rn#data

    指令名称:立即数据传送指令

    指令代码:78H7FH

    指令功能:立即数送寄存器

    操作内容:Rndatan07

    字节数: 2

    机器周期:1

    说明:

    Rn——当前选择的寄存器区的寄存器R0R7

#data——8位立即数。

例:在执行指令MOV Rn#28H后,Rn=18h

MOV direct#data

    指令名称:立即数传送指令

    指令代码:75H

    指令功能:立即数送内部RAM128单元或专用寄存器

    操作内容:directdata

    字节数: 3

    机器周期:2

    说明:

    direct——8位内部数据存储器地址。可以直接访问数据RAM地址(0x000x7F)或一个SFR地址(0x800xFF)。

    #data——8位立即数。

MOV Ri#data

    指令名称:立即数传送指令

    指令代码:76H77H

    指令功能:立即数送内部RAM128单元

    操作内容:(Ri)data i01

    字节数: 2

    机器周期:1

说明:

    @Ri——通过寄存器R0R1间接寻址地数据RAM地址。

2、直接寻址传送指令

MOV Adirect

    指令名称:直接寻址数据传送指令

    指令代码:E5H

    指令功能:内部RAM126单元或专用寄存器内容送累加器

    操作内容:A(direct)

    字节数: 2

    机器周期:1

    说明:

    direct——8位内部数据存储器地址。可以直接访问数据RAM地址(0x000x7F)或一个SFR地址(0x800xFF)。

MOV directA

    指令名称:累加器数据传送指令

    指令代码:F5H

    指令功能:累加器内容送内部RAM128单元或专用寄存器

    操作内容:direct(A)

    字节数: 2

    机器周期:1

    说明:

    direct——8位内部数据存储器地址。可以直接访问数据RAM地址(0x000x7F)或一个SFR地址(0x800xFF)。

MOV Rndirect

    指令名称:直接寻址数据传送指令

    指令代码:A8HAFH

    指令功能:内部RAM128单元或专用寄存器内容送累加器

    操作内容:Rn(direct)n07

    字节数: 2

    机器周期:2

    说明:

    direct——8位内部数据存储器地址。可以直接访问数据RAM地址(0x000x7F)或一个SFR地址(0x800xFF)。

    Rn——当前选择的寄存器区的寄存器R0R7

MOV Ridirect

    指令名称:直接寻址数据传送指令

    指令代码:A6HA7H

    指令功能:内部RAM128单元或专用寄存器内容送内部RAM128单元

    操作内容:(Ri)(direct) i01

    字节数: 2

    机器周期:2

    说明:

    direct——8位内部数据存储器地址。可以直接访问数据RAM地址(0x000x7F)或一个SFR地址(0x800xFF)。

    @Ri——通过寄存器R0R1间接寻址地数据RAM地址。

MOV direct1direct2

    指令名称:直接寻址数据传送指令

    指令代码:85H

    指令功能:内部RAM123单元或专用寄存器之间的相互传送

    操作内容:direct2(direct1)

    字节数: 3

    机器周期:2

    说明:

    direct——8位内部数据存储器地址。可以直接访问数据RAM地址(0x000x7F)或一个SFR地址(0x800xFF)。

3、寄存器寻址传送指令

MOV ARn

    指令名称:寄存器数据传送指令

    指令代码:E8HEFH

    指令功能:寄存器内容送累加器

    操作内容:A(Rn) n07

    字节数: 1

    机器周期:1

    说明:

Rn——当前选择的寄存器区的寄存器R0R7

例:地址32H中的值为#05Rn=32H,在执行该命令后,累加器A= #05

MOV Rn,A

    指令名称:累加器数据传送指令

    指令代码:F8HFFH

    指令功能:累加器内容送寄存器

    操作内容:Rn(A)

    字节数: 1

    机器周期:1

    说明:

Rn——当前选择的寄存器区的寄存器R0R7

例:累加器A中的值为#05hRn=32H,在执行该命令后,地址32H = #05h

MOV directRn

    指令名称:寄存器数据传送指令

    指令代码:88H8FH

    指令功能:寄存器内容送内部RAM128单元或专用寄存器

    操作内容:direct(Rn) n07

    字节数: 2

    机器周期:2

    说明:

    direct——8位内部数据存储器地址。可以直接访问数据RAM地址(0x000x7F)或一个SFR地址(0x800xFF)。

    Rn——当前选择的寄存器区的寄存器R0R7

4、寄存器间址传送指令

MOV A,@Ri

    指令名称:间接寻址数据传送指令

    指令代码:E6HE7H

    指令功能:内部RAM128单元内容送累加器

    操作内容:A((Ri)) i01

    字节数: 1

    机器周期:1

    说明:

    @Ri——通过寄存器R0R1间接寻址地数据RAM地址。

MOV direct, @Ri

    指令名称:间接寻址数据传送指令

    指令代码:86H87H

    指令功能:内部RAM128单元内容送内部RAM128单元或专用寄存器

    操作内容:direct((Ri))i01

    字节数: 2

    机器周期:2

    说明:

    direct——8位内部数据存储器地址。可以直接访问数据RAM地址(0x000x7F)或一个SFR地址(0x800xFF)。

    @Ri——通过寄存器R0R1间接寻址地数据RAM地址。

MOV RiA

    指令名称:累加器数据传送指令

    指令代码:F6HF7H

    指令功能:累加器内容送内部RAM128单元

    操作内容:(Ri)(A)i01

    字节数: 1

    机器周期:1

    说明:

    @Ri——通过寄存器R0R1间接寻址地数据RAM地址。

二、外部数据传送指令

116位数据指针传送指令

MOV DPTR#datal6

    指令名称:16位数据传送指令

    指令代码:90H

    指令功能:十六位立即数送数据指针

    操作内容:DPHdatal58

    DPLdata70

    字节数: 3

    机器周期:2

    说明:

    DPTR——是一个16位的数据指针寄存器,可以用来存放片内ROM的地址,也可以用来存放片外RAM和片外ROM的地址。

    #data16——16位立即数。

2、外部ROM字节传送指令

MOVC A,@A+DPTR

    指令名称:程序存储器读指令

    指令代码:93H

    指令功能:读程序存储器单元内容送累加器

    操作内容:A((A)+(DPTR))

    字节数: 1

    机器周期:2

    使用说明:变址寄存器A内容加基址寄存器DPTR内容时,低8位产生的进位直接加到高位,不影响进位标志。

    说明:

    DPTR——是一个16位的数据指针寄存器,可以用来存放片内ROM的地址,也可以用

MOVC A,@A+PC

    指令名称:程序存储器读指令

    指令代码:83H

    指令功能:读程序存储器单元内容送累加器

    操作内容:A((A)+(PC))

    字节数: 1

    机器周期:2

    使用说明:同MOVC A@A+DPTR指令(序号70)

3、外部RAM字节传送指令

MOVX A,@Ri

    指令名称:寄存器间接寻址外部RAM读指令

    指令代码:E2HE3H

    指令功能:读外部RAM256单元数据送累加器

    字节数: 1

    机器周期:2

    说明:

    @Ri——通过寄存器R0R1间接寻址地数据RAM地址。

MOVX RiA

    指令名称:寄存器间接寻址外部RAM写指令

    指令代码:F2HF3H

    指令功能:把累加器内容写入外部RAM256单元

    操作内容:(Ri)(A)i10

    字节数: 1

    机器周期:2

    说明:

    @Ri——通过寄存器R0R1间接寻址地数据RAM地址。

    指令名称:数据指针间接寻址外部RAM写指令

MOVX A,@DPTR

    指令名称:数据指针间接寻址外部RAM读指令

    指令代码:E0H

    指令功能:读外部RAM单元数据送累加器

    操作内容:A1((DPTR))

    字节数: 1

    机器周期:2

    说明:

    DPTR——是一个16位的数据指针寄存器,可以用来存放片内ROM的地址,也可以用

来存放片外RAM和片外ROM的地址。

MOVX DPTRA

    指令代码:F0H

    指令功能:把累加器内容写入外部RAM单元

    操作内容:(DPTR)(A)

    字节数: 1

    机器周期:2

    说明:

    DPTR——是一个16位的数据指针寄存器,可以用来存放片内ROM的地址,也可以用来存放片外RAM和片外ROM的地址。

4、堆栈操作指令

PUSH direct

    指令名称:进栈指令

    指令代码:C0

    指令功能:内部RAM128单元或专用寄存器内容送堆栈栈顶单元

    操作内容:SP(SP)+1

    (SP)(direct)

    字节数: 2

    机器周期:2

    说明:

    direct——8位内部数据存储器地址。可以直接访问数据RAM地址(0x000x7F)或一个SFR地址(0x800xFF)。

POP direct

    指令名称:出栈指令

    指令代码:D0H

    指令功能:堆栈栈顶单元的内容送内部RAM128单元或专用寄存器

    操作内容:direct(SP)

    SP(SP)-1

    字节数: 2

    机器周期:2

    说明:

    direct——8位内部数据存储器地址。可以直接访问数据RAM地址(0x000x7F)或一个SFR地址(0x800xFF)。

5、数据交换指令

XCH ARn

    指令名称:寄存器寻址字节交换指令

    指令代码:C8HCFH

    指令功能:寄存器寻址字节

    操作内容:(A)交换(Rn)n07

    字节数: 1

    机器周期:1

说明:

    Rn——当前选择的寄存器区的寄存器R0R7

XCH Adirect

    指令名称:直接寻址字节交换指令

    指令代码:C5H

    指令功能:累加器内容与内部RAM128单元或专用寄存器内容交换

    操作内容:(A)交换(direct)

    字节数: 2

    机器周期:1

    说明:

    direct——8位内部数据存储器地址。可以直接访问数据RAM地址(0x000x7F)或一个SFR地址(0x800xFF)。

XCH A,@Ri

    指令名称:间接寻址字节交换指令

    指令代码:C6HC7H

    指令功能:累加器内容与内部RAM128单元内容交换

    操作内容:(A)交换((Ri)) i01

    字节数: 1

    机器周期:1

    说明:

    @Ri——通过寄存器R0R1间接寻址地数据RAM地址。

XCHD A,@Ri

    指令名称:半字节交换指令

    指令代码:D6HD7H

    指令功能:累加器内容低4位与内部RAM128单元低4位交换

    操作内容:(A)30交换((Ri))30i01

    字节数: 1

    机器周期:1

    说明:

    @Ri——通过寄存器R0R1间接寻址地数据RAM地址。

位操作类指令

一、位传送指令

MOV Cbit

    指令名称:位数据传送指令

    指令代码:A2H

    指令功能:内部RAM可寻址位或专用寄存器的位状态送累加位C

    操作内容:C(bit)

    字节数: 2

    机器周期:1

    说明:

    bit——数据RAMSFR中的直接寻址位。

MOV bitC

    指令名称:累加位数据传送指令

    指令代码:92H

    指令功能:累加器状态送内部RAM可寻址位或专用寄存器的指定位

    操作内容:bit(C)

    字节数: 2

    机器周期:2

    说明:

    bit——数据RAMSFR中的直接寻址位。来存放片外RAM和片外ROM的地址。

二、位置位和位清零指令

CLR C

    指令名称:进位标志清0指令

    指令代码:C3H

    指令功能:进位位清0

    操作内容:C0

    字节数: 1

    机器周期:1

CLR bit

    指令名称:直接寻址位清0指令

    指令代码:C2H

    指令功能:直接寻址位清0

    操作内容:bit0

    字节数: 2

    机器周期:1

    说明:

    bit——数据RAMSFR中的直接寻址位。

SETB c

    指令名称:进位标志置位指令

    指令代码:D.H

    指令功能:进位标志位置位

    操作内容:C1

    字节数: 1

    机器周期:1

SETB bit

    指令名称:直接寻址位置位指令

    指令代码:D2H

    指令功能:内部RAM可寻址位或专用寄存器指定位置位

    操作内容:bit1

    字节数: 2

    机器周期:1

    说明:

    bit——数据RAMSFR中的直接寻址位。

三、位逻辑运算指令

CPL C

    指令名称:进位标志取反指令

    指令代码:B3H

    指令功能:进位标志位状态取反

    操作内容:C(c取反)

    字节数: 1

    机器周期:1

 CPL bit

    指令名称:直接寻址位取反指令

    指令代码:B2H

    指令功能:直接寻址位取反

    操作内容:bit(bit取反)

    字节数: 2

    机器周期:1

    说明:

    bit——数据RAMSFR中的直接寻址位。

ANL Cbit

    指令名称:位逻辑与指令

    指令代码:82H

    指令功能:进位标志逻辑与直接寻址位

    操作内容:C(C)(bit)

    字节数: 2

    机器周期:2

    说明:

    bit——数据RAMSFR中的直接寻址位。

ANL C,/bit

    指令名称:位取反逻辑与指令

    指令代码:B0H

    指令功能:进位标志逻辑与直接寻址位的反

    操作内容:C(C)(bit)

    字节数: 2

    机器周期:2

    说明:

    bit——数据RAMSFR中的直接寻址位。

ORL Cbit

    指令名称:位逻辑或操作指令

    指令代码:72H

    指令功能:累加位C状态与内部RAM可寻址位或专用寄存器指定位进行逻辑或操作

    操作内容:C(C)(bit)

    字节数: 2

    机器周期:2

    说明:

    bit——数据RAMSFR中的直接寻址位。

ORL C,/bit

    指令名称:位反逻辑或操作指令

    指令代码:A0H

    指令功能:累加位C状态与内部RAM可寻址位或专用寄存器指定位的反进行逻辑或操作

    操作内容:C(C)(bit)

    字节数: 2

    机器周期:2

    使用说明:指定位的状态取反后进行逻辑或操作,但并不改变指定位的原来状态。

    说明:

    bit——数据RAMSFR中的直接寻址位。

四、位的控制转移指令

1Cy为条件转移指令

JC rel

    指令名称:累加位条件转移指令

    指令代码:40H

    指令功能:根据累加位(C)的状态决定程序是否转移,若为1则转移,否则顺序执行。

    操作内容:若(C)1,则PC(PC)+2+rel

    (C)1,则PC(PC)+2

    字节数: 2

    机器周期:2

    说明:

    rel——相对于下一条指令第一个字节的8位有符号(2的补码)偏移量。SJMP和所有

条件转移指令使用。

JNC rel

    指令名称:累加位条件转移指令

    指令代码:50H

    指令功能:根据累加位(C)的状态决定程序是否转移。若为o则转移;否则顺序执行。

    操作内容:若(C)0,则PC(PC)+2+rel

    (C)0,则PC(PC)+2

    字节数: 2

    机器周期:2

    说明:

    rel——相对于下一条指令第一个字节的8位有符号(2的补码)偏移量。SJMP和所有条件转移指令使用。

2、位地址内容条件转移指令

JB bit,rel

    指令名称:位条件转移指令

    指令代码:20H

    指令功能:根据指定位的状态,决定程序是否转移。若为1则转移;否则顺序执行。

    操作内容:若(bit)1,则PC(PC)+3+rel

    (bit)1,则PC(PC)+3

    字节数: 3

    机器周期:2

    说明:

    bit——数据RAMSFR中的直接寻址位。

    rel——相对于下一条指令第一个字节的8位有符号(2的补码)偏移量。SJMP和所有条件转移指令使用。

该指令不能对P4-P7进行位操作。

JNB bitrel

    指令名称:位条件转移指令

    指令代码:30H

    指令功能:根据指定位的状态,决定程序是否转移。若为0则转移;否则顺序执行。

    操作内容:若(bit)0,则PC(PC)+3+rel

    (bit)0,则PC(PC)+3

    字节数: 3

    机器周期:2

    说明:

    bit——数据RAMSFR中的直接寻址位。

    rel——相对于下一条指令第一个字节的8位有符号(2的补码)偏移量。SJMP和所有条件转移指令使用。

JBC bitrel

    指令名称:位条件转移清0指令

    指令代码:10H

    指令功能:对指定位的状态进行测试。若为1,则把该位清0并进行转移;否则程序顺序执行。

    操作内容:若(bit)1,则PC(PC)+3+relbit0

    (bit)1,则PC(PC)+3

    字节数: 3

    机器周期:2

    说明:

    bit——数据RAMSFR中的直接寻址位。

    rel——相对于下一条指令第一个字节的8位有符号(2的补码)偏移量。SJMP和所有条件转移指令使用。

你可能感兴趣的:(电子技术,存储,c,测试)