词条 | 查表指令 |
释义 | 查表指令(table look - up instruction)用来查找以列表形式或系统地排列在存储器中的数据的一种指令。 查表指令的寻址方式的由来由于程序寄存器只能读不能写,因此其数据的传输是单向的,即从程序存储器中读出数据到累加器A中。两条查表指令均采用基址寄存器加变址寄存器间接寻址方式。 查表指令的助记符是在MOV的后面加C,“C”是CODE的第1个字母,即代码的意思。 MOVC A,@A+PC这条指令以pc作基址寄存器,A的内容作为无符号整数和pc中的内容(下一条指令的起始地址)相加后得到1个16位的地址,把该地址指出的程序存储器单元的内容送到累加器A。 例:(A)=30H,执行地址1000H处的指令 1000H:MOVC A,@A+PC 本指令占用1B,下一条指令的地址为1001H,(PC)=1001H在加上A中的30H,得1031H,结果将程序存储器中1031H的内容送入A。 这条指令的优点是不改变特殊功能寄存器及pc的状态,根据A的内容就可以取出表格中的常数。缺点是表格只能存放在该条查表指令后面的256个单元内,表格的大小受到限制,而且表格只能被一段程序所利用。 MOVC A,@A+DPTR这条指令以DPTR作为基址寄存器,其余的与MOVC A,@A+PC相同 例 (DPTR)=8100H (A)=40H 执行指令 MOVC A,@A+DPTR 结果将程序存储器中8140H单元内容送入累加器A中。 这条查表指令的执行结果只和指针DPTR及累加器A的内容有关,与该指令存放的地址及常数表格存放的地址无关,因此表格的大小和位置可以在64KB程序存储器中任意安排,1个表格可以为各个程序块共用。 |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。