[問題] 組合語言新手問題

看板ASM (組合語言)作者 (毫無反應..就只是一根蔥)時間15年前 (2010/05/13 14:41), 編輯推噓0(003)
留言3則, 1人參與, 最新討論串1/1
我的程式編譯的時候都沒有錯誤 但是開始跑DEBUG讓他一段一段跑的時候 跑到DELAY的時候就跑出 error 65 好像是說在C:0xC864發生存取衝突之類的 WHILE: MOV ARG, #100 PUSH ARG MOV ARG, #200 PUSH ARG CALL delay CALL TEST_DISCONT JMP WHILE 下面是DELAY的部份 delay: POP ARG2 POP ARG1 MOV ARG, ARG1 MOV TH1, #(256-17) MOV TL1, #(256-17) SETB TR1 while_i1: while_i0: while_TF1: JNB TF1, while_TF1 CLR TF1 DJNZ ARG1, while_i0 MOV ARG1, ARG DJNZ ARG2, while_i1 CLR TR1 RET 剛開始學一陣子而已 一直想不出會發生錯誤的原因 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.71.232.251

05/13 20:53, , 1F
為什麼用計時中斷作delay迴圈?
05/13 20:53, 1F

05/13 21:03, , 2F
而且你先push 然後call 接著pop ARG2和ARG1不會=200和100
05/13 21:03, 2F

05/13 21:04, , 3F
call是會存PC值進堆疊的 請先翻書...
05/13 21:04, 3F
文章代碼(AID): #1Bwvy8fm (ASM)
文章代碼(AID): #1Bwvy8fm (ASM)