173 2438 5004
KEROS加密芯片——品牌直销 | 免费样品 | 技术支持
当前位置:网站首页 > 资讯中心 正文 资讯中心

第3章mcs-51单片机的指令系统

htxw 2023-03-15 资讯中心 28 ℃

51单片机指令系统

51单片机指令ANL 60H,#0FCH 中#后面的0是指后面跟的字母FCH是数字,当十六进制数的高半字节出现A~F时必须要加"0",如若省去软件会提示出错,所以是不可以不要的。

mcs-51系列单片机指令系统有哪五类?

mcs-51系列单片机指令系统有五类,分别为:

1、数据传送指令

2、算术运算指令

3、逻辑运算指令

4、控制转移指令

5、布尔处理指令

扩展资料:

MCS-51单片机的核心:8051CPU,CPU内部集成算法和控制器,完成算法的操作(包括数据操作、逻辑操作等),完成控制器的指令,对指令进行解码和执行。

MCS-51单片机资源:中央处理器(CPU)、数据存储器(RAM)、程序存储器(ROM)、时序/计数器(ROM)、并行输入/输出(I/O)端口、全双工串口、中断系统、时钟电路。

中央处理单元(CPU):整个单片机为核心组成部分,是8位数据宽度处理器,可以处理8位二进制数据或代码,处理器负责控制、指挥和调度整个单元系统协调工作,完成操作和控制输入和输出函数和其他操作。

MCS51的指令系统

MCS51的指令系统

MCS-51共有7种寻址方式,现介绍如下:

(1)立即寻址:操作数就写在指令中,和操作码一起放在程序存贮器中。把“#”号放在立即数前面,以表示该寻址方式为立即寻址,如mov A,#20H。

(2)寄存器寻址:操作数放在寄存器中,在指令中直接以寄存器的名来表示操作数地址。如MOV A,R0就属于寄存器寻址,即R0寄存器的内容送到累加器A中。

(3)直接寻址:操作数放在单片机的内部RAM某单元中,在指令中直接写出该单元的地址。如前例的ADD A,70H中的70H。

(4)寄存器间接寻址:操作数放在RAM某个单元中,该单元的地址又放在寄存器R0或R1中。 如果RAM的地址大于256,则该地址存放在16位寄存器DPTR(数据指针)中,此时在寄存器名前加@符号来表示这种间接寻址。如MOV A,@ R0。

(5)变址寻址:指定的变址寄存器的内容与指令中给出的偏移量相加,所得的结果作为操作数的地址。如MOVC A,@A+DPTR

(6)相对寻址:由程序计数器中的基地址与指令中提供的偏移量相加,得到的为操作数的地址。如SJMP rel

(7)位寻址:操作数是二进制中的某一位,其位地址出现在指令中。如SETB bit

MCS51的指令系统按功能分有:数据传送类、转移指令、算术运算类、逻辑运算类、和十进制指令及一些伪指令共111个。详细说明如下:

算术运算指令

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寄存器的值相乘,乘积的低位字节存回累加器,高位字节存回B寄存器

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

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

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

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

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

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

逻辑运算指令

25.ANL A,Rn 将累加器的值与寄存器的值做AND的逻辑判断,结果存回累加器

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

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

28.ANL A,#data 将累加器的值与常数做AND的逻辑判断,结果存回累加器

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

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

31.ORL A,Rn 将累加器的值与寄存器的值做OR的逻辑判断,结果存回累加器

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

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

34.ORL A,#data 将累加器的值与常数做OR的逻辑判断,结果存回累加器

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

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

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

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

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

40.XRL A,#data 将累加器的值与常数作XOR的逻辑判断,结果存回累加器

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

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

43.CLR A 清除累加器的值为0

44.CPL A 将累加器的值反相

45.RL A将累加器的值左移一位

46.RLC A 将累加器含进位C左移一位

47.RR A 将累加器的值右移一位

48.RRC A 将累加器含进位C右移一位

49.SWAP A 将累加器的高4位与低4位的内容交换。(A)3-0←(A)7-4

数据转移指令

50.MOV A,Rn 将寄存器的内容载入累加器

51.MOV A,direct 将直接地址的内容载入累加器

52.MOV A,@Ri 将间接地址的内容载入累加器

53.MOV A,#data 将常数载入累加器

54.MOV Rn,A 将累加器的内容载入寄存器

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

56.MOV Rn,gdata 将常数载入寄存器

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

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

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

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

61.MOV direct,#data将常数存入直接地址

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

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

64.MOV @Ri,#data 将常数存入某间接地址

65.MOV DPTR,#data16 将16位的常数存入数据指针寄存器

66.MOVC A,@A+DPTR 1 2 (A) ←((A)+(DPTR))

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

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

68.MOVX A,@Ri 将间接地址所指定外部存储器的内容读入累加器(8位地址)

69.MOVX A,@DPTR 将数据指针所指定外部存储器的内容读入累加器(16位地址)

70.MOVX @Ri,A 将累加器的内容写入间接地址所指定的外部存储器(8位地址)

71.MOVX @DPTR,A 将累加器的内容写入数据指针所指定的外部存储器(16位地址)

72.PUSH direct 将直接地址的内容压入堆栈区

73.POP direct 从堆栈弹出该直接地址的内容

74.XCH A,Rn 将累加器的内容与寄存器的内容互换

75.XCH A,direct 将累加器的值与直接地址的内容互换

76.XCH A,@Ri 将累加器的值与间接地址的内容互换

77.XCHD A,@Ri 将累加器的低4位与间接地址的低4位互换

布尔代数运算

78.CLR C 清除进位C为0

79.CLR bit 清除直接地址的某位为0

80.SETB C 设定进位C为1

81.SETB bit 设定直接地址的某位为1

82.CPL C 将进位C的值反相

83.CPL bit 将直接地址的某位值反相

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

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

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

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

88.MOV C,bit 将直接地址的某位值存入进位C

89.MOV bit,C 将进位C的值存入直接地址的某位

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

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

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

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

94.JBC bit,rel 若直接地址的某位为1,则跳至rel的相关地址,并将该位值清除为0

程序跳跃

95.ACALL addr11 调用2K程序存储器范围内的子程序

96.LCALL addr16 调用64K程序存储器范围内的子程序

97.RET 从子程序返回

98.RETI 从中断子程序返回

99.AJMP addr11 绝对跳跃(2K内)

100.LJMP addr16 长跳跃(64K内)

101.SJMP rel 短跳跃(2K内)-128~+127字节

102.JMP @A+DPTR 跳至累加器的内容加数据指针所指的相关地址

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

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

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

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

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

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

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

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

111.NOP 无动作

MCS-51单片机的指令系统有几种寻址方式。

MCS-51单片机的指令系统有七种寻址方式,分别是:

一、立即寻址

立即寻址就是将操作数紧跟在操作码后面,与操作码一起放在指令代码段中,在程序运行时,程序直接调用该操作数,而不需要到其他地址单元中去取相应的操作数,上述的写在指令中的操作数也称作立即数。

二、直接寻址

直接寻址在指令格式的地址的字段中直接指出操作数在内存的地址。由于操作数的地址直接给出而不需要经过某种变换,所以称这种寻址方式为直接寻址方式。在指令中直接给出参与运算的操作数及运算结果所存放的主存地址,即在指令中直接给出有效地址。

三、寄存器寻址

寄存器寻址是指操作数在寄存器中,由指令操作码中的rrr三位的值和PSW中RS1及RS0的状态,选中某个工作寄存器区的某个寄存器,然后进行相应的指令操作。

四、寄存器间接寻址

寄存器间接寻址是将指定的寄存器内容为地址,由该地址所指定的单元内容作为操作数。MCS-51规定R0或R1为间接寻址寄存器,它可寻址内部RAM低位地址的128个字节单元内容。还可采用数据指针(DPTR)作为间接寻址寄存器,寻址外部数据存储器的64K字节空间,但不能用本寻址方法寻址特殊功能寄存器。

五、相对寻址

相对寻址以程序计数器PC的当前值(R15中的值)为基地址,指令中的地址标号作为偏移量,将两者相加后得到操作数的有效地址。

六、变址寻址

把变址寄存器的内容(通常是位移量)与指令地址码部分给出的地址(通常是首地址)之和作为操作数的地址来获得所需要的操作数就称为变址寻址。

七、位寻址

对位地址中的内容进行位操作的寻址方式称为位寻址。由于单片机中只有内部RAM和 特殊功能寄存器的部分单元有位地址,因此位寻址只能对有位地址的这两个空间进行寻址操作。

扩展资料:

MCS-51单片机是一种集成的电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。

参考资料来源:百度百科-MCS-51单片机

MCS-51系列单片机的指令系统具有哪些特点

楼主:

单片机作为微型计算机的一个分支,与一般的微型计算机没有本质上的区别,同样具有快速、精确、记忆功能和逻辑判断能力等特点。但单片机是集成在一块芯片上的微型计算机,它与一般的微型计算机相比,在硬件结构和指令设置上均有独到之处,主要特点有:

1.体积小,重量轻;价格低,功能强;电源单一,功耗低;可靠性高,抗干扰能力强。这是单片机得到迅速普及和发展的主要原因。同时由于它的功耗低,使后期投入成本也大大降低。

2.使用方便灵活、通用性强。由于单片机本身就构成一个最小系统,只要根据不同的控制对象作相应的改变即可,因而它具有很强的通用性。

3.目前大多数单片机采用哈佛(Harvard)结构体系。单片机的数据存储器空间和程序存储器空间相互独立。单片机主要面向测控对象,通常有大量的控制程序和较少的随机数据,将程序和数据分开,使用较大容量的程序存储器来固化程序代码,使用少量的数据存储器来存取随机数据。程序在只读存储器ROM中运行,不易受外界侵害,可靠性高。

4.突出控制功能的指令系统。单片机的指令系统中有大量的单字节指令,以提高指令运行速度和操作效率;有丰富的位操作指令,满足了对开关量控制的要求;有丰富的转移指令,包括有无条件转移指令和条件转移指令。

5.较低的处理速度和较小的存储容量。因为单片机是一种小而全的微型机系统,它是牺牲运算速度和存储容量来换取其体积小、功耗低等特色。

如果还有其它问题,请go on。。。。

第3章mcs-51单片机的指令系统的介绍到此就结束了,感谢您耐心阅读,谢谢。

本文标签:第3章mcs-51单片机的指令系统

<