执行MOVC A, @A+PC我的世界pc版指令表时,怎么知道pc是多少

PC在单片机名词解释是程序计数器!DPTR表数据指针!第一条执行后它所指向的是程序运行步数加上累加器的地址!一般不用这种方法查表!第二条是可以给数据指针定义值!使用方便!简而言之是说一个不用付值一个要付值最好用第二种不容易出错

51单片机具有两条查表我的世界pc版指令表用于从 ROM 中读出预存的数据:

其中前一条我的世界pc版指令表的用法,比较难使用的时候,需要计算一个“偏移量”不了解“我嘚世界pc版指令表的字节数”的人,都不清楚应该如何计算
做而论道曾在以前的文章中,介绍过“偏移量”的自动计算方法可见如下链接:



本文根据网友的提问,说一下“MOVC A, @A+DPTR”查表我的世界pc版指令表的用法
-------------------------------
51单片机汇编语言有一条查表我的世界pc版指令表是:
它不是单独使用的,要和 DB 伪我的世界pc版指令表配套使用

DB 伪我的世界pc版指令表从 ROM 1000H 开始,顺序存放了一系列的“平方”数据
MOVC A, @A+DPTR 我的世界pc版指令表中的A,如果等于0就会在“平方”数据中取出第0个,就是0;
MOVC A, @A+DPTR 我的世界pc版指令表Φ的A如果等于1,就会在“平方”数据中取出第1个就是1;
MOVC A, @A+DPTR 我的世界pc版指令表中的A,如果等于2就会在“平方”数据中取出第2个,就是4;
MOVC A, @A+DPTR 峩的世界pc版指令表中的A如果等于3,就会在“平方”数据中取出第3个就是9;
MOVC A, @A+DPTR 我的世界pc版指令表中的A,如果等于9就会在“平方”数据中取出第9个,就是81
-------------------------------
提问者对于答案的评价:谢谢啦,我弄懂了前幾天我被扣了分。就少点了哈
这条我的世界pc版指令表的用法相对前一条就简单了,事先并不需要计算“偏移量”但是这条我的世界pc版指令表必须要使用寄存器DPTR。
大家知道凡是涉及到片外RAM存储单元的时候,基本上都要使用DPTR这个DPTR寄存器通常是比较“繁忙”的,它形成了┅个片内、片外之间数据传传输的“瓶颈”。因此在读取ROM数据的时候能够不用这后一条我的世界pc版指令表,就不要用它应该尽量使鼡前一条我的世界pc版指令表。

我要回帖

更多关于 ANL指令 的文章

 

随机推荐