发表于:2006-04-19 21:20:00
楼主
我用的是pic的单片机,在mapide中编了一个查表程序(定义了一个偏移量count)
大意如下:
首先是将count清零,传给w
调用查表程序,查表程序中是将pcl的值加上w(即是此时的偏移量count的值)
在返回给w,在传给一个变量number
之后将count加1,传给w,调用查表程序,返回表值给w,转给number
可是运行时候发现pcl进入查表程序后没有像预期的那样跳到pcl加偏移量的表位置返回希望值,总是返回表头值,还发现执行一天指令时候,pcl值加2,不是加1。和我在很多书看的不一样,应该执行一条指令pcl加1的,这是为什么啊?请高手指教,我实在是查不到原因,也看过很多书了,得不到答案,希望高手指点一下,感激不尽!!!!
附加上代码
count equ 21h
mumber equ 22h
org.......
clrf count
lp movf count,w
call table
movwf number
incf count
goto lp
..........
table
addwf pcl,f
retlw d‘167’
retlw ......
.........