欢迎来到天天文库
浏览记录
ID:27079737
大小:361.01 KB
页数:63页
时间:2018-12-01
《单片机的指令系统》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第2章单片机的指令系统§2.1指令系统概述单片机所能执行的指令的集合称为指令系统。以助记符、符号地址、标号等书写程序的语言称为汇编语言。2.1.1指令分类(1)按功能分(2)按字长分(3)按执行时间分2.1.2指令格式[标号]:操作码[目的操作数],[源操作数];[注释]2.1.3指令字长和指令周期指令周期是指执行一条指令所需要的时间。2.1.4符号约定⑴#data:8位立即数,取值在00H~0FFH之间。⑵#data16:16位立即数,取值在0000H~0FFFFH之间。⑶Rn:工作寄存器,n=0~7,即工作寄存器组中的一个工作寄存器。⑷Ri:用于寄存器间接寻址的工作寄存
2、器,i=0或1,即工作寄存器R0和R1。⑸direct:8位直接地址,片内RAM地址00H~0FFH。⑹addr11:11位目的地址。⑺addr16:16位目的地址。⑻bit:位地址。⑼DPTR:双数据指针寄存器⑽Pi:MCS-51单片机的I/O口,i=0~3。⑾@:寄存器间接寻址前缀。⑿rel:8位带符号地址偏移量。⒀$:当前指令的地址。⒁(X):片内RAM单元X中的内容。⒂((X)):X中的内容所指向单元的内容。⒃←:左边的内容被右边的内容所取代。§2.2寻址方式2.2.1直接寻址直接寻址:指令中直接给出操作数存储地址的寻址方式。1.寻址范围。(1)片内RAM的低128
3、单元。(2)特殊功能寄存器SFR。2.使用注意事项寻址特殊功能寄存器SFR时,可以用直接地址,也可以用寄存器名。INCA;A内容加1,寄存器寻址方式INCACC;直接寻址方式INC0E0H;直接寻址方式2.2.2立即寻址立即寻址:在指令中直接给出操作数的寻址方式。例如:将十进制数200传送到累加器A中。MOVA,#0C8HMOVA,#200MOVA,#11001000B2.2.3寄存器寻址寄存器寻址:操作数存放于寄存器中的寻址方式。可用于寄存器寻址的寄存器有:(1)四个工作寄存器组中的工作寄存器R0~R7,共32个工作寄存器。(2)特殊功能寄存器,如A、B、DPTR、Pi等
4、。2.2.4寄存器间接寻址寄存器间接寻址:操作数的地址存放在寄存器中的寻址方式。1.寻址范围(1)片内RAM256B地址单元。(2)对片外RAM64KB地址单元。例如:将片内RAM55H单元的数据50H传送到累加器A中。指令如下:MOVR0,#55HMOVA,@R0;执行结果(A)=50H例如:将片外RAM0500H单元的数据50H传送到累加器A中。指令如下:MOVDPTR,#0500HMOVXA,@DPTR2.使用注意事项(1)为区别寄存器寻址方式,作为寄存器间接寻址的寄存器前面加@。(2)寄存器间接寻址方式不能用于对特殊功能寄存器SFR的寻址。例如:MOVR0,#0F0
5、H;MOVA,@R0(3)堆栈操作指令也是间接寻址方式,它以堆栈指针SP作为间接寻址寄存器。2.2.5变址寻址变址寻址:以DPTR或PC中的数据为基本地址,以A中的数据为地址偏移量,基地址与地址偏移量之和作为被寻址数据地址的寻址方式。查表操作指令为:MOVCA,@A+PCMOVCA,@A+DPTR例如:将程序存储器050AH单元中的常数50H送到累加器A中。指令如下:MOVA,#0AHMOVDPTR,#0500HMOVCA,@A+DPTR几点说明:(1)变址寻址方式只能对程序存储器进行寻址,因此只能用于读取数据,而不能用于存放数据,它主要用于查表操作。(2)变址寻址指令只有
6、3条:MOVCA,@A+PCMOVCA,@A+DPTRJMP@A+DPTR2.2.6相对寻址相对寻址:在执行程序的过程中,CPU寻找相对于当前程序计数器PC值的下一条指令地址的寻址方式。例如:当程序状态字寄存器PSW的最高位时,程序转移到标号为LOOP的语句执行。ORG0000HSJMPMAINORG0030HMAIN:SETBCJCLOOP…………LOOP:MOVA,#30H……………2.2.7位寻址位寻址:针对可位地址的片内RAM空间和可位寻址的特殊功能寄存器进行寻址的方式。(1)内部RAM的位寻址区,共16个单元的128位,单元地址为20H~7FH,位地址的表示方法可
7、以用直接位地址或单元地址加位的表示方法。例如:将2FH单元的最高位的值传送到PSW.7。指令如下:MOVC,7FHMOVC,2FH.7(2)特殊功能寄存器SFR中可位寻址的寄存器共11个,其位地址在指令中有4种表达方式。例如:对程序状态字PSW寄存器辅助进位位AC进行操作①直接使用位地址:MOVC,0D6H②位名称表示法:MOVC,AC③单元地址加位的表示法:MOVC,0D0H.6④专用寄存器符号加位的表示法:MOVC,PSW.6§2.3数据传送类指令2.3.1内部数据传送指令MOV<目的操作数>,<源操作数>;注
此文档下载收益归作者所有