[問題] 8086訓練機 跟組合語言的問題

看板ASM (組合語言)作者 (安囧尼)時間16年前 (2008/06/23 23:33), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
想請問一下 由於學校修的課的期末專題 是要用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
文章代碼(AID): #18Ny90eS (ASM)
文章代碼(AID): #18Ny90eS (ASM)