3-1汇编语言与指令系统 位操作数的前缀,表示对该位数操作 取反,如/bit。 (×)一片内RAM的直接地址或寄存器。 ((×))一由×寻址的单元中的内容。 箭头左边的内容被箭头右边的内 容所代替
/ —— 位操作数的前缀,表示对该位数操作 取反,如/bit。 (×) —— 片内RAM的直接地址或寄存器。 ((×))—— 由×寻址的单元中的内容。 —— 箭头左边的内容被箭头右边的内 容所代替。 3-1 汇编语言与指令系统
3-2 51单片机指令的寻址方式 寻址方式:指令按地址获得操作数的方式 七种寻址方式,一条指令可能含多种寻址方式。 ◆立即寻址 直接寻址 ◆ 寄存器寻址 ◆寄存器间接寻址 ·变址寻址(基址寄存器+变址寄存器间接寻址) 相对寻址 。位寻址
立即寻址 直接寻址 寄存器寻址 寄存器间接寻址 变址寻址(基址寄存器+变址寄存器间接寻址) 相对寻址 位寻址 寻址方式:指令按地址获得操作数的方式 七种寻址方式,一条指令可能含多种寻址方式。 3-2 51单片机指令的寻址方式
3一251单片机指令的寻址方式 1.立即寻址 指令中直接给出操作数的寻址方式。立即操作数用前面加有 #号的8位或16位数来表示。 例如:MOV A,#60H ;A←#60H MOV DPTR,3400H ;DPTR←-#3400H MOV30H,#40H;30H单元←#40H ·上述三条指令执行完后,累加器A中数据为立即数据60H, DPTR寄存器中数据为3400H,30H单元中数据为立即数 40H。 注意:符号“#”表明其后跟的是立即数, 立即数—就是数字量本身
1.立即寻址 • 指令中直接给出操作数的寻址方式。立即操作数用前面加有 #号的8位或16位数来表示。 例如:MOV A,# 60H ;A←#60H MOV DPTR,# 3400H ;DPTR←#3400H MOV 30H,# 40H ;30H单元←#40H • 上述三条指令执行完后,累加器A中数据为立即数据60H, DPTR寄存器中数据为3400H,30H单元中数据为立即数 40H。 注意:符号“#”表明其后跟的是立即数, 立即数——就是数字量本身。 3-2 51单片机指令的寻址方式
3一2 51单片机指令的寻址方式 2.直接寻址 指令中直接给出操作数地址的寻址方式,能进行直接寻址的存储空间 有SFR寄存器和内部数据RAM。 例如:MOVR1,1FH;(R1)←-(1FH) MOV 30H,4AH ;(30H)-(4AH 在本单片机中规定:访问特殊功能寄存器SFR只能采用直 接寻址方式。 MOVA,SP;(A)←-(SP) MOVA,81H;(A)←-(SP) 相同 w8N0gu:e5gA 相同 MOVB,30H;(B)←-(30H)
• 指令中直接给出操作数地址的寻址方式,能进行直接寻址的存储空间 有SFR寄存器和内部数据RAM。 例如:MOV R1,1FH ;(R1) ←(1FH) MOV 30H,4AH ;(30H)←(4AH) 相同 相同 2.直接寻址 3-2 51单片机指令的寻址方式 在本单片机中规定:访问特殊功能寄存器SFR只能采用直 接寻址方式。 MOV A, SP ; (A) ←(SP) MOV A, 81H ; (A) ←(SP) MOV P1, #5AH ; (P1)← 5AH MOV 90H,#5AH ; (P1)← 5AH MOV B, 30H ; (B) ←(30H)
3一251单片机指令的寻址方式 在本单片机中访问特殊功能寄存器$FR只能采用直接寻址方 式的原因:SFR分布在80H~0FFH范围内,而52系列单片机有 256字节的片内RAM,其中的80H~0FFH的RAM与SFR所占地 址重叠。 于是规定:80H~OFFH范围内的RAM只能用寄存器间接寻址 方式,而SFR只能用直接寻址方式。从而解决了地址冲突的问题, 例如: ★MOVA,90H等效于MOVA,P1属直接寻址 大MOVA,@R0;[事先已知(R0)=#90H] 执行的操作:A←一(90H)属寄存器间接寻址, 大随意写的指令如:MOVA,85H则是非法的! 20
20 在本单片机中访问特殊功能寄存器SFR只能采用直接寻址方 式的原因:SFR分布在80H~0FFH范围内,而52系列单片机有 256字节的片内RAM,其中的80H~0FFH的RAM与SFR所占地 址重叠。 MOV A, 90H 等效于 MOV A, P1 属直接寻址 MOV A, @R0 ;[事先已知 (R0) = #90H ] 执行的操作:A ←(90H) 属寄存器间接寻址, 随意写的指令如:MOV A, 85H 则是非法的! 于是规定: 80H~0FFH范围内的RAM只能用寄存器间接寻址 方式,而SFR只能用直接寻址方式。从而解决了地址冲突的问题。 例如: 3-2 51单片机指令的寻址方式