作者negi522 (毫無反應..就只是一根蔥)
看板ASM
標題[問題] 組合語言新手問題
時間Thu May 13 14:41:09 2010
我的程式編譯的時候都沒有錯誤
但是開始跑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
1F:→ eentut:為什麼用計時中斷作delay迴圈? 05/13 20:53
2F:→ eentut:而且你先push 然後call 接著pop ARG2和ARG1不會=200和100 05/13 21:03
3F:→ eentut:call是會存PC值進堆疊的 請先翻書... 05/13 21:04