例如:有双字节相对转移指令 指令地址操作码操作数指令注释 3000H 80 54H SJMP rel PC+(PC)+2+rel 其中,操作码80H存放在 ROM PC 3000H单元中,54H是设定的 54H 30H 02H 3000H80H 相对偏移量rel,存放在3001H 3001H54H 3002H XX 单元。指令的执行过程如图24 所示。 3056H XX 图2-4相对寻址示意图 十一五国家级规为教材(高职高专) 高等教育出版社 HIGHER EDUCATION PRESS
其中,操作码80H存放在 3000H单元中,54H是设定的 相对偏移量rel,存放在3001H 单元。指令的执行过程如图2-4 所示。 例如:有双字节相对转移指令 指令地址 操作码 操作数 指令 注释 3000H 80 54H SJMP rel ;PC← (PC)+2+rel
7.位寻址 ◆位寻址是将8位二进制数中的某一位作为操作数,在指 令中给出的是位地址,一般用bit表示。 例如:CLRP1.0;将P1口的第0位清零 ◆位寻址的范围为: 片内RAM区的20H~2FH的16个单元中的128位, 如 MOV C, 30H 字节地址能被8整除的SFR 如 SETB P1.0 十一五国家级规为教材(高职高专) 高等教育出版社 HIGHER EDUCATION PRESS
7.位寻址 ◆ 位寻址是将8位二进制数中的某一位作为操作数,在指 令中给出的是位地址,一般用bit表示。 例如: CLR P1.0 ;将P1口的第0位清零 ◆ 位寻址的范围为: ➢片内RAM区的20H~2FH的16个单元中的128位, 如 MOV C,30H ➢字节地址能被8整除的SFR, 如 SETB P1.0
表2-2寻址方式及寻址空间 寻址方式 描述方法 寻址空间 立即数寻址 #data 程序存储器 寄存器寻址 R0~R7、A、DPTR工作寄存器 直接寻址 rect 内部RAM和SFR aR0、aR、SP 内部数据存储器 寄存器间接寻址cR0、@R1 外部数据存储器 ODPTR 变址寻址 @A+DPTR、@A+PC程序存储器 相对寻址 PC+rel 程序存储器 位寻址 Bit 位地址空间 十一五国家级规为教材(高职高专) 高等教育出版社 HIGHER EDUCATION PRESS
表2-2 寻址方式及寻址空间 寻址方式 描述方法 寻址空间 立即数寻址 #data 程序存储器 寄存器寻址 R0~R7、A、DPTR 工作寄存器 直接寻址 direct 内部RAM和SFR 寄存器间接寻址 @R0、@R1、SP 内部数据存储器 @R0、@R1、 @DPTR 外部数据存储器 变址寻址 @A+DPTR、@A+PC 程序存储器 相对寻址 PC+rel 程序存储器 位寻址 Bit 位地址空间
2.2数据传送指令(29条) 2.2.1通用传送指令 通用传送指令的助记符为M0V(Move),格式如下: M0V<目的操作数>,<源操作数 此类指令的功能是把源操作数指定的数据传送到目的 操作数(目的地址)所指定的存储单元中。MOV指令的传 送关系如图2-5所示 Direct(直接寻址 Ri〔间接寻址〕 A〔累加器〕 Rn〔工作寄存器 ata〔立即数 十一五国家级规为教材(高职高专) 高等教育出版社 HIGHER EDUCATION PRESS
2.2 数据传送指令(29条) 2.2.1通用传送指令 通用传送指令的助记符为MOV(Move),格式如下: MOV <目的操作数>,<源操作数> 此类指令的功能是把源操作数指定的数据传送到目的 操作数(目的地址)所指定的存储单元中。MOV指令的传 送关系如图2-5所示
例1设内部RAM中(50H)=40H,(40H)=10H,P1口作输入口, (P1)=0ABH,问程序执行后各存储器中的数据是什么? MOVR0,#50;立即数50H送R0中,(R0)=50H MOVA,@R0;R0间接寻址,将50H单元内容送A,(A)=40H MOV R1, A A送R1,(R1)=40H MOVB,@R1;R1间接寻址,将40H单元内容送B,(B)=10H MOV@R1,P1;将P1内容送40H单元,(40H)=0ABH MOVP2,P1;将P1内容送P2,(P2)=0ABH 执行结果 (R0)=50H,(A)=40H,(R1)=40H (B)=10H,(P1)=0ABH,(40H)=0ABH (P2)=0ABH 任何不符合格式要求的“指令”都是不合法的。 十一五”国家级规为教材(高职高专) 高等教育出版社 HIGHER EDUCATION PRESS
例1 设内部RAM中(50H)=40H,(40H)=10H,P1口作输入口, (P1)=0ABH,问程序执行后各存储器中的数据是什么? MOV R0,#50H ;立即数50H送R0中,(R0)=50H MOV A,@R0 ;R0间接寻址,将50H单元内容送A,(A)=40H MOV R1,A ;A送R1,(R1)=40H MOV B,@R1 ;R1间接寻址,将40H单元内容送B,(B)=10H MOV @R1,P1 ;将P1内容送40H单元,(40H)=0ABH MOV P2,P1 ;将P1内容送P2 ,(P2)=0ABH 执行结果: (R0)=50H,(A)=40H,(R1)=40H (B)=10H,(P1)=0ABH,(40H)=0ABH (P2)=0ABH 任何不符合格式要求的“指令”都是不合法的