几道单片机 习题 谢谢大家了 我会加分的

2024-12-03 14:09:22
推荐回答(2个)
回答1:

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

回答2:

456-569+5689