[問題] 8086訓練機 跟組合語言的問題
想請問一下
由於學校修的課的期末專題
是要用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
ASM 近期熱門文章
PTT數位生活區 即時熱門文章