汇编程序中经常用到查表方法。一组连续的相同类型数据,表首地址有一个标号TABLE:...数据聚合。 基址 MOV DPTR,#TABLE 加偏移A间接寻址方式被用来获得这个表中一个位置的数据——MOVC A,@A+DPTR。
映像到C是完全一样的!例如:现有数组char TABLE[10]; C 程序中写下 DPTR=TABLE; 编译后的汇编语句为立即寻址方式:MOV DPTR,#TABLE。C语句ACC=TABLE[2]; 编译为间接寻址 MOVC A,@A+DPTR。
要是想知道汇编程序中TABLE标号的地址在哪里,是不是有点开玩笑?“它可能在哪里?”它除了标识这张表,标识它的内存固定位置之外,它有地址么?汇编语言中TABLE的值怎么可能表示这个表中分立的10个字节的数据?有意义?
|