汇编语言中,指令MOVC A,@A+PC 与指令MOVC A,@A+DPTR的区别是什么? 在什么情况下使用MOVC A,@A+PC ?

在什么情况下使用MOVC A,,@A+DPTR ?

MOVC A,@A+PC是读取地址为A+PC的存储单元里面的内容。

MOVC A,@A+DPTR是读取地址为A+DPTR存储单元的内容。

PC和DPTR的内容不同时,就有区别,还有DPTR可以用指令直接改变其中的值。

这两条都是查表指令,MOVC A,@A+PC,只能给累加器A赋值,所以只能查这条指令所在地址以后256字节范围内的代码或常数。而MOVC A,@A+DPTR,可以给DPTR赋给任何一个16位的地址值,所以查表范围可达整个程序存储器64K字节空间的代码或常数。

语言组成

由于汇编指令系统庞大,因而需构建指令系统体系,其指令数量庞大,格式复杂,可记忆性差等。指令中最难的是指令所支持的寻址方式,其实质就是指令中操作数如何获取。对于处理器而言,就是如何找到他所需的数据。

但对于计算机底层的汇编语言而言,这种寻址方式将涉及大量的计算存储格式,与 复杂的存储管理方式紧密相关,因而难以理解。最后,汇编指令还关系到如何影响标志位,但处理器标志位非常复杂,因而对其机制掌握就比较困难。

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-09-24
首先我想说很佩服你在大年三十提出这个问题,你肯定将来有所作为!
这两条指令都为查表指令,先说区别:先需分清PC与DPTR,pc为程序执行时当前的位置(地址),dptr为程序员当时所加载的值(一般为表头地址),相信你已经明白他们的区别。
一般都用MOVC A,@A+DPTR 不需要管表的位置!本回答被提问者采纳
第2个回答  2011-02-04
MOVC A,@A+PC是读取地址为A+PC的存储单元里面的内容
MOVC A,@A+DPTR是读取地址为A+DPTR存储单元的内容
PC和DPTR的内容不同时,就有区别啦
还有DPTR可以用指令直接改变其中的值
第3个回答  2011-02-02
针对楼下的一些笔误回答,应该是MOVC A ,@A+DPTR,是用来查表的,一般用这个查表。

...A,@A+PC 与指令MOVC A,@A+DPTR的区别是什么? 在什么情况下使用MOVC...
MOVC A,@A+PC是读取地址为A+PC的存储单元里面的内容。MOVC A,@A+DPTR是读取地址为A+DPTR存储单元的内容。PC和DPTR的内容不同时,就有区别,还有DPTR可以用指令直接改变其中的值。这两条都是查表指令,MOVC A,@A+PC,只能给累加器A赋值,所以只能查这条指令所在地址以后256字节范围内的代码或常...

单片机的查表指令(1)MOVC A,@A+PC(2)MOVC A,@A+DPTR怎样理解?
MOVC A,@A+PC ;PC指向下一个地址,用这条指令的话很不方便 但它的优点是不改变PC的状态,缺点是查表指令只能在256之内。而且只能被一段程序所用 MOVC A,@A+DPTR ;指针PDTR及A的内容有关,与该指令存放的地址及常数表格存放的地址无关,所以位置可以在64KB、、、打字真麻烦,不说了。反正记...

MOVC A,@A+DPTR与MOVX A,@DPTR指令有何不同?
MOVX A,@DPTR间接寻址,可在整个片内拓展RAM及片外拓展RAM64KB范围内寻址。简单来说就是两个指令的寻址范围不同。MOVC...称为远程查表指令;MOVX是拓展数据存储器传送指令。

MCS-51系列单片机有哪些查表指令?它们有何本质区别?当表的长度超过256...
【答案】:(1)查表指令有两条:MOVC A,@A+DPTR和MOVC A,@A+PC。(2)本质区别(书P163):存放表格首地址的寄存器不同。前者将表格首地址存放在数据指针DPTR中,因此,可将表格数存放在64KB范围内的任何有空余的地址段,供任意次查找;后者表格首地址存放在PC当前值所指定的地址单元中,这样,表格数...

AT89C51中指令movc a,@a+pc是什么意思?
movc a,@a+dptr 从DPTR开始偏移A个地址的数读取到A中.DPTR一般为数据段的首地址.movc a,@a+pc 从PC指令地址开始偏移A个地址的数读取到A中.PC为当前指令地址。这两个指令都是从程序空间中读取数据。AT89C51是一种带4K字节FLASH存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)...

汇编语言:JMP @A+DPTR
呵呵这个看看书就知道了啊。MOVC A,@A+PC是近程查表只能查指令以后的256字节范围 MOVC A,@A+DPTR是远程查表指令 啊可以查64k空间了。MOVC A,@A+DPTR完全可以代替MOVC A,@A+PC所以一般都用MOVC A,@A+DPTR

请教汇编程序,MOVC A,@A+DPTR和MOV DPTR,#DISPTAB
1 都是使用MOVC A,@A+DPTR 指令进行查表的,查表的过程是一样的。先将表的首地址送给数据指针DPTR,然后将要查找的顺序号送给累加器A,通过执行查表指令MOVC A,@A+DPTR ,将结果送累加器A保存。2 不同的是BITTAB和DISPTAB两个表不同。BITTAB是数码管的位控码表 决定数据送到哪位...

MOVC A, @A+DPTR 是什么意思?
是汇编语言专用的查表指令,要查的表是一个顺序表。这条指令以DPTR为表中数据的首地址,A中事先存储数据相对于表首地址的地址偏移量,最大不能超过255,通过调整A值可以查询表中指定位置的数据。这条指令执行完毕后,A中存储的是查询到的数据。

MOVC是什么指令?
MOVC是c51单片机汇编中的查表指令 在MCS-51的指令系统中的两条查表指令 MOVC A,@A+PC MOVC A,@A+DPTR 上面两者的具体情况见查表指令 在汇编中,MOVC指令是表示程序存储器里的内容和别的存储单元进行传送的,主要是用在累加器A和程序存储器的数据传送。正如上面的两条指令:MOVC A,@A+PC;MOVC...

总结及分析各种寻址方式。
MOVC A,@A+PC 第一条指令JMP @A+DPTR这是一条无条件转移指令,这条指令的意思就是DPTR加上累加器A的内容做为一个16位的地址,执行JMP这条指令是,程序就转移到A+DPTR指定的地址去执行。 第二、三条指令MOVC A,@A+DPTR和MOVC A,@A+PC指令 这两条指令的通常用于查表操作,功能完全一样,但使用起来却有...

相似回答