六、相对寻址 以当前的PC值加上指令中给出的地址偏移量e而 形成的实际地址。 相对寻址只出现在相对转移指令中。 月的地址=源地址+指令的字数(2或3)+rel rel=的地址一源地址-指令的字节数(2或3) re:-128~+127用补码表示,大于0正向跳转, 小于0则反向跳转。 如:JC SJMP NEXTI FIRST DJNZ RI, LOOP2
六、相对寻址 以当前的PC值加上指令中给出的地址偏移量rel而 形成的实际地址。 相对寻址只出现在相对转移指令中。 目的地址=源地址+指令的字节数(2或3) +rel rel =目的地址--源地址--指令的字节数(2或3) rel:-128~+127 用补码表示,大于0正向跳转, 小于0则反向跳转。 如:JC rel SJMP NEXT1 JZ FIRST DJNZ R1,LOOP2
w刚程序存储器7 地址 CY=1 JC rel (PC) 1000H|01000000 rel=75H 1001H01110101 1002H ℃)=1002H (PC) 1077H····· Alu 1077H 图3-3相对寻址(C75H)示意图
七、位寻址 位操作指令中的操作数是位地址。用“bit”示 位寻址区域 在片内RAM中 (1)20H~2HH16个单元的128位(00H~7FH) (2)字节地址能被8整除的11个SFR中的位(80H~FFH 2、位地址的表示方法 (1)直接用位地址如:00H、7FH、82H、0BOH (2)用特殊功能寄存器名加位数如:PSW.3P1.2 (3)用位名 如:TRO、EX0 (4)用bi定义的有名字的位地址 3、位寻址例子 MOV C, 00H SETB PSW.3 CLR TRI JB OIH, NEXT2
七、位寻址 位操作指令中的操作数是位地址。用“bit”示 1、位寻址区域 在片内RAM中: (1)20H~2FH16个单元的128位(00H~7FH) (2)字节地址能被8整除的11个SFR中的位(80H~FFH) 2、位地址的表示方法 (1)直接用位地址 如:00H、7FH、82H、0B0H (2)用特殊功能寄存器名加位数 如:PSW.3 P1.2 (3)用位名 如:TR0、 EX0 (4)用bit定义的有名字的位地址 3、位寻址例子 MOV C,00H SETB PSW.3 CLR TR1 JB 01H,NEXT2
322寻址空间及符号注释 寻址空间 表3-1操作数寻址方式和有关空向 寻址方式 寻址空间 立即数寻址 程序存储器ROM 片内RAM低128B 直接寻址 特殊功能寄存器 工作寄存器R0~R7 寄存器寻址 A, B, C, DPTR 片内RAM低128B[@R0@R1SP(仅PUSH,POP)] 寄存器间接寻址 片外RAM(@R0,@R1,@DPTR) 变址寻址 程序存储器(@A+PC,@A+DPTR) 相对寻址 程序存储器256B范围(PC+偏移量) 位寻址 片内RAM的20H~2FH字节地址 部分特殊功能寄存器
3.2.2 寻址空间及符号注释 一、寻址空间
寻址方式中的常用符号注释 1、Rn(n=0~7)示当前选中的工作寄存器R0~R7 2、Ri(i=0,1) 示当前选中的、作地址指针的寄存器R0、R1 3、#data 示8位立即数 4、#data16 示16位立即数 如: MOV DPTR,#data16 5、 direct8位片内RAM单元(包括SFR)的直接地址 如: MOV direct,#data data→ direct 6、addr11 11位目的地址,用于 ACALL和AJMP指令中 7、addr16 16位目的地址,用于 LCALL和LJMP指令中
二、寻址方式中的常用符号注释 1、Rn(n=0~7) 示当前选中的工作寄存器R0~R7 2、Ri(i=0,1) 示当前选中的、作地址指针的寄存器R0、R1 3、#data 示8位立即数 4、#data16 示16位立即数 如:MOV DPTR,#data16 5、direct 8位片内RAM单元(包括SFR)的直接地址 如:MOV direct,#data ;#data→direct 6、addr11 11位目的地址,用于ACALL和AJMP指令中 7、 addr16 16位目的地址,用于LCALL和LJMP指令中