各位高手,小弟刚学中颖单片机,近来遇到些问题,我有个数据表需要循环查表,但是又实现不了,CALL DATA_TABLE之前ACC的数据总是0, STA TEMP,00H ;好象没有作用,执行该条指令时,TEMP的值也会变0;如果将该条指令改为LDI TEMP,01;它又可以查一个数据,请大家帮手,谢谢。
LDI TBR,00H;设置TBR的值为0 ;--------------------------------------------- LOOP: STA TEMP,00H ; ;--------------------------------------------- CALL DATA_TABLE;查数据表 STA TEMP_L,00H;先将低4位的数据保存在临时寄存器 LDA TBR,00H;读入高4位的数据 STA TEMP_H,00H;存高4位的数据在临时寄存器 CJE TEMP,TEMP1;$+3; 8次到没? ADIM TEMP,01H;加1 JMP $+2 LDI TEMP,01H;归1 JMP LOOP ORG 300H ;设置PC地址 DATA_TABLE: TJMP ; H L RTNW 0010B,0011B ;301H RTNW 0011B,0010B ;302H RTNW 0011B,0011B ;303H RTNW 0100B,0010B ;304H RTNW 0101B,0011B ;305H RTNW 0100B,0010B ;306H RTNW 0011B,0010B ;307H RTNW 0100B,0010B ;308H 注: TEMP_H、TEMP_L、TEMP、TEMP1都为临时寄存器,TEMP初值为1; TEMP1初值为8;
|