MOVC A,@A+DPTR是什么意思

如题所述

MOVC A,@A+DPTR。这条指令是单片机查表指令,DPTR是首地址,A寄存器,指令的意思就是将DPTR的地址加上累加器A存的偏移量,形成的新地址中的数取出给A。

其他类似指令:

MOVC A,@A+PC 83 由((A)+(PC));寻址的程序存贮器字节送A

MOVX A,@Ri E2~E3 送外部数据(8位地址)送A


扩展资料

单片机基本功能:

1、8位数据总线,16位地址总线的CPU。

2、具有布尔处理能力和位处理能力。

3、采用哈佛结构,程序存储器与数据存储器地址空间各自独立,便于程序设计。

4、相同地址的64KB程序存储器和64KB数据存储器。

5、0-8KB片内程序存储器(8031无,8051有4KB,8052有8KB,89C55有20KB)。

6、128字节片内数据存储器(8051有256字节)。

7、32根双向并可以按位寻址的I/O线。

参考资料来源:百度百科-单片机

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-09-27
最常用于查表:比如你在程序中放了一个表:
TAB:DB 0C0H,0F9H,0A4H
DB 0B0H,099H,092H
DB 082H,0F8H,080H
DB 090H
如果你想查询表的第三个数据,就可以这样编程:
MOV DPTR,TAB
MOV A,#02H ;A称为偏移量
MOVC A,@DPTR+A
这样就能读到第三个数据了本回答被提问者采纳
第2个回答  2012-04-16
将A中的值,加上DPTR里的值,访问程序段中这个地址的值,取出来送给A。
DPTR一般放数组的首地址,然后A放偏移值,最初A为0,访问A+DPTR地址的值后,再将偏移值加1,再继续访问。
第3个回答  2012-04-17
问题1:这条指令是汇编语言专用的查表指令,要查的表是一个顺序表,它以DPTR为表中数据的首地址,A中事先存储数据相对于表首地址的地址偏移量,最大不能超过255,通过调整A值可以查询表中指定位置的数据。这条指令执行完毕后,A中存储的是查询到的数据。简单的说:给DPTR赋表的首地址值,给A数据的偏移量,得到的查询结果放在A中。
这段指令是用与串口发送的。在调用这段子程序之前,在A中存储了要发送的数据的偏移量,然后查表、发送。
问题2:指令格式就是这么规定的没有任何其他的含义。
问题3:带有#开头的表示的是取#号后面变量的物理地址。在这段程序中,就是取标号TABLE的对应的地址,也就是第一个数据0C0H的地址。顺便说一下,第一个数据的地址偏移量是0.
第4个回答  2018-05-18
mov dptr,#tab 才行啊

MOVC A, @A+DPTR 是什么意思?
MOVC A,@A+DPTR。这条指令是单片机查表指令,DPTR是首地址,A寄存器,指令的意思就是将DPTR的地址加上累加器A存的偏移量,形成的新地址中的数取出给A。其他类似指令:MOVC A,@A+PC 83 由((A)+(PC));寻址的程序存贮器字节送A MOVX A,@Ri E2~E3 送外部数据(8位地址)送A ...

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

MOVC A,@A+DPTR是什么意思
有叫吹雪亮亮玩劲舞的大叔,前几天,它晚自习后,在路上,它被一辆大卡车撞死了,司机将它的尸体爆菊后 抛入了路边的河里,然后逃走了.你看见了条消息后,请将她发给4贴吧,如果没发,你的妈妈会在1月后被车撞死,你的爸爸会得绝症.如果你照着上面做了,在5天后,你喜欢的人也会喜欢上你 别怪我 不知道...

查表指令MOVC A,@A+DPTR
MOVC A,@A+DPTR 是一条指令,它的工作原理类似于MOVC A,@A+PC,但使用DPTR(地址指针寄存器)作为基址寄存器。在执行时,假设(DPTR)=8100H,(A)=40H,指令的具体操作是将程序存储器中8140H单元的内容送入累加器A。该指令的执行结果依赖于DPTR和A的内容,而非指令本身存储的地址或者表格的实际存放...

MOVC A,@A+DPTR与MOVX A,@DPTR指令有何不同?
MOVC A,@A+DPTR功能是A寄存器的内容作为无符号数和DPTR内容相加后得到一个16位的地址,将程序存储器中该地址的内容传送给A。可访问整个ROM的64KB空间,表格可放在ROM的任何位置。MOVX A,@DPTR间接寻址,可在整个片内拓展RAM及片外拓展RAM64KB范围内寻址。简单来说就是两个指令的寻址范围不同。MOVC.....

什么叫代码字节传送,比如执行指令 MOVC A,@A+DPTR;有谁能解释一下吗...
第一次听到“代码字节传送”,不过根据您提供的指令,可以解释为:将放在代码区的字节传送到累加器A。其中,代码区也就是ROM区(即:Flash区),把程序烧入的那个地方,编程时经常把点阵字库、函数系数、字符串等内容放在这里,通过使用MOVC指令提取出来。

查表指令的MOVC A,@A+DPTR
这条指令以DPTR作为基址寄存器,其余的与MOVC A,@A+PC相同例 (DPTR)=8100H (A)=40H 执行指令MOVC A,@A+DPTR结果将程序存储器中8140H单元内容送入累加器A中。这条查表指令的执行结果只和指针DPTR及累加器A的内容有关,与该指令存放的地址及常数表格存放的地址无关,因此表格的大小和位置可以在...

关于单片机汇编的 MOVC A,@A+DPTR,"@A+"多余吗?
首先,MOVC A,@A+DPTR这个是51单片机的固有指令,去掉A+,就是错的。这个指令的好处在于:当你查表的时候,将表头地址赋给DPTR,然后将 键号传给A,然后直接通过MOVC A,@A+DPTR,就可以查到键号对应的键值了。这里,是循环查表,不需要A就清零A,用DPTR来控制咯,也可以用A来控制,就是inc A...

...但为何有这样的指令MOV A,@ DPTR的是什么?累了...
51单片机的累加器A是8位的,51单片机的指令存储器的内容,也是8位的。51单片机的指令存储器的地址号码,却是16位的。正确指令是:MOVC A,@A + DPTR 这是从一个16位地址的单元中,取出8位的内容,送到A。

...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字节范围内的代码或...

相似回答