作者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