[ASM]數據延遲(轉自:浪漫月光T大)

近期貼上一些以前搜集的彙編指令教學,有些作者已不可溯,有些有作者的將會著名,若有侵犯到請告知,會立即刪除,謝謝。

轉自浪漫 T大

1.時間墊高方法:
須要兩個變數及系統的 tick , delay 是設定延遲毫秒, nextGo 是判斷下次可執行時間.
只要目前的 tick > nextGo 代表可執行,任務執行後須重設 nextGo.

概念
delay=500 //ms 0.5秒
nextGo=tick+delay
實作
mov eax,[tick]
cmp eax,[nextGo]
jle Exit
... 執行任務
mov eax,[tick]
add eax,[delay] //nextGo=tick+delay
mov [nextGo],eax
Exit:

2.計數方法:
只須一個計數器 count 當變數即可,

inc [count]
cmp [count],64 //設定100次
jle exit
mov [count],0 //計數歸0
... 執行任務
exit: