Q变址寻址(P47) 也称为:基址寄存器+变址寄存器间接寻址 以16位的地址指针寄存器DPTR或16位的PC寄存 器为基址寄存器,以累加器A为变址寄存器,两者 中的“内容”形成一个16位的“地址”,该“地址” 所指的存储单元中的内容才是操作数。 P47例:[设:A中已存有#A4H,DPTR中已存有 234H] MOVC A @A+DPTR,(A)+((A)+(DPTR) 操作将A4H+1234H=12D8H单元中的数放进累 加器A 《单片机原理与应用技术》教学堁件
《单片机原理与应用技术》教学课件 变址寻址——(P.47) 也称为: 基址寄存器+变址寄存器间接寻址 以16位的地址指针寄存器DPTR或 16位的PC寄存 器为基址寄存器,以累加器 A 为变址寄存器,两者 中的“内容”形成一个16位的“地址”,该“地址” 所指的存储单元中的内容才是操作数。 P47例:[设:A中已 存有#A4H,DPTR中已存 有 #1234H] MOVC A,@A+DPTR;(A)←((A)+(DPTR)) 操作:将A4H+1234H=12D8H单元中的数放进累 加器A
相对寻址—(P47) 当前PC值加上指令中规定的偏移量rel,构成实际 的操作数地址 例: SJMP rel 操作:跳转到的目的地址=当前16位PC值+rel 1)“当前PC值”指程序中下一条指令所在的首地 址 是一个16位数; 符号“re”表示“偏移量”,是一个带符号的单字 《单片机原理与应用技术》教学堁件
《单片机原理与应用技术》教学课件 相对寻址——(P.47) 当前PC值加上指令中规定的偏移量 rel,构成实际 的操作数地址 例: SJMP rel 操作:跳转到的目的地址 = 当前16位PC值 + rel 注意: 1)“当前PC值”指程序中下一条指令所在的首地 址, 是一个16位数; 2)符号“rel”表示“偏移量” ,是一个带符号的单字 节数在实际编程中 ,范围是:-128 , “—rel +127 ” 通常用标号代替 (80H—7FH)
位寻址—(P48) 指令中直接给出了操作数所在的位地址 例:CLRP1.0;(P1.0)←0 SETB ACO.7;(ACC.7)←1 cPLC:(C)←NOT(C 注意 1)位地址里的数据只可能是一个0或1 2)有的位地址十分明确如P1.0,ACC.7等, 有的位地址则“不太明确”,如 OVA,17H;(A)←(17H),17H是字节地址 oACC.0,17H:(ACC.0)←(17H),这里ACC0 是位所以该指令中的是22H单元的第7位 《单片机原理与应用技术》教学堁件
《单片机原理与应用技术》教学课件 位寻址——(P.48) 指令中直接给出了操作数所在的位地址。 例: CLR P1.0 ;(P1.0) ← 0 SETB ACC.7 ;(ACC.7)← 1 CPL C ;( C )← NOT( C ) 注意: 1)位地址里的数据只可能是一个 0 或 1 2)有的位地址十分明确,如 P1.0, ACC.7等, 有的位地址则“不太明确” ,如: [MOV A,17H ; (A)←(17H),17H是字节地址] MOV ACC.0,17H ;(ACC.0)←(17H),这里ACC.0 是位地址所以该指令中的17H是22H单元的第7位
片内RAM中有128个 位可按位寻址的位 D7 D6 D5 D4 D3 D2 DI DO 位地址:00H-7F 2FH 7F ZE 7D 7C 7B'7A 79 78 分布在:20H-2FH 单元; 位地址 另外,在SFR中还有 92个位可按位寻址 28H14746454443424140 FFH 总共 2713F3E3D3C3B3A3938 128 52子系列才有 26H3736353433323130 的RAM区 25H2F2E2D2C2B2A2928 按位 寻址 24H2726 25242322120的位 普通RAM区 23H IF IE ID IC 1B 1A 19 18 2[1716151413121l 10 位寻址区 2110F0E0D0C0B0A0908 工作寄存器区 201107106050403020100 单元地址 《单片机原理与应用技术》教学堁件
《单片机原理与应用技术》教学课件 ⚫ 片内RAM中有128个 位可按位寻址的位, 位地址:00H—7FH 分布在:20H—2FH 单元; ⚫ 另外,在SFR中还有 92个位可按位寻址 00H 20H 2FH 7FH 1FH 30H 80H FFH 52子系列才有 的RAM区 普通RAM区 位寻址区 工作寄存器区 27H 22H 21H 20H 26H 24H 25H 23H 28H 07 06 05 04 03 02 01 00 0F 0E 0D 0C 0B 0A 09 08 17 16 15 14 13 12 11 10 1F 1E 1D 1C 1B 1A 19 18 27 26 25 24 23 22 21 20 2F 2E 2D 2C 2B 2A 29 28 37 36 35 34 33 32 31 30 3F 3E 3D 3C 3B 3A 39 38 47 46 45 44 43 42 41 40 2FH 7F 7E 7D 7C 7B 7A 79 78 位地址 总共 128 个可 按位 寻址 的位 单元地址 17 D7 D6 D5 D4 D3 D2 D1 D0
位寻址(P48) 指令中直接给出了操作数所在的位地址 例:CLRP1.0;(P1.0)←0 SETB ACO.7;(ACC.7)←1 cPLC;(C)←NOT(C) 注意 1)位地址里的数据只可能是一个0或1 2)有的位地址十分明确如P1.0,ACC.7等 有的位地址则“丕太明确”,如 MoVA,17H;(A)←(17H),17H是字节地址] MOVACO.0,17H;(ACC.0)←(17H)这里ACC.0 是位所以该指令中的是22H单元的第7位 器士 《单片机原理与应用技术》教学堁件
《单片机原理与应用技术》教学课件 位寻址——(P.48) 指令中直接给出了操作数所在的位地址。 例: CLR P1.0 ;(P1.0) ← 0 SETB ACC.7 ;(ACC.7)← 1 CPL C ;( C )← NOT( C ) 注意: 1)位地址里的数据只可能是一个 0 或 1 2)有的位地址十分明确,如 P1.0, ACC.7等, 有的位地址则“不太明确” ,如: [MOV A,17H ; (A)←(17H),17H是字节地址] MOV ACC.0,17H ;(ACC.0)←(17H),这里ACC.0 是位地址所以该指令中的17H是22H单元的第7位