本帖最后由 冷漠 于 2009-8-17 10:05 编辑
LZ太谦虚了。说到 “原创”就腼腆“哪里,我也是刚开始学习而已。”“7月分刚毕业......”
不过,下面这段程序,我怎么似曾相识?它不是出自LZ 之手吧。
LZ不是自己原创的思想或者程序“段落”,最好标明出处。——如若是自己原创,怎么连注释都错误?或者至少可以给我们大家、46楼、25 楼讲讲,一个事件队列的数据类型是什么样?为什么像下面那样操作。
wrt_FIFO:
b0mov y,#event_FIFO$m
b0mov z,#event_FIFO$l ;取首地址
mov a,writep ;计算当前地址
b0add z,a ;写表的高位地址
mov a,event_buf
mov @yz,a ;存键值
incms writep
mov a,writep
cje a,#FIFO_len,wrt_FIFO10 ;到底部writep清0
jmp wrt_FIFO90 ;没有到底部退出
wrt_FIFO10:
clr writep
wrt_FIFO90:
ret
;---------------
rd_FIFO:
mov a,writep ;读写指针相等没有数据写入,退出
cje a,readp,rd_FIFO90 ;读写指针不等,读event_FIFO
b0mov y,#event_FIFO$m
b0mov z,#event_FIFO$l ;取首地址
mov a,readp ;计算当前地址
b0add z,a ;读表的高位地址
mov_ r,@yz ;存键值
incms readp
mov a,readp
cje a,#FIFO_len,rd_FIFO10 ;到底部readp清0
jmp rd_FIFO90 ;没有到底部退出
rd_FIFO10:
clr readp
rd_FIFO90:
ret |