6.相对寻址 当前PC值加上指令中规定的偏移量re1,构成实 际的操作数地址 例: SJMP rel 操作:跳转到的目的地址=当前16位PC值+re1 注意: 1)“当前PC值”指程序中下一条指令所在的首 地址,是一个16位数; 2)符号“rel”表示“偏移量”,是一个带符号的 单字节数,范围是:-128+127(80H7FH 在实际编程中,“re”通常用标号代替
当前PC值加上指令中规定的偏移量 rel,构成实 际的操作数地址 例: SJMP rel 操作:跳转到的目的地址 = 当前16位PC值 + rel ⒍ 相对寻址 注意: 1)“当前PC值”指程序中下一条指令所在的首 地址,是一个16位数; 2)符号“rel”表示“偏移量” ,是一个带符号的 单字节数,范围是:-128—+127(80H—7FH) 在实际编程中, “rel” 通常用标号代替
例:2000H:SJMP08H; 原PC值为2000H;执行这条指令后的当前PC 值为2002H,rel为08H。2002H+08H=200AH,转 移目的地址为200AH,程序就跳转至200AH去执行 右图为SJMP08H相对0098M.码小 寻址示意图 在实际编程中 re 通常用标号代替 例: SJMP LOOP1
在实际编程中, “rel” 通常用标号代替 例:SJMP LOOP1 例:2000H:SJMP 08H ; 原PC值为2000H;执行这条指令后的当前PC 值为2002H,rel为08H。2002H+08H=200AH,转 移目的地址为200AH,程序就跳转至200AH去执行 了。 右图为SJMP 08H相对 寻址示意图
7.位寻址 位寻址是对内RAM和特殊功能寄存器中的 可寻址位进行操作的寻址方式。 指令中直接给出了操作数所在的位地址。 例:CLRP1.0;(P1.0)←0 SETB ACC.7;(ACC.7)←1 CPL C (C)←NOT(C) MOVC,07H;将位地址07H(字节 地址20H中最 高位)中的数据传 送至进位位Cy
;将位地址07H(字节 地 址 20H 中 最 高位)中的数据传 送至进位位Cy。 ⒎ 位寻址 位寻址是对内RAM和特殊功能寄存器中的 可寻址位进行操作的寻址方式。 MOV C,07H 指令中直接给出了操作数所在的位地址。 例: 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等,有 的位地址则“不太明确”,如: MOVA,17H;(A)←(17H),1TH是字节地址 MOv ACC.0,17H;(ACC.0)←(17H,这里 ACC.0是位地址所以该指令中的17H是22H单元的 第7位
注意: 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位
§3-2指令系统 功能分五类,共111条指令 数据传送类指令 算术运算类指令 逻辑运算及移位指令 位操作类指令 控制转移类指令
§3-2 指令系统 功能分五类,共111条指令 数据传送类指令 算术运算类指令 逻辑运算及移位指令 位操作类指令 控制转移类指令