查表指令(查表指令的使用方法)

频道:电子元器件 日期: 浏览:253

查表指令

本文内容来自于互联网,分享查表指令(查表指令的使用方法)

目录·查表指令(table look - up instruction)
·查表指令的寻址方式的由来
·MOVC A,@A+PC
·MOVC A,@A+DPTR
·查表指令(table look - up instruction)Top

  用来查找以列表形式或系统地排列在存储器中的数据的一种指令。

查表指令(查表指令的使用方法)

·查表指令的寻址方式的由来Top

  由于程序寄存器只能读不能写,因此其数据的传输是单向的,即从程序存储器中读出数据到累加器A中。两条查表指令均采用基址寄存器加变址寄存器间接寻址方式。

  查表指令的助记符是在MOV的后面加C,“C”是CODE的第1个字母,即代码的意思。

·MOVC A,@A+PCTop

  这条指令以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+DPTRTop

  这条指令以DPTR作为基址寄存器,其余的与MOVC A,@A+PC相同

  例 (DPTR)=8100H (A)=40H 执行指令

  MOVC A,@A+DPTR

  结果将程序存储器中8140H单元内容送入累加器A中。

  这条查表指令的执行结果只和指针DPTR及累加器A的内容有关,与该指令存放的地址及常数表格存放的地址无关,因此表格的大小和位置可以在64KB程序存储器中任意安排,1个表格可以为各个程序块共用。