[求助]請問如何自行設計delay time

6502 組合語言,是哈電族裡使用的程式語言,也是目前設計 Bin 的唯一方法,有興趣的就進來吧
回覆文章
okerli
文章: 1
註冊時間: 2006-06-07 6:37 AM

[求助]請問如何自行設計delay time

文章 okerli » 2006-06-11 6:00 PM

小弟是6502初學者,想請教各位前輩,6502的delay time 有公式或參照表嗎,假使我設計一個延遲350us的副程式:這樣寫對嗎,還是有較準確的公式,麻煩各位前輩賜教 :oops: 感謝!!

DELAY_350us:
DELAY_LOP:
NOP
NOP
NOP
DEC A
BNE DELAY_LOP
RTS

頭像
Eastsun
會員
會員
文章: 24
註冊時間: 2004-05-14 9:11 PM
來自: 大陆

文章 Eastsun » 2006-06-16 6:26 PM

8)
可以这样:
其中在NC机型中
_AutoClose = $0401
_WatchDog = $03f6
简单说明一下:程式的入参是 X与Y,分别为要延迟毫秒数(0.001秒)的低八位与高八位。
比如要延迟 900ms,可以这样:
ldx #<900
ldy #>900
jsr _Delay
另外这个程式只能精确到毫秒(其实不是很精确)如果要更精确的话,需要其它方法。
_Delay: ;入参 x,y
STX $80
STY $81
LSR $81
ROR $80
LSR $81
ROR $80

_DelayLoop1
LDA $80
ORA $81
BNE _DelayLabel1
RTS
_DelayLabel1
LDA #$04
STA $3e
LDA $3f
STA $82
_DelayLoop2
LDA #$00
STA _WatchDog
STA _AutoClose
LDA #$04
STA $3e
LDA $3f
CMP $82
BEQ _DelayLoop2
LDA $80
BNE _DelayLabel2
DEC $81
_DelayLabel2
DEC $80
JMP _DelayLoop1

頭像
sppmg
一級會員
一級會員
文章: 260
註冊時間: 2004-01-10 12:41 PM
來自: 地球ㄉ台灣ㄉ台北
聯繫:

文章 sppmg » 2006-07-27 1:37 PM

嗚~~~~好久沒看組語了,都不大看的懂了。
我認為如果你需要非常精確的話,那就是發揮組語的特性了──數指令
也就是說查出各指令的機械週期(我應該有放上來才對),再由6502cpu的時脈計算一個機械週期是幾秒。將各指令機械週期相加至350*10^-6s就成了。
不過請記得你在進入此副程式前所花的時間也要計算在內。

希望不會太晚提供這消息給你。
好久沒完6502了
也沒時間......
目前除了拼課業就是玩Linux(還說沒時間......)

回覆文章