七种寻址方式
*********************************************************
【立即寻址】
MOV A,#20H ;20H数据传送给累加器A
MOV DPRT,#1020H ;10给DPRT的DPH高8位,20给DPRT的DPL低8位
【直接寻址】
MOV A,10H ;将10H单元的内容给A
MOV A,P1
SETB EA
【寄存器寻址】
MOV A,R2 ;将R2的内容给A。
【寄存器间接寻址】
MOV R0,#10H
MOV A,@R0
【变址寻址】
以数据指针DPRT或程序计数器PC作基址寄存器,以累加器A作偏移地址寄存器,
并以两内容相加形成的16位作为操作数地址。主要用于查表操作。
只对程序存储器进行寻址。64KB。
MOVC A,@A+DPTR
MOVC A,@A+PC
JMP @A+DPTR
【相对寻址】
SJMP 10H
【位寻址】
按位进行寻址操作。
MOV C,21H
MOV C,P1.0
*********************************************************
【堆栈操作】
1.
20H与A中内容交换。
解答:MOV 20H,#05H
MOV A,#01H
PUSH ACC
PUSH 20H
POP 20H
POP ACC
注意: 堆栈 先进后出
2.
将片内RAM 60H单元与61H单元的数据交换
MOV A,60H
XCH A,61H
MOV 60H,A
3.将外部RAM中0010H单元中的内容送入外部RAM中的2000H单元中
MOV R0,#0010H
MOVX A,@R0
MOV DPTR,#2000H
MOVX @DPRT,A
4.
将累加器A的高四位传送给P1口高四位,但P1低四位不变。
解答:
MOV R0,A
ANL A,F0H
ANL P1,0FH
ORL P1,A
MOV A,R0
5.
将累加器A中无符号数乘2
(1)CLR C
RLC A ;进位左移一位相当于乘2
(2)MOV B,#2
MUL A,B ;乘法
|