查表指令FND (Table Find)用于查找表中符合条件的字型数据所在的位置编号,其指令格式如图5-40所示。
图5-40 查表指令的指令格式
其中,TBL为表的首地址,PTN为需要查找的数据,INDX用于存放表中符合查表条件的数据的地址;CMD为比较运算符代码“1”、“2”、“3”、“4”,分别代表查找条件“=”、“<>”、“<”和”>”:
在执行查表指令前.首先对INDX清0。当EN有效时,从INDX开始搜索TBL.查找符合PTN且由CMD决定的数据。每搜索一个数据项,INDX自动加1二如果发现了一个符合条件的数据,那么INDX指向表中该数的位置。为了查找下一个符合条件的数据,在澈活奎表指令前,必须先对INDX加1:如果没有发现符合条件的数据,那么INDX等于EC。
注意查表指令不需要ATT指令中的最大填表数TL。因此,查表指令的TBL操作数比ATT指令的TBL操作数多两个字节。例如,ATT指令创建的表的TBL=VW200.对该表进行查找指令时的TBL应为、VW202。
【例5-18】 查表找出3130数据的位置并将其存入AC1中(设表中数据均为十进制数),程序如图5-41所示。
图5-41 查表指令应用示例
本例的工作过程如下。
1)表首地址VW202单元,内容0006表示表的长度,表中数据从VW204单元开始。
2)若AC1=0,在I0.1有效时,从VW204单元开始查找。
3)搜索到PTN数据3130时,AC1 =2,其存储单元为VW208。