TAB1后面有个冒号,类比于DISP1和pd1,它们都是一个地址别名,在程序的某个地方起了个名字而已。对于执行的程序而言就与一个地址相对应。其实你应该是想问TAB1后面的那一组数据是什么意思吧。
后面DB后面有一系列的数字,这其实是相当于用来定义一个数组,对应于c语言里面就是char TAB1[];这条语句了。其实这是汇编的一种写法。目的是为了定义一连串的数据组成一个数组,这些数据在存储的时候也是按照这样的顺序有低到高存储,因此,只要知道了第一个数据的地址TAB1,后面的数据地址就可以逐个计算得到。
DB 是定义数据表的一条伪指令,你可以上网查单片机伪指令,会有很多相关资料
了解了上面我说的,那么你就不难理解你说的那段程序
DISP1:
clr EA
PUSH ACC;;这几条是预处理,只是为了保存一些怕被丢失的数据
PUSH DPH
PUSH DPL
pd1:
JBC RI,DISP1_1
LJMP pd1
DISP1_1:
MOV A,SBUF
MOV DPTR,#TAB1 ;;;; 把地址放入地址指针DPTR
MOVC A,@A+DPTR ;这里其实就是寻址了,寻找相应的数据并放到累加器A中。
cjne a,#0f9h,pd2;;这条是比较转移指令,如果a和0f9h不相等就跳转到pd2;这个就不用我说了吧
言语比较晦涩,但希望你能理解。
TAB1其实就是一个名称(代号),类似于起个名。其表的功能就是把一个数一个数的送到DPTR中。