将片外RAM2000H单元的内容送入片内RAM20H单元中 汇编语言写。 我看例题是这么写的 MO

将片外RAM2000H单元的内容送入片内RAM20H单元中
汇编语言写。
我看例题是这么写的
MOV DPTR,#2000H
MOVX A,@DPTR
MOV 20H,A
我想的是直接
MOVX A,2000H
MOV 20H,A
不就完了干嘛要经过DPTR呢?

不可以

MOVX A,2000H  就 没有该条指令

访问外部RAM,只有通过DPTR或Ri(R0/R1)间接寻址

如果用R0或R1寻址,只能寻址256个地址,而DPTR是16位寄存器,可寻址范围64KB

看一下教科书:

追问

大神你看这道题这么写行嘛?

不 更简单点应该这样
MOV @R0,10H
MOVX 20H,@R0

大神我看书上是这么写的但是计算机怎么知道20H是外部存储单元而不是内部的呢?

要是把那句最后一句MOVX改为mov是不是就是交换内部RAM这两个单元的内容了,谢谢大神 我是完全小白,

追答

这就是mov 和 MOVX 的区别

MOV R0,#20H;送地址入R0寄存器
MOV A,10H;送内部数到A
MOVX @R0,A;将A的内容送到外部去

追问

大神再问你个问题啊,怎么判断他是个位地址还是个直接地址啊,比如我写了个MOV A,20H你怎么知道我写的是20H这个单元的地址不是位寻址区里的24H.0呢,我写个MOV A,00H到底是代表工作寄存器区的单元还是位寻址区的那个小单元呢?

谢谢你了!

追答

位传送和字节传送指令格式完全不一样 。

温馨提示:内容为网友见解,仅供参考
第1个回答  2019-11-09
累加器A只能存8位 DPTR可以存16位2000H转换成2进制是十六位的

将片外RAM2000H单元的内容送入片内RAM20H单元中 汇编语言写。 我看例题...
MOVX A,2000H 就 没有该条指令 访问外部RAM,只有通过DPTR或Ri(R0\/R1)间接寻址 如果用R0或R1寻址,只能寻址256个地址,而DPTR是16位寄存器,可寻址范围64KB 看一下教科书:

ROM 2000H单元中的内容传送到内部RAM 20H单元中(用汇编语言编写)
MOV @20H, A ; 将 A 寄存器中的内容传送到 RAM 20H 单元 END ; 程序结束 ```解释如下:1. `ORG 0000H`:设置程序的起始地址为 0000H。2. `MOV DPTR, #2000H`:将 ROM 2000H 单元的地址存入 DPTR 寄存器中。3. `MOV A, #0FFH`:将 A 寄存器赋值为 0FFH,为了在后面传送数据时能够...

单片机题目 编写程序将外部RAM2000H单元的内容传送到内部RAM20H中的操作...
Mov dptr,#2000h Movx a,@dptr Mov 20h,a 供参考。

...实现把外部RAM 2000H单元的内容传到内部RAM 20H中去.怎么编呢?_百 ...
上面的错了。1年没接触了,给搞乱了。 MOV DPTR,#2000H MOV R6,#20H CLR A MOVX A,@DPTR MOV @R6,A RET

汇编语言中如何将rom中的数据传送到ram中
假设您使用的是8051单片机,下面是一种可能的汇编语言代码实现,将ROM 2000H单元中的内容传送到内部RAM 20H单元中:cssCopy codeMOV DPTR,#2000H ; 将ROM地址2000H的内容存储到DPTR寄存器中MOV A,@DPTR ; 将DPTR寄存器中地址对应的ROM中的值传送到累加器A中MOV @20H,A ; 将累加器A中的值传送到...

ROM的2000H单元内容送R0,送内部RAM的20H单元,送外部RAM的20H单元。用...
MOV DPTR,#2000H CLR A ; A=0 MOVC A,@A+DPTR ; A = ( A+DPTR)MOV R0,A MOV 20H,A

请问如何将片外RAM20H单元的内容送片内RAM20H呢?
20H单元。(7)ROM 2000H单元的内容送片外RAM 20H单元。解:(1)R1的内容传送到R0;MOV A, R1 MOV R0, A (2)片外RAM 20H单元内容送R0。MOV R1, #20H MOVX A, @R1 MOV R0, A (3)片外RAM 20H单元的内容送片内RAM 20H单元。MOV R0, #20H MOVX A, @R0 MOV 20H, A ...

编写一段程序,将外部ram中2000h~2020h单元的内容送入内部ram的30h~50h...
mov r0,#40h mov dptr,#2000h mov a,@r0 movx,@dptr,a inc r0 inc dptr mov a,@r0 mov @dptr,a inc

...块搬迁程序.将外部RAM2000H-202FH单元中的内容,按由小到大的顺序移...
只是搬迁?看题意,好像,还要排序。

将ROM 2000H单元的内容送片内RAM的20H单元中,为什么需要清零A呢?_百度...
A里面是偏移量,所以如果你直接读取DPTR地址的话,A需要清零,如果不是,比如上例读取2001H的地址,那么A需要赋值1,即:mov dptr,#2000h mov a,#1 movc a,@a+dptr

相似回答