文档视界 最新最全的文档下载
当前位置:文档视界 › MCS-51汇编语言指令集

MCS-51汇编语言指令集

MCS-51汇编语言指令集
MCS-51汇编语言指令集

MCS-51汇编语言指令集

符号定义表

符号

含义

Rn

R0~R7寄存器n=0~7

Direct

直接地址,内部数据区的地址RAM(00H~7FH)

SFR(80H~FFH) B,ACC,PSW,IP,P3,IE,P2,SCON,P1,TCON,P0

@Ri

间接地址Ri=R0或R1 8051/31RAM地址(00H~7FH) 8052/32RAM地址(00H~FFH)

#data

8位常数

#data16

16位常数

Addr16

16位的目标地址

Addr11

11位的目标地址

Rel

相关地址

bit

内部数据RAM(20H~2FH),特殊功能寄存器的直接地址的位

2指令介绍

指令

字节

周期

动作说明

算数运算指令

1.ADD A,Rn

1

1

将累加器与寄存器的内容相加,结果存回累加器

2.ADD A,direct

2

1

将累加器与直接地址的内容相加,结果存回累加器

3.ADD A,@Ri

1

将累加器与间接地址的内容相加,结果存回累加器4.ADD A,#data

2

1

将累加器与常数相加,结果存回累加器

5.ADDC A,Rn

1

1

将累加器与寄存器的内容及进位C相加,结果存回累加器6.ADDC A,direct

2

1

将累加器与直接地址的内容及进位C相加,结果存回累加器7.ADDC A,@Ri

1

1

将累加器与间接地址的内容及进位C相加,结果存回累加器8.ADDC A,#data

2

1

将累加器与常数及进位C相加,结果存回累加器

9.SUBB A,Rn

1

1

将累加器的值减去寄存器的值减借位C,结果存回累加器10.SUBB A,direct

2

1

将累加器的值减直接地址的值减借位C,结果存回累加器11.SUBB A,@Ri

1

1

将累加器的值减间接地址的值减借位C,结果存回累加器12.SUBB A,0data

2

1

将累加器的值减常数值减借位C,结果存回累加器

13.INC A

1

1

将累加器的值加1

14.INC Rn

1

将寄存器的值加l

15.INC direct

2

1

将直接地址的内容加1

16.INC @Ri

1

1

将间接地址的内容加1

17.INC DPTR

1

1

数据指针寄存器值加1

说明:将16位的DPTR加1,当DPTR的低字节(DPL)从FFH溢出至00H时,会使高字节(DPH)加1,不影响任何标志位

18.DEC A

1

1

将累加器的值减1

19.DEC Rn

1

1

将寄存器的值减1

20.DEC direct

2

1

将直接地址的内容减1

21.DEC @Ri

1

1

将间接地址的内容减1

22.MUL AB

1

4

将累加器的值与B寄存器的值相乘,乘积的低位字节存回累加器,高位字节存回B寄存器

说明:将累加器A和寄存器B内的无符号整数相乘,产生16位的积,低位字节存入A,高位字节存入B寄存器。如果积大于FFH,则溢出标志位(OV)被设定为1,而进位标志位为0

23.DIV AB

1

4

将累加器的值除以B寄存器的值,结果的商存回累加器,余数存回B寄存器

说明:无符号的除法运算,将累加器A除以B寄存器的值,商存入A,余数存入B。执行本指令后,进位位(C)及溢出位(OV)被清除为0

24.DA A

1

1

将累加器A作十进制调整,

若(A) 3-0>9或(AC)=1,则(A) 3-0←(A)3-0+6

若(A) 7-4>9或 (C)=1,则(A) 7-4←(A)7-4+6

逻辑运算指令

25.ANL A,Rn

1

1

将累加器的值与寄存器的值做AND的逻辑判断,结果存回累加器

26.ANL A,direct

2

1

将累加器的值与直接地址的内容做AND的逻辑判断,结果存回累加器

27.ANL A,@Ri

1

1

将累加器的值与间接地址的内容做AND的逻辑判断,结果存回累加器

28.ANL A,#data

2

1

将累加器的值与常数做AND的逻辑判断,结果存回累加器

29.ANL direct,A

2

1

将直接地址的内容与累加器的值做AND的逻辑判断,结果存回该直接地址30.ANL direct,#data

3

2

将直接地址的内容与常数值做AND的逻辑判断,结果存回该直接地址

31.ORL A,Rn

1

1

将累加器的值与寄存器的值做OR的逻辑判断,结果存回累加器

32.ORL A,direct

2

1

将累加器的值与直接地址的内容做OR的逻辑判断,结果存回累加器

33.ORL A,@Ri

1

1

将累加器的值与间接地址的内容做OR的逻辑判断,结果存回累加器34.ORL A,#data

2

1

将累加器的值与常数做OR的逻辑判断,结果存回累加器

35.ORL direct,A

2

1

将直接地址的内容与累加器的值做OR的逻辑判断,结果存回该直接地址36.ORL direct,#data

3

2

将直接地址的内容与常数值做OR的逻辑判断,结果存回该直接地址37.XRL A,Rn

1

1

将累加器的值与寄存器的值做XOR的逻辑判断,结果存回累加器38.XRL A,direct

2

1

将累加器的值与直接地址的内容做XOR的逻辑判断,结果存回累加器39.XRL A,@Ri

1

1

将累加器的值与间接地扯的内容做XOR的逻辑判断,结果存回累加器40.XRL A,#data

2

1

将累加器的值与常数作XOR的逻辑判断,结果存回累加器

41.XRL direct,A

2

1

将直接地址的内容与累加器的值做XOR的逻辑判断,结果存回该直接地址42.XRL direct,#data

3

2

将直接地址的内容与常数的值做XOR的逻辑判断,结果存回该直接地址43.CLR A

1

1

清除累加器的值为0

44.CPL A

1

1

将累加器的值反相

45.RL A

1

1

将累加器的值左移一位

46.RLC A

1

1

将累加器含进位C左移一位

47.RR A

1

1

将累加器的值右移一位

48.RRC A

1

1

将累加器含进位C右移一位

49.SWAP A

1

1

将累加器的高4位与低4位的内容交换。(A)3-0←(A)7-4 数据转移指令

50.MOV A,Rn

1

1

将寄存器的内容载入累加器

51.MOV A,direct

2

1

将直接地址的内容载入累加器

52.MOV A,@Ri

1

1

将间接地址的内容载入累加器

53.MOV A,#data

2

1

将常数载入累加器

54.MOV Rn,A

1

1

将累加器的内容载入寄存器

55.MOV Rn,direct

2

将直接地址的内容载入寄存器56.MOV Rn,gdata

2

1

将常数载入寄存器

57.MOV direct,A

2

1

将累加器的内容存入直接地址58.MOV direct,Rn

2

2

将寄存器的内容存入直接地址59.MOV direct1, direct2

3

2

将直接地址2的内容存入直接地址1 60.MOV direct,@Ri

2

2

将间接地址的内容存入直接地址61.MOV direct,#data

3

2

将常数存入直接地址

62.MOV @Ri,A

1

1

将累加器的内容存入某间接地址63.MOV @Ri,direct

2

2

将直接地址的内容存入某间接地址64.MOV @Ri,#data

2

1

将常数存入某间接地址

65.MOV DPTR,#data16

3

2

将16位的常数存入数据指针寄存器66.MOVC A,@A+DPTR

1

(A) ←((A)+(DPTR))

累加器的值再加数据指针寄存器的值为其所指定地址,将该地址的内容读入累加器

67.MOVC A,@A+PC

1

2

(PC)←(PC)+1;(A)←((A)+(PC))累加器的值加程序计数器的值作为其所指定地址,将该地址的内容读入累加器

68.MOVX A,@Ri

1

2

将间接地址所指定外部存储器的内容读入累加器(8位地址)

69.MOVX A,@DPTR

1

2

将数据指针所指定外部存储器的内容读入累加器(16位地址)

70.MOVX @Ri,A

1

2

将累加器的内容写入间接地址所指定的外部存储器(8位地址)

71.MOVX @DPTR,A

1

2

将累加器的内容写入数据指针所指定的外部存储器(16位地址)

72.PUSH direct

2

2

将直接地址的内容压入堆栈区

73.POP direct

2

2

从堆栈弹出该直接地址的内容

74.XCH A,Rn

1

1

将累加器的内容与寄存器的内容互换

75.XCH A,direct

2

1

将累加器的值与直接地址的内容互换

76.XCH A,@Ri

1

1

将累加器的值与间接地址的内容互换

77.XCHD A,@Ri

1

1

将累加器的低4位与间接地址的低4位互换

布尔代数运算

78.CLR C

1

1

清除进位C为0

79.CLR bit

2

1

清除直接地址的某位为0

80.SETB C

1

1

设定进位C为1

81.SETB bit

2

1

设定直接地址的某位为1

82.CPL C

1

1

将进位C的值反相

83.CPL bit

2

1

将直接地址的某位值反相

84.ANL C,bit

2

2

将进位C与直接地址的某位做AND的逻辑判断,结果存回进位C 85.ANL C,/bit

2

2

将进位C与直接地址的某位的反相值做AND的逻辑判断,结果存回进位C 86.ORL C,bit

2

2

将进位C与直接地址的某位做OR的逻辑判断,结果存回进位C 87.ORL C,/bit

2

将进位C与直接地址的某位的反相值做OR的逻辑判断,结果存回进位C 88.MOV C,bit

2

1

将直接地址的某位值存入进位C

89.MOV bit,C

2

2

将进位C的值存入直接地址的某位

90.JC rel

2

2

若进位C=1则跳至rel的相关地址

91.JNC rel

2

2

若进位C=0则跳至rel的相关地址

92.JB bit,rel

3

2

若直接地址的某位为1,则跳至rel的相关地址

93.JNB bit,rel

3

2

若直接地址的某位为0,则跳至rel的相关地址

94.JBC bit,rel

3

2

若直接地址的某位为1,则跳至rel的相关地址,并将该位值清除为0 程序跳跃

95.ACALL addr11

2

2

调用2K程序存储器范围内的子程序

96.LCALL addr16

3

2

调用64K程序存储器范围内的子程序

97.RET

1

2

从子程序返回

98.RETI

2

从中断子程序返回

99.AJMP addr11

2

2

绝对跳跃(2K内)

100.LJMP addr16

3

2

长跳跃(64K内)

101.SJMP rel

2

2

短跳跃(2K内)-128~+127字节

102.JMP @A+DPTR

1

2

跳至累加器的内容加数据指针所指的相关地址

103.JZ rel

2

2

累加器的内容为0,则跳至rel所指相关地址

104.JNZ rel

2

2

累加器的内容不为0,则跳至rel所指相关地址

105.CJNE A,direct,rel

3

2

将累加器的内容与直接地址的内容比较,不相等则跳至rel所指的相关地址106.CJNE A,#data,rel

3

2

将累加器的内容与常数比较,若不相等则跳至rel所指的相关地址107.CJNE @Rn,#data,rel

3

2

将寄存器的内容与常数比较,若不相等则跳至rel所指的相关地址108.CJNE @Ri,#data,rel

3

2

将间接地址的内容与常数比较,若不相等则跳至rel所指的相关地址109.DJNZ Rn,rel

2

将寄存器的内容减1,不等于0则跳至rel所指的相关地址110.DJNZ direct,rel

3

2

将直接地址的内容减1,不等于0则跳至rel所指的相关地址111.NOP

1

1

无动作

51单片机汇编指令集(附记忆方法)

51单片机汇编指令集 一、数据传送类指令(7种助记符) MOV(英文为Move):对内部数据寄存器RAM和特殊功能寄存器SFR的数据进行传送; MOVC(Move Code)读取程序存储器数据表格的数据传送; MOVX (Move External RAM) 对外部RAM的数据传送; XCH (Exchange) 字节交换; XCHD (Exchange low-order Digit) 低半字节交换; PUSH (Push onto Stack) 入栈; POP (Pop from Stack) 出栈; 二、算术运算类指令(8种助记符) ADD(Addition) 加法; ADDC(Add with Carry) 带进位加法; SUBB(Subtract with Borrow) 带借位减法; DA(Decimal Adjust) 十进制调整; INC(Increment) 加1; DEC(Decrement) 减1; MUL(Multiplication、Multiply) 乘法; DIV(Division、Divide) 除法; 三、逻辑运算类指令(10种助记符) ANL(AND Logic) 逻辑与; ORL(OR Logic) 逻辑或; XRL(Exclusive-OR Logic) 逻辑异或; CLR(Clear) 清零; CPL(Complement) 取反; RL(Rotate left) 循环左移; RLC(Rotate Left throught the Carry flag) 带进位循环左移; RR(Rotate Right) 循环右移; RRC (Rotate Right throught the Carry flag) 带进位循环右移; SWAP (Swap) 低4位与高4位交换; 四、控制转移类指令(17种助记符) ACALL(Absolute subroutine Call)子程序绝对调用; LCALL(Long subroutine Call)子程序长调用; RET(Return from subroutine)子程序返回; RETI(Return from Interruption)中断返回; SJMP(Short Jump)短转移; AJMP(Absolute Jump)绝对转移; LJMP(Long Jump)长转移; CJNE (Compare Jump if Not Equal)比较不相等则转移;

51单片机汇编指令集(附记忆方法)

51 单片机汇编指令集 一、数据传送类指令( 7 种助记符) MOV(英文为Move :对内部数据寄存器RAM 和特殊功能寄存器SFR 的数据进行 传送; MOV Q Move Code )读取程序存储器数据表格的数据传送; MOVX (Move External RAM) 对外部 RAM 勺数据传送; XCH (Exchange) 字节交换; XCHD (Exchange low-order Digit) 低半字节交换; PUSH (Push onto Stack) 入栈; POP (Pop from Stack) 出栈; 二、算术运算类指令( 8 种助记符) ADD(Addition) 加法; ADDC(Add with Carry) 带进位加法; SUBB(Subtract with Borrow) 带借位减法; DA(Decimal Adjust) 十进制调整; INC(Increment) 加 1; DEC(Decrement) 减 1; MUL(Multiplication 、Multiply) 乘法; DIV(Division 、Divide) 除法; 三、逻辑运算类指令( 10 种助记符) ANL(AND Logic) 逻辑与; ORL(OR Logic) 逻辑或; XRL(Exclusive-OR Logic) 逻辑异或; CLR(Clear) 清零; CPL(Complement) 取反; RL(Rotate left) 循环左移; RLC(Rotate Left throught the Carry flag) RR(Rotate Right) 循环右移; RRC (Rotate Right throught the Carry flag) SWAP (Swap) 低 4 位与高 4 位交换; 四、控制转移类指令( 17 种助记符) ACALL ( Absolute subroutine Call )子程序绝对调用; LCALL ( Long subroutine Call )子程序长调用; RET ( Return from subroutine )子程序返回; RETI ( Return from Interruption )中断返回; SJMP ( Short Jump )短转移; AJMP ( Absolute Jump )绝对转移; LJMP( Long Jump )长转移; CJNE (Compare Jump if Not Equal) 比较不相等则转移; DJNZ (Decreme nt Jump if Not Zero) 减1后不为0则转移; JZ (Jump if Zero) 结果为0则转移; JNZ (Jump if Not Zero) 结果不为0则转移; JC (Jump if the Carry flag is set) 有进位则转移; JNC (Jump if Not Carry) 无进位则转移; JB (Jump if the Bit is set) 位为1则转移; JNB (Jump if the Bit is Not set) 位为0则转移; 带进位循环左移; 带进位循环右移;

(完整word版)汇编语言常用指令大全,推荐文档

MOV指令为双操作数指令,两个操作数中必须有一个是寄存器. MOV DST , SRC // Byte / Word 执行操作: dst = src 1.目的数可以是通用寄存器, 存储单元和段寄存器(但不允许用CS段寄存器). 2.立即数不能直接送段寄存器 3.不允许在两个存储单元直接传送数据 4.不允许在两个段寄存器间直接传送信息 PUSH入栈指令及POP出栈指令: 堆栈操作是以“后进先出”的方式进行数据操作. PUSH SRC //Word 入栈的操作数除不允许用立即数外,可以为通用寄存器,段寄存器(全部)和存储器. 入栈时高位字节先入栈,低位字节后入栈. POP DST //Word 出栈操作数除不允许用立即数和CS段寄存器外, 可以为通用寄存器,段寄存器和存储器. 执行POP SS指令后,堆栈区在存储区的位置要改变. 执行POP SP 指令后,栈顶的位置要改变. XCHG(eXCHanG)交换指令: 将两操作数值交换. XCHG OPR1, OPR2 //Byte/Word 执行操作: Tmp=OPR1 OPR1=OPR2 OPR2=Tmp 1.必须有一个操作数是在寄存器中 2.不能与段寄存器交换数据 3.存储器与存储器之间不能交换数据. XLAT(TRANSLATE)换码指令: 把一种代码转换为另一种代码. XLAT (OPR 可选) //Byte 执行操作: AL=(BX+AL) 指令执行时只使用预先已存入BX中的表格首地址,执行后,AL中内容则是所要转换的代码. LEA(Load Effective Address) 有效地址传送寄存器指令 LEA REG , SRC //指令把源操作数SRC的有效地址送到指定的寄存器中. 执行操作: REG = EAsrc 注: SRC只能是各种寻址方式的存储器操作数,REG只能是16位寄存器 MOV BX , OFFSET OPER_ONE 等价于LEA BX , OPER_ONE MOV SP , [BX] //将BX间接寻址的相继的二个存储单元的内容送入SP中 LEA SP , [BX] //将BX的内容作为存储器有效地址送入SP中 LDS(Load DS with pointer)指针送寄存器和DS指令 LDS REG , SRC //常指定SI寄存器。 执行操作: REG=(SRC), DS=(SRC+2) //将SRC指出的前二个存储单元的内容送入指令中指定的寄存器中,后二个存储单元送入DS段寄存器中。

MCS-51汇编语言指令集

MCS-51汇编语言指令集 符号定义表 符号 含义 Rn R0~R7寄存器n=0~7 Direct 直接地址,内部数据区的地址RAM(00H~7FH) SFR(80H~FFH) B,ACC,PSW,IP,P3,IE,P2,SCON,P1,TCON,P0 @Ri 间接地址Ri=R0或R1 8051/31RAM地址(00H~7FH) 8052/32RAM地址(00H~FFH) #data 8位常数 #data16 16位常数 Addr16 16位的目标地址 Addr11 11位的目标地址 Rel 相关地址 bit 内部数据RAM(20H~2FH),特殊功能寄存器的直接地址的位 2指令介绍 指令 字节 周期 动作说明 算数运算指令 1.ADD A,Rn 1 1 将累加器与寄存器的内容相加,结果存回累加器 2.ADD A,direct 2 1 将累加器与直接地址的内容相加,结果存回累加器 3.ADD A,@Ri 1

将累加器与间接地址的内容相加,结果存回累加器4.ADD A,#data 2 1 将累加器与常数相加,结果存回累加器 5.ADDC A,Rn 1 1 将累加器与寄存器的内容及进位C相加,结果存回累加器6.ADDC A,direct 2 1 将累加器与直接地址的内容及进位C相加,结果存回累加器7.ADDC A,@Ri 1 1 将累加器与间接地址的内容及进位C相加,结果存回累加器8.ADDC A,#data 2 1 将累加器与常数及进位C相加,结果存回累加器 9.SUBB A,Rn 1 1 将累加器的值减去寄存器的值减借位C,结果存回累加器10.SUBB A,direct 2 1 将累加器的值减直接地址的值减借位C,结果存回累加器11.SUBB A,@Ri 1 1 将累加器的值减间接地址的值减借位C,结果存回累加器12.SUBB A,0data 2 1 将累加器的值减常数值减借位C,结果存回累加器 13.INC A 1 1 将累加器的值加1 14.INC Rn 1

51汇编语言指令集符号定义表 (1)

51汇编语言指令集 符号定义表 符号含义 Rn R0~R7寄存器n=0~7 Direct 直接地址,内部数据区的地址RAM(00H~7FH) SFR(80H~FFH) B,ACC,PSW,IP,P3,IE,P2,SCON,P1,TCON,P0 @Ri 间接地址Ri=R0或R1 8051/31RAM地址(00H~7FH) 8052/32RAM地址(00H~FFH) #data 8位常数 #data16 16位常数 Addr16 16位的目标地址 Addr11 11位的目标地址 Rel 相关地址 bit 内部数据RAM(20H~2FH),特殊功能寄存器的直接地址的位 指令介绍 指令字节周期动作说明 算数运算指令 1.ADD A,Rn 将累加器与寄存器的内容相加,结果存回累加器 2.ADD A,direct 将累加器与直接地址的内容相加,结果存回累加器 3.ADD A,@Ri 将累加器与间接地址的内容相加,结果存回累加器 4.ADD A,#data 将累加器与常数相加,结果存回累加器 5.ADDC A,Rn 将累加器与寄存器的内容及进位C相加,结果存回累加器 6.ADDC A,direct 将累加器与直接地址的内容及进位C相加,结果存回累加器7.ADDC A,@Ri 将累加器与间接地址的内容及进位C相加,结果存回累加器8.ADDC A,#data 将累加器与常数及进位C相加,结果存回累加器 9.SUBB A,Rn 将累加器的值减去寄存器的值减借位C,结果存回累加器 10.SUBB A,direct 将累加器的值减直接地址的值减借位C,结果存回累加器11.SUBB A,@Ri 将累加器的值减间接地址的值减借位C,结果存回累加器 12.SUBB A,#data 将累加器的值减常数值减借位C,结果存回累加器 13.INC A 将累加器的值加1 14.INC Rn 将寄存器的值加l 15.INC direct 将直接地址的内容加1 16.INC @Ri 将间接地址的内容加1 17.INC DPTR 数据指针寄存器值加1 说明:将16位的DPTR加1,当DPTR的低字节(DPL)从FFH溢出至00H时,会使高字节(DPH)加1,不影响任何标志位 18.DEC A 将累加器的值减1 19.DEC Rn 将寄存器的值减1 20.DEC direct 将直接地址的内容减1 21.DEC @Ri 将间接地址的内容减1 22.MUL AB 将累加器的值与B寄存器的值相乘,乘积的低位字节存回累加器,高位字

快速入门单片机汇编语言

快速入门单片机汇编语 言 文档编制序号:[KKIDT-LLE0828-LLETD298-POI08]

快速入门单片机汇编语言 简要: 单片机有通用型和专用型之分。专用型是厂家为固定程序的执行专门开发研制的一种单片机,其程序不可更改。通用型单片机是常用的一种供学习或自主编制程序的单片机,其程序需要自己写入,可更改。单片机根据其基本操作处理位数不同可以分为:1位、4位、8位、16、32位单片机。 正文: 在此我们主要讲解美国ATMEL公司的89C51单片机。 一、89C51单片机PDIP(双列直插式)封装引脚图: 其引脚功能如下: P0口(—):为双向三态口,可以作为输入/输出口。但在实际应用中通常作为地址/数据总线口,即为低8位地址/数据总线分时复用。低8位地址在ALE信号的负跳变锁存到外部地址锁存器中,而高8位地址由P2口输出。 P1口(—):其每一位都能作为可编程的输入或输出线。 P2口(—):每一位也都可作为输入或输出线用,当扩展系统外设时,可作为扩展系统的地址总线高8位,与P0口一起组成16位地址总线。对89c51单片机来说,P2口一般只作为地址总线使用,而不作为I/O线直接与外设相连。 P3口(—):其为双功能口,作为第一功能使用时,其功能与P1口相同。当作为第二功能使用时,每一位功能如下表所示。 P3口第二功能

Rst\Vpd:上电复位端和掉电保护端。 XTAL1(xtal2):外接晶振一脚,分别接晶振的一端。 Gnd:电源地。 Vcc:电源正级,接+5V。 PROG\ALE:地址锁存控制端 PSEN:片外程序存储器读选通信号输出端,低电平有效。 EA\vpp:访问外部程序储存器控制信号,低电平有效。当EA为高电平时访问片内存储器,若超出范围则自动访问外部程序存储器。当EA为低电平时只访问外部程序存储器。 二、常用指令及其格式介绍: 1、指令格式: [标号:]操作码 [ 目的操作数][,操作源][;注释] 例如:LOOP:ADD A,#0FFH ;(A)←(A)+FFH 2、常用符号: Ri和Rn:R表示工作寄存器,i表示1和0,n表示0~7。 rel:相对地址、地址偏移量,主要用于无条件相对短转移指令和条件转移指令。 #data:包含于指令中的8位立即数。 #data16:包含于指令中的16位立即数。

51单片机指令集

51单片机指令集.txt我这辈子只有两件事不会:这也不会,那也不会。人家有的是背景,而我有的是背影。肉的理想,白菜的命。肉的理想,白菜的命。白马啊你死去哪了!是不是你把王子弄丢了不敢来见我了。MCS-51单片机的指令集 1、数据传送类指令 助记符功能说明字节数振荡周期 MOV A,Rn 寄存器内容送入累加器 1 12 MOV A,direct 直接地址单元中的数据送入累加器 2 12 MOV A,@Ri 间接RAM中的数据送入累加器 1 12 MOV A,#data8 8位立即数送入累加器 2 12 MOV Rn,A 累加器内容送入寄存器 1 12 MOV Rn,direct 直接地址单元中的数据送入寄存器 2 24 MOV Rn,#data8 8位立即数送入寄存器 2 12 MOV direct,A 累加器内容送入直接地址单元 2 12 MOV direct,Rn 寄存器内容送入直接地址单元 2 24 MOV direct,direct 直接地址单元中的数据送入直接地址单元 3 24 MOV direct,@Ri 间接RAM中的数据送入直接地址单元 2 24 MOV direct,#data8 8位立即数送入直接地址单元 3 24 MOV @Ri,A 累加器内容送入间接RAM单元 1 12 MOV @Ri,direct 直接地址单元中的数据送入间接RAM单元 2 24 MOV @Ri,#data8 8位立即数送入间接RAM单元 2 12 MOV DPTR,#data16 16位立即数地址送入地址寄存器 3 24 MOV A,@A+DPTR 以DPTR为基地址变址寻址单元中的数据送入累加器 1 24 MOV A,@A+PC 以PC为基地址变址寻址单元中的数据送入累加器 1 24 MOV A,@Ri 外部RAM(8位地址)送入累加器 1 24 MOV A,@DPTR 外部RAM(16位地址)送入累加器 1 24 MOV @Ri,A 累加器送入外部RAM(8位地址) 1 24 MOV @DPTR,A 累加器送入外部RAM(16位地址) 1 24 PUSH direct 直接地址单元中的数据压入堆栈 2 24 POP DIRECT 堆栈中的数据弹出到直接地址单元 2 24 XCH A,Rn 寄存器与累加器交换 1 12 XCH A,direct 直接地址单元与累加器交换 2 12 XCH A,@Ri 间接RAM与累加器交换 1 12 XCHD A,@Ri 间接RAM与累加器进行低半字节交换 1 12 2、算术操作类指令 助记符功能说明字节数振荡周期 ADD A,Rn 寄存器内容加到累加器 1 12 ADD A,direct 直接地址单元加到累加器 2 12 ADD A,@Ri 间接RAM内容加到累加器 1 12 ADD A,#data8 8位立即数加到累加器 2 12 ADDC A,Rn 寄存器内容带进位加到累加器 1 12

(完整word版)汇编语言指令集合-吐血整理,推荐文档

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):堆栈段寄存器;

(完整版)51单片机汇编指令(全)

指令中常用符号说明 Rn当前寄存器区的8个工作寄存器R0~R7(n=0~7) Ri当前寄存器区可作为地址寄存器的2个工作寄存器R0和R1(i=0,1) Direct8位内部数据寄存器单元的地址及特殊功能寄存器的地址 #data表示8位常数(立即数) #data16表示16位常数 Add16表示16位地址 Addr11表示11位地址 Rel8位代符号的地址偏移量 Bit表示位地址 @间接寻址寄存器或基址寄存器的前缀 ( )表示括号中单元的内容 (( ))表示间接寻址的内容 指令系统 数据传送指令(8个助记符) 助记符中英文注释 MOV Move 移动 MOV A , Rn;Rn→A,寄存器Rn的内容送到累加器A MOV A , Direct;(direct)→A,直接地址的内容送A MOV A ,@ Ri;(Ri)→A,RI间址的内容送A MOV A , #data;data→A,立即数送A MOV Rn , A;A→Rn,累加器A的内容送寄存器Rn MOV Rn ,direct;(direct)→Rn,直接地址中的内容送Rn MOV Rn , #data;data→Rn,立即数送Rn MOV direct , A;A→(direct),累加器A中的内容送直接地址中 MOV direct , Rn;(Rn)→direct,寄存器的内容送到直接地址 MOV direct , direct;(direct)→direct,直接地址的内容送到直接地址 MOV direct , @Ri;((Ri))→direct,间址的内容送到直接地址 MOV direct , #data;8位立即数送到直接地址中 MOV @Ri , A;(A)→@Ri,累加器的内容送到间址中 MOV @Ri , direct;direct→@Ri,直接地址中的内容送到间址中 MOV @Ri , #data; data→@Ri ,8位立即数送到间址中 MOV DPTR , #data16;data16→DPTR,16位常数送入数据指针寄存器,高8位送入DPH,低8位送入DPL中(单片机中唯一一条16位数据传送指令) (MOV类指令共16条)

单片机汇编语言指令集

汇编语言的所有指令数据传送指令集 MOV 功能: 把源操作数送给目的操作数 语法: MOV 目的操作数,源操作数 格式: MOV r1,r2 MOV r,m MOV m,r MOV r,data XCHG 功能: 交换两个操作数的数据 语法: XCHG 格式: XCHG r1,r2 XCHG m,r XCHG r,m PUSH,POP 功能: 把操作数压入或取出堆栈 语法: PUSH 操作数POP 操作数 格式: PUSH r PUSH M PUSH data POP r POP m PUSHF,POPF,PUSHA,POPA 功能: 堆栈指令群 格式: PUSHF POPF PUSHA POPA LEA,LDS,LES 功能: 取地址至寄存器 语法: LEA r,m LDS r,m LES r,m XLAT(XLATB) 功能: 查表指令 语法: XLAT XLAT m 算数运算指令 ADD,ADC 功能: 加法指令 语法: ADD OP1,OP2 ADC OP1,OP2 格式: ADD r1,r2 ADD r,m ADD m,r ADD r,data 影响标志: C,P,A,Z,S,O SUB,SBB 功能:减法指令 语法: SUB OP1,OP2 SBB OP1,OP2 格式: SUB r1,r2 SUB r,m SUB m,r SUB r,data SUB m,data 影响标志: C,P,A,Z,S,O

INC,DEC 功能: 把OP的值加一或减一 语法: INC OP DEC OP 格式: INC r/m DEC r/m 影响标志: P,A,Z,S,O NEG 功能: 将OP的符号反相(取二进制补码) 语法: NEG OP 格式: NEG r/m 影响标志: C,P,A,Z,S,O MUL,IMUL 功能: 乘法指令 语法: MUL OP IMUL OP 格式: MUL r/m IMUL r/m 影响标志: C,P,A,Z,S,O(仅IMUL会影响S标志) DIV,IDIV 功能:除法指令 语法: DIV OP IDIV OP 格式: DIV r/m IDIV r/m CBW,CWD 功能: 有符号数扩展指令 语法: CBW CWD AAA,AAS,AAM,AAD 功能: 非压BCD码运算调整指令 语法: AAA AAS AAM AAD 影响标志: A,C(AAA,AAS) S,Z,P(AAM,AAD) DAA,DAS 功能: 压缩BCD码调整指令 语法: DAA DAS 影响标志: C,P,A,Z,S 位运算指令集 AND,OR,XOR,NOT,TEST 功能: 执行BIT与BIT之间的逻辑运算 语法: AND r/m,r/m/data OR r/m,r/m/data XOR r/m,r/m/data TEST r/m,r/m/data NOT r/m 影响标志: C,O,P,Z,S(其中C与O两个标志会被设为0) NOT指令不影响任何标志位 SHR,SHL,SAR,SAL 功能: 移位指令 语法: SHR r/m,data/CL SHL r/m,data/CL SAR r/m,data/CL SAL r/m,data/CL

汇编语言指令速查表

附录 附录A 常用80x86指令速查表 指令按助记符字母顺序排列,缩写、符号约定如下: (1) 指令中,dst, src表示目的操作数和源操作数。仅一个操作数时,个别处也表示为opr。 (2) imm表示立即数,8/16/32位立即数记作:imm8/imm16/imm32。 (3) reg表示通用寄存器,8/16/32位通用寄存器记作:reg8/reg16/reg32。 (4) mem表示内存操作数,8/16/32等内存操作数记作:mem8/mem16/mem32等。 (5) seg表示段寄存器,CS, DS, SS, ES, FS, GS。 (6) acc表示累加器,8/16/32累加器对应AL/AX/EAX。 (7)OF, SF, ZF, AF, PF, CF分别表示为O, S, Z, A, P, C,相应位置为:字母,根据结果状态设置;?,状态不确定;-,状态不变;1,置1;0,清0;例如:0 S Z ? P -表示:OF清0,AF不确定,CF不变,其它根据结果设置。若该栏空白,则表示无关。 (8)寄存器符号诸如(E)CX, (E)SI, (E)DI, (E)SP, (E)BP和(E)IP等,表示在16地址模式下使用16位寄存器(如CX),或在32地址模式下使用32位寄存器(如ECX)。 (9)周期数表示指令执行所需的CPU时钟周期个数,即执行时间为:周期数/主频(秒)。 (10)诸如(386+)是表示该指令只能用于80386及以后微处理器上。

·252·

附录 ·253·

·254·

附录 ·255·

·256·

汇编语言指令集

汇编语言指令集 一、数据传输指令 1. 通用数据传送指令. MOV(MOVe) 传送字或字节. MOVS(MOVe String) 串传送指令 MOVSX先符号扩展,再传送. MOVZX先零扩展,再传送. PUSH把字压入堆栈. POP把字弹出堆栈. PUSHA把AX,CX,DX,BX,SP,BP,SI,DI依次压入堆栈. POPA把DI,SI,BP,SP,BX,DX,CX,AX依次弹出堆栈. PUSHAD把EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI依次压入堆栈. POPAD把EDI,ESI,EBP,ESP,EBX,EDX,ECX,EAX依次弹出堆栈. BSWAP 交换32位寄存器里字节的顺序 XCHG (eXCHanG)交换字或字节.( 至少有一个操作数为寄存器,段寄存器不可作为操作数) CMPXCHG比较并交换操作数.( 第二个操作数必须为累加器AL/AX/EAX ) XADD先交换再累加.( 结果在第一个操作数里) XLAT(TRANSLATE) 字节查表转换. ── BX 指向一张256 字节的表的起点, AL 为表的索引值(0-255,即0-FFH); 返回AL 为查表结果. ( [BX+AL]->AL ) 2. 输入输出端口传送指令. IN I/O端口输入. ( 语法: IN 累加器, {端口号│DX} ) OUT I/O端口输出. ( 语法: OUT {端口号│DX},累加器) 输入输出端口由立即方式指定时, 其范围是0-255; 由寄存器DX 指定时,其范围是0-65535. 3. 目的地址传送指令. LEA (Load Effective Address)装入有效地址. 例: LEA DX,string ;把偏移地址存到DX. LDS (Load DS with pointer)传送目标指针,把指针内容装入DS. 例: LDS SI,string ;把段地址:偏移地址存到DS:SI. LES (Load ES with pointer)传送目标指针,把指针内容装入ES. 例: LES DI,string ;把段地址:偏移地址存到ES:DI. LFS 传送目标指针,把指针内容装入FS. 例: LFS DI,string ;把段地址:偏移地址存到FS:DI. LGS 传送目标指针,把指针内容装入GS. 例: LGS DI,string ;把段地址:偏移地址存到GS:DI. LSS 传送目标指针,把指针内容装入SS. 例: LSS DI,string ;把段地址:偏移地址存到SS:DI. 4. 标志传送指令. LAHF (Load AH with Flags)标志寄存器传送,把标志装入AH. SAHF (Store AH into Flgs)标志寄存器传送,把AH内容装入标志寄存器. PUSHF (PUSH the Flags)标志入栈. POPF (POP the Flags)标志出栈.

C51单片机指令集大全

格式功能简述字节数周期 一、数据传送类指令 MOV A, Rn 寄存器送累加器 1 1 MOV Rn,A 累加器送寄存器 1 1 MOV A ,@Ri 内部RAM单元送累加器 1 1 MOV @Ri ,A 累加器送内部RAM单元 1 1 MOV A ,#data 立即数送累加器 2 1 MOV A ,direct 直接寻址单元送累加器 2 1 MOV direct ,A 累加器送直接寻址单元 2 1 MOV Rn,#data 立即数送寄存器 2 1 MOV direct ,#data 立即数送直接寻址单元 3 2 MOV @Ri ,#data 立即数送内部RAM单元 2 1 MOV direct ,Rn 寄存器送直接寻址单元 2 2 MOV Rn ,direct 直接寻址单元送寄存器 2 2 MOV direct ,@Ri 内部RAM单元送直接寻址单元 2 2 MOV @Ri ,direct 直接寻址单元送内部RAM单元 2 2 MOV direct2,direct1 直接寻址单元送直接寻址单元 3 2 MOV DPTR ,#data16 16位立即数送数据指针 3 2 MOVX A ,@Ri 外部RAM单元送累加器(8位地址) 1 2 MOVX @Ri ,A 累加器送外部RAM单元(8位地址) 1 2 MOVX A ,@DPTR 外部RAM单元送累加器(16位地址) 1 2 MOVX @DPTR ,A 累加器送外部RAM单元(16位地址) 1 2 MOVC A ,@A+DPTR 查表数据送累加器(DPTR为基址) 1 2 MOVC A ,@A+PC 查表数据送累加器(PC为基址) 1 2 XCH A ,Rn 累加器与寄存器交换 1 1 XCH A ,@Ri 累加器与内部RAM单元交换 1 1 XCHD A ,direct 累加器与直接寻址单元交换 2 1 XCHD A ,@Ri 累加器与内部RAM单元低4位交换 1 1 SWAP A 累加器高4位与低4位交换 1 1 POP direct 栈顶弹出指令直接寻址单元 2 2 PUSH direct 直接寻址单元压入栈顶 2 2 二、算术运算类指令 ADD A, Rn 累加器加寄存器 1 1 ADD A,@Ri 累加器加内部RAM单元 1 1 ADD A, direct 累加器加直接寻址单元 2 1 ADD A, #data 累加器加立即数 2 1 ADDC A, Rn 累加器加寄存器和进位标志 1 1 ADDC A,@Ri 累加器加内部RAM单元和进位标志 1 1 ADDC A, #data 累加器加立即数和进位标志 2 1 ADDC A, direct 累加器加直接寻址单元和进位标志 2 1 INC A 累加器加1 1 1 INC Rn 寄存器加1 1 1

51单片机汇编程序范例

16位二进制数转换成BCD码的的快速算法-51单片机2010-02-18 00:43在做而论道上篇博文中,回答了一个16位二进制数转换成BCD码的问题,给出了一个网上广泛流传的经典转换程序。 程序可见:https://www.docsj.com/doc/212306492.html,/%D7%F6%B6%F8%C2%DB%B5%C0/blog/item/6154551f93ba5614403417 32.html中的HEX2BCD子程序。 . 说它经典,不仅是因为它已经流传已久,重要的是它的编程思路十分清晰,十分易于延伸推广。做而论道曾经利用它的思路,很容易的编写出了48位二进制数变换成16位BCD码的程序。 但是这个程序有个明显的缺点,就是执行时间太长,转换16位二进制数,就必须循环16遍,转换48位二进制数,就必须循环48遍。 上述的HEX2BCD子程序,虽然长度仅仅为26字节,执行时间却要用331个机器周期。 . 单片机系统多半是用于各种类型的控制场合,很多时候都是需要“争分夺秒”的,在低功耗系统设计中,也必须考虑因为运算时间长而增加系统耗电量的问题。 为了提高整机运行的速度,在多年前,做而论道就另外编写了一个转换程序,程序的长度为81字节,执行时间是81个机器周期,(这两个数字怎么这么巧!)执行时间仅仅是经典程序的1/4! . 近来,在网上发现了一个链接:https://www.docsj.com/doc/212306492.html,/news/Article/uc/uc8051/200803/4751.html,也对这个经典转换程序进行了改进,话是说了不少,只是没有实质性的东西。这篇文章提到的程序,一直也没有找到,也难辩真假。 这篇文章好像是选自某个著名杂志,但是在术语的使用上,有着明显的漏洞,不像是专业人员的手笔。比如说文中提到的:“使用51条指令代码,但执行这段程序却要耗费312个指令周期”,就是败笔。51条指令代码,真不知道说的是什么,指令周期是因各种机型和指令而异的,也不能表示确切的时间。 . 下面说说做而论道的编程思路。

MIPS 指令系统和汇编语言

第四章MIPS指令系统和汇编语言 1.考研预测:出题特点总结 本章是对统考408内容来说,本章是新增的章节。此外北航961大纲中制定了要考MIPS 指令集,从15年961真题来看MIPS是重中之重。但是今年计组并没有指定具体的教材,但大纲明确要求掌握MIPS指令集,所以还是建议考生将《计算机组成与设计:硬件/软件接口》中文版(原版第三版或第四版)作为本章的参考书籍。 本章大致内容是MIPS的基础知识,难度并不大。考生应该将重点放在MIPS指令集的基础上,考察C语言中的语句转换为对应的MIPS指令,所以需要熟练掌握C语言中一些语句对应的MIPS指令实现。本章出题很大可能就是C语言和MIPS汇编语言之间的转换,也可能涉及到第五章CPU指令流水线等内容。 2.考研知识点系统整理:梳理考点,各个击破 3.1 指令系统概述 机器指令要素 操作码:指明进行的何种操作 源操作数地址:参加操作的操作数的地址,可能有多个。 目的操作数地址:保存操作结果的地址。 下条指令的地址:指明下一条要运行的指令的位置,一般指令是按顺序依次执行的,所以绝大多数指令中并不显式的指明下一条指令的地址,也就是说,指令格式中并不包含这部分信息。只有少数指令需要显示指明下一条指令的地址。

指令执行周期 3.2 指令格式 一台计算机指令格式的选择和确定要涉及多方面的因素,如指令长度、地址码结构以及操

作码结构等,是一个很复杂的问题,它与计算机系统结构、数据表示方法、指令功能设计等都密切相关。 指令的基本格式 一条指令就是机器语言的一个语句,它是一组有意义的二进制代码,指令的基本格式如下: ( 其中A1为第一操作数地址,A2为第二操作数地址,A3为操作结果存放地址。 这条指令的含义:(A1)OP(A2)→A3 式中OP表示双操作数运算指令的运算符号,如“+”或“–”等。 (2)二地址指令

IC8位单片机汇编语言常用指令的识读

PIC单片机指令集简介 PIC 8位单片机共有三个级别,有相对应的指令集。基本级PIC系列芯片共有指令33条,每条指令是12位字长;中级PIC系列芯片共有指令35条,每条指令是14位字长;高级PIC系列芯片共有指令58条,每条指令是16位字长。其指令向下兼容。 一、PIC汇编语言指令格式 PIC系列微控制器汇编语言指令与MCS-51系列单片机汇编语言一样,每条汇编语言指令由4个部分组成,其书写格式如下: 标号操作码助记符操作数1,操作数2;注释 指令格式说明如下:指令的4个部分之间由空格作隔离符,空格可以是1格或多格,以保证交叉汇编时,PC机能识别指令。 1与MCS-51系列单片机功能相同,标号代表指令的符号地址。在程序汇编时,已赋以指令存储器地址的具体数值。汇编语言中采用符号地址(即标号)是便于查看、修改,尤其是便于指令转移地址的表示。标号是指令格式中的可选项,只有在被其它语句引用时才需派上标号。在无标号的情况下,指令助记符前面必须保留一个或一个以上的空格再写指令助记符。指令助记符不能占用标号的位置,否则该助记符会被汇编程序作标号误处理。 书写标号时,规定第一字符必须是字母或半角下划线“—”,它后面可以跟英文和数字字符、冒号(:)制符表等,并可任意组合。再有标号不能用操作码助记符和寄存器的代号表示。标号也可以单独占一行。 2该字段是指令的必选项。该项可以是指令助记符,也可以由伪指令及宏命令组成,其作用是在交叉汇编时,“指令操作码助记符”与“操作码表”进行逐一比较,找出其相应的机器码一一代之。 3由操作数的数据值或以符号表示的数据或地址值组成。若操作数有两个,则两个操作数之间用逗号(,)分开。当操作数是常数时,常数可以是二进制、八进制、十进制或十六进制数。还可以是被定义过的标号、字符串和ASCⅡ码等。具体表示时,规定在二进制数前冠以字母“B”,例如B10011100;八进制数前冠以字母“O”,例如O257;十进制数前冠以字母“D”,例如D122;十六进制数前冠以“H”,例如H2F。在这里PIC 8位单片机默认进制是十六进制,在十六进制数之前加上Ox,如H2F可以写成Ox2F。 指令的操作数项也是可选项。 PIC系列与MCS-51系列8位单片机一样,存在寻址方法,即操作数的来源或去向问题。因PIC系列微控制器采用了精简指令集(RISC)结构体系,其寻址方式和指令都既少而又简单。其寻址方式根据操作数来源的不同,可分为立即数寻址、直接寻址、寄存器间接寻址和位寻址四种。所以PIC系列单片机指令中的操作数常常出现有关寄存器符号。有关的寻址实例,均可在本文的后面找到。 4用来对程序作些说明,便于人们阅读程序。注释开始之前用分号(;)与其它部分相隔。当汇编程序检测到分号时,其后面的字符不再处理。值得注意:在用到子程序时应说明程序的入口条件、出口条件以及该程序应完成的功能和作用。 二、清零指令(共4条) 1 实例:CLRW;寄存器W被清零 说明:该条指令很简单,其中W为PIC单片机的工作寄存器,相当于MCS-51系列单片机中的累加器A,CLR是英语Clear的缩写字母。 2 实例:CLRWDT;看门狗定时器清零(若已赋值,同时清预分频器)

常用51单片机汇编指令

常用单片机汇编指令: 1 .MOV A,Rn寄存器内容送入累加器 2 .MOV A,direct 直接地址单元中的数据送入累加器 3 .MOV A,@Ri (i=0,1) 间接RAM中的数据送入累加器 4 .MOV A,#data 立即数送入累加器 5 .MOV Rn,A累加器内容送入寄存器 6 .MOV Rn,direct 直接地址单元中的数据送入寄存器 7 .MOV Rn,#data 立即数送入寄存器 8 .MOV direct,A 累加器内容送入直接地址单元 9 .MOV direct,Rn 寄存器内容送入直接地址单元 10. MOV direct,direct 直接地址单元中的数据送入另一个 直接地址单元 11 .MOV direct,@Ri (i=0,1) 间接RAM中的数据送入直接地址单元 12 MOV direct,#data 立即数送入直接地址单元 13 .MOV @Ri,A (i=0,1) 累加器内容送间接RAM单元 14 .MOV@Ri,direct (i=0,1)直接地址单元数据送入间接RAM 单元 15 .MOV @Ri,#data (i=0,1) 立即数送入间接RAM单元 16 .MOV DPTR,#data16 16 位立即数送入地址寄存器 17 .MOVC A,@A+DPTR以DPTR^基地址变址寻址单元中的数 据送入累加器

18 .MOVC A,@A+PC以PC为基地址变址寻址单元中的数据送入累加器 19 .MOVX A,@Ri (i=0,1) 外部RAM(8位地址)送入累加器 20 .MOVX A,@DPTR外部RAM(16位地址)送入累加器 21 .MOVX @Ri,A (i=0,1) 累计器送外部RAM(8位地址) 22 .MOVX @DPTR,A累计器送外部RAM( 16位地址) 23 .PUSH direct 直接地址单元中的数据压入堆栈 24 .POP direct 弹栈送直接地址单元 25 .XCH A,Rn 寄存器与累加器交换 26 .XCH A,direct 直接地址单元与累加器交换 27 .XCH A,@Ri (i=0,1) 间接RAM与累加器交换 28 .XCHD A,@Ri (i=0,1) 间接RAM的低半字节与累加器交换算术操作类指令: 1. ADD A,Rn 寄存器内容加到累加器 2 .ADD A,direct 直接地址单元的内容加到累加器 3 A.DD A,@Ri (i=0,1) 间接ROM的内容加到累加器 4 .ADD A,#data 立即数加到累加器 5 .ADDC A,Rn寄存器内容带进位加到累加器 6 .ADDC A,direct 直接地址单元的内容带进位加到累加器 7 .ADDC A,@Ri(i=0,1) 间接ROM的内容带进位加到累加器 8 .ADDC A,#data 立即数带进位加到累加器

相关文档