单片机查表指令movc什么意思

若累加器A中有一个0~9的数,请用查表法求出该数的平方值,设平方表表头地址为1000H。程序是下面的MOVDPTR,#1000HMOVCA,@A+DPTR若(A)=3,查... 若累加器A中有一个0~9的数,请用查表法求出该数的平方值,设平方表表头地址为1000H。
程序是下面的
MOV DPTR,#1000H
MOVC A,@A+DPTR
若(A)=3,查表后(A)=9 .
怎么出的9,MOVC是啥意思?
我是初学者,请高手解答。。。
展开
 我来答
床前明月儿
高能答主

2019-11-01 · 探索生活中的另一种可能
床前明月儿
采纳数:105 获赞数:171983

向TA提问 私信TA
展开全部

MOVC指令意思是表示程序存储器里的内容和别的存储单元进行传送的,主要是用在累加器A和程序存储器的数据传送。

单片机的操作语言使用的是汇编语言,是一种用于电子计算机、微处理器、微控制器或其它可编程器件的低级语言。

包括通用数据传送指令MOV、条件传送指令CMOVcc、堆栈操作指令PUSH/PUSHA/PUSHAD/POP/POPA/POPAD、交换指令XCHG/XLAT/BSWAP、地址或段描述符选择子传送指令LEA/LDS/LES/LFS/LGS/LSS等。


扩展资料

测试指令BT、位测试并置位指令BTS、位测试并复位指令BTR、位测试并取反指令BTC、位向前扫描指令BSF、位向后扫描指令BSR等。

加法指令ADD/ADC、减法指令SUB/SBB、加一指令INC、减一指令DEC、比较操作指令CMP、乘法指令MUL/IMUL、除法指令DIV/IDIV、符号扩展指令CBW/CWDE/CDQE、十进制调整指令DAA/DAS/AAA/AAS、逻辑运算指令NOT/AND/OR/XOR/TEST等。

无条件转移指令JMP、条件转移指令Jcc/JCXZ、循环指令LOOP/LOOPE/LOOPNE、过程调用指令CALL、子过程返回指令RET、中断指令INTn、INT3、INTO、IRET等。


参考资料来源:百度百科-MOVC

天空之城iot
2013-02-27 · 大数据、物联网、自动化、方案学习探讨
天空之城iot
采纳数:79 获赞数:269

向TA提问 私信TA
展开全部
movc是访问单片机程序存储器的意思。(程序存储器是固化的数据,在单片机运行时只能读,不能写)
movx是读写单片机外部数据存储器的意思。

0到9的平方值依次为:0, 1, 4, 9, 16, 25, 36,49,64,81
表头地址就是第一个数的存放地址。是将上列数据放入1000h开始的程序存储器里。
地址: 1000 1001 1002 1003依次类推直到1009
平方数: 0 1 4 9,。。。。。。。
看到了吧,程序第一行是将1000h的立即数放入数据指针,用它作为基地址,程序第二行是将A中的数加上DPTR的内容以这个数为地址去查表并将结果放入A中,如果A=3,那么3+1000就是1003(地址),查1003地址单元的内容就是9,就实现了查表。
查表用的很多,可以节约单片机的运算时间,如果让单片机去算这些平方很费时,在人为可以预料到的有规律的运算可以先把结果计算出来,存入程序存储器,然后让单片机在运行时根据规律去查表取出这些结果。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
做而论道
高能答主

推荐于2017-09-15 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3.1万
采纳率:82%
帮助的人:8432万
展开全部
查表指令:MOVC A,@A+DPTR 不是单独使用的,在1000H处,应该有个DB伪指令,如下:
DB 0, 1, 4, 9, 16, 25......
它在ROM中,顺序存放了一系列的“平方”数据。
MOVC A,@A+DPTR指令中A如果等于0,就会在“平方”数据中取出第0个,就是0;
MOVC A,@A+DPTR指令中A如果等于3,就会在“平方”数据中取出第3个,就是9。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
光年一夏雁南飞
推荐于2017-09-10 · TA获得超过2909个赞
知道大有可为答主
回答量:4781
采纳率:0%
帮助的人:1151万
展开全部
查表指令:MOVC A,@A+DPTR 不是单独使用的,在1000H处,应该有个DB伪指令,如下:
DB 0, 1, 4, 9, 16, 25......
它在ROM中,顺序存放了一系列的“平方”数据。
MOVC A,@A+DPTR指令中A如果等于0,就会在“平方”数据中取出第0个,就是0;
MOVC A,@A+DPTR指令中A如果等于3,就会在“平方”数据中取出第3个,就是9。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xiao2na
2010-04-15 · TA获得超过575个赞
知道小有建树答主
回答量:82
采纳率:100%
帮助的人:39.9万
展开全部
MOV DPTR,#1000H
这句话是把1000H这个地址赋给DPTR这个指针变量。
DPTR指向的就是平方表的首地址.

MOVC A,@A+DPTR
把 从DPTR开始,偏移A个地址的地址中存放的数据,读取到变量A中.

平方表里设置的数是:{0,1,4,9,16,....}
这样,#1000H 这个地址里放的就是0,开始时A被设置为3,DPTR偏移3个后,就指向1003H地址了,1003H里放的就是9,第二句话就是把9赋给了变量A。

呵呵,明白了吗!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式