1 R1的内容送RO
MOV A, R1
MOV R0, A
2 内部RAM 20H 单元的内容送R1
MOV R1, 20H
3 外部RAM 20H 单元的内容送内部20H单元
MOV R0, #20H
MOVX A, @R0
MOV @R0, A
4 外部RAM 1000H 单元的内容送内部 RAM 20H单元
MOV DPTR, #1000H
MOVX A, @DPTR
MOV 20H, A
5 程序存储器2000H 单元的内容送RO
MOV DPTR, #2000H
CLR A
MOVC A, @A+DPTR
MOV R0, A
6 程序存储器 2000H 单元的内容送内部 RAM 20H 单元
MOV DPTR, #2000H
CLR A
MOVC A, @A+DPTR
MOV 20H, A
7 程序存储器 2000H单元的内容送外部RAM 20H 单元
MOV DPTR, #2000H
CLR A
MOVC A, @A+DPTR
MOV R0, #20H
MOVX @R0, A
用直接寻址方式.寄存器间接寻址方式.字节交换法和堆栈传递法等四种方法将内部RAM 30H与31H单元的数据交换
直接寻址方式
MOV A, 30H
XCH A, 31H
MOV 30H, A
寄存器间接寻址方式
MOV R0, #30H
XCH A, @R0
INC R0
XCH A, @R0
字节交换法
XCH A, 30H
XCH A, 31H
XCH A, 30H
堆栈传递法
PUSH 30H
PUSH 31H
POP 30H
POP 31H
内部RAM 20H-2FM 单元中的128个位地址与直接地址00H-7FH形式完全相同,如何在指令中区分出位寻址操作和直接寻址操作?
位寻址操作,是在指令中,含有进位位C;直接寻址方式中,没有C。
或者说,指令中含有C的,都是位寻址操作。
设堆栈指令(SP)=60H,内部RAM中的(30H)=24H,(31H)=10H。执行下列程序段后,30H,31H,DPTR及SP中的内容将有何变化?
PUSH 30H ;SP+1 -> SP,(SP)=61H;(61H)=24H
PUSH 31H ;SP+1 -> SP,(SP)=62H;(62H)=10H
POP DPL ;(DPL)=(62H)=10H;SP-1 -> SP,(SP)=61H
POP DPH ;(DPH)=(61H)=24H;SP-1 -> SP,(SP)=60H
MOV 30H , #00H ;(30H)=00H
MOV 31H , #0FFH ;(31H)=FFH
456-569+5689