寻址方式中常用符号注释Rn(n=0~7),当前选中的工作寄存器组RO~R7。Ri(i=0,.1),当前选中的工作寄存器组中可以用于寄存器间接寻址的的两个工作寄存器RO、R1。#data,8位立即数,即包含在指令中的8位操作数。#data16,16位立即数,即包含在指令中的16位操作数。direct,8位片内RAM单元(包括SFR)的直接地址。addr11,11位目的地址,用于ACALL和AJMP指令中。addr16,16位目的地址,用于LCALL和LJMP指令中。rel,补码形式的8位地址偏移量,以下条指令第一字节地址为基值。地址偏移量在-128~+127范围内。:bit,片内RAM或SFR的直接寻址位地址。@,间接寻址方式中,表示间接寻址的符号
▪ 寻址方式中常用符号注释 ▪ Rn (n=0~7),当前选中的工作寄存器组R0~R7。 ▪ Ri (i=0,1),当前选中的工作寄存器组中可以用 于寄存器间接寻址的的两个工作寄存器R0、R1。 ▪ #data,8位立即数,即包含在指令中的8位操作数。 ▪ #data16,16位立即数,即包含在指令中的16位操 作数。 ▪ direct,8位片内RAM单元(包括SFR)的直接地址。 ▪ addr11,11位目的地址,用于ACALL和AJMP指令中。 ▪ addr16,16位目的地址,用于LCALL和LJMP指令中。 ▪ rel,补码形式的8位地址偏移量,以下条指令第一 字节地址为基值。 ▪ 地址偏移量在-128~+127范围内。 ▪ bit,片内RAM或SFR的直接寻址位地址。 ▪ @,间接寻址方式中,表示间接寻址的符号
3. 2数据传送指令3.2.1内部RAM数据传送指令内部RAM数据传送指令共有15条,用于8051单片机片内数据存储器和寄存器之间的数据传送1.以累加器A为目的操作数的指令操作汇编指令格式机器指令格式A ← (Rn)MOVA,RnE8H~EFHMOVE5H directA ← (direct)A,directMOVA ← ((Ri))A,@RiE6HE7H74HMOVdataA ← #dataA,#data注意:上述操作不影响源字节和任何别的寄存器内容,只影响PSW的P标志位
3.2 数据传送指令 ▪ 3.2.1 内部RAM数据传送指令 ▪ 内部RAM数据传送指令共有15条,用于8051单片机片内数 据存储器和寄存器之间的数据传送。 1. 以累加器A为目的操作数的指令 汇编指令格式 机器指令格式 操 作 MOV A,Rn E8H~EFH A ← (Rn) MOV A,direct E5H direct A ← (direct) MOV A,@Ri E6H~E7H A ← ((Ri)) MOV A,#data 74H data A ← #data 注意:上述操作不影响源字节和任何别的寄存器内容,只影响 PSW的P标志位
2.以寄存器Rn为目的操作数的指令操作汇编指令格式机器指令格式MOVRn,ARn ← (A)F8H~FFHMOVRn←(direct)Rn,directA8H~~AFHdirectMOV78H~7FHdataRn ← #dataRn,#data注意:8051指令系统中没有“MOVRn,@Ri"和“MOVRn,Rn”传送指令,也没有“MOV@Ri,@Ri”指令
2. 以寄存器Rn为目的操作数的指令 汇编指令格式 机器指令格式 操 作 MOV Rn,A F8H~FFH Rn ← (A) MOV Rn,direct A8H~AFH direct Rn ← (direct) MOV Rn,#data 78H~7FH data Rn ← #data 注意:8051指令系统中没有“MOV Rn,@Ri”和“ MOV Rn,Rn”传送指令,也没有“MOV @Ri,@Ri”指令
3.以直接地址为目的操作数的指令操作汇编指令格式机器指令格式MOV direct,AF5Hdirectdirect← (A)direct←(Rn)MOVdirect,Rn88H~8FHdirectMOVdirect2,direct185Hdirect1direct2direct2←(direct1)MOV direct,@Ri86H~87Hdirectdirect ← ((Ri)MOV direct,#data75Hdirectdatadirect←#data注意:“MOVdirect2,direct1"指令在译成机器码时,源地址在前,目的地址在后。如“MOV50H,90H”的机器码为“859050
3. 以直接地址为目的操作数的指令 汇编指令格式 机器指令格式 操作 MOV direct,A F5H direct direct ← (A) MOV direct,Rn 88H~8FH direct direct ← (Rn) MOV direct2,direct1 85H direct1 direct2 direct2 ← (direct1) MOV direct,@Ri 86H~87H direct direct ← ((Ri)) MOV direct,#data 75H direct data direct ← #data 注意:“MOV direct2,direct1”指令在译成机器码时,源地 址在前,目的地址在后。如“MOV 50H,90H”的机器码为 “85 90 50”
4.间接地址为目的操作数的指令操作汇编指令格式机器指令格式MOVF6H~F7H@Ri,A(Ri) <←一 (A)MOVA6H~A7Hdirect@Ri,direct(Ri)←一 (direct)MOV76H~77Hdata(Ri) ← data@Ri,#data注意:(Ri)表示以Ri中的内容为地址所指定的RAM单元5.十六位数据传送指令操作汇编指令格式机器指令格式DPH←dataHMOVDPTR,#data1690HdataHdataLDPL←dataL注意:这是唯一的16位立即数传送指令
4. 间接地址为目的操作数的指令 汇编指令格式 机器指令格式 操 作 MOV @Ri,A F6H~F7H (Ri) ← (A) MOV @Ri,direct A6H~A7H direct (Ri) ← (direct) MOV @Ri,#data 76H~77H data (Ri) ← data 注意:(Ri)表示以Ri中的内容为地址所指定的RAM单元。 5. 十六位数据传送指令 汇编指令格式 机器指令格式 操 作 MOV DPTR,#data16 90H dataH dataL DPH ← dataH, DPL ← dataL 注意:这是唯一的16位立即数传送指令