作者niewolf (安囧尼)
看板ASM
标题[问题] 8086训练机 跟组合语言的问题
时间Mon Jun 23 23:33:17 2008
想请问一下
由於学校修的课的期末专题
是要用8086训练机做出东西来
我们使用别人的程式来跑跑看的时候
会出现一个很怪的问题
就是
将程式Load到机器上的时候
第一次跑
可以正常运作...到某个地方
然後第二次再重新开始的时候
就会有问题
是做一个类似赛车的游戏
CAR_UP1:
CALL ALLCLR
CALL STRINGL
DB 2,0,0,1,0,0,0,1,1,1,0,0,0,1,0,0,'$'
CALL LINE2
CALL STRINGL ; Characters output to LCD
DB 1,1,0,0,0,1,0,0,0,0,0,1,0,0,0,1,'$'
CALL TIMER
MOV BX,0
上面是画出赛道
KEY_LOOP:
PUSH DX
PUSH AX
MOV DX,DATA79 //将DX暂存器设定至控制键盘的地方
IN AL,DX //将键盘的输入抓到AL
CMP AL,01H //若AL为1,就会跳到OVER1
JZ OVER1
POP AX
POP DX
ADD BX,1 //每次加1
CMP BX,5000 //若不等於5000就会跳到KEYLOOP
JNE KEY_LOOP
JMP CAR_UP2 //等於5000跳到CAR_UP2
上面是部分程式码
我们的写法是比较阳春的
就往前一步地图重划 萤幕显示只有16格的大小
所以地图有16个
程式刚LOAD到版子的时候 第一次大概可以前进十格左右
可是会再某一格莫名奇妙死掉
然後之後再重新玩
就会再第一格就死了
不好意思 降讲好像有点难懂
不过我们研究程式码 研究了好久
还是不太懂为什麽会有这个问题
有人身边有8086的版子可以帮忙试试看吗
还是有没有组合语言比较强的人可以帮忙看看原始码
程式是不是有什麽问题
希望可以帮帮忙
感谢罗~~
下面附完整程式码
http://niewolf.googlepages.com/test.ASM
--
http://www.wretch.cc/album/niewolf
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.117.161.101