我正在爲程序集8086中的學校(使用DOSBox)工作,並且我試圖將程序延遲0.5秒。延遲程序使用int 21h與ah = 2Ch
我試圖創建一個循環的當前時間比較初始時間,使用INT 21H,功能代下與DL
的百分之價值,但它似乎是太慢了......
mov ah, 2Ch
int 21h
mov al, dl ;hundredths
mov bx, 0
wait_loop:
one_hun:
int 21h
cmp al, dl
je one_hun
mov al, dl
inc bx
cmp bx, 50
jne wait_loop
謝謝,問題解決了! – Shelly
他們是如何決定每秒18.2次的?看起來很奇怪。 – fuz
@fuz基本上會爲完整的16/32位溢出(65536/18.2 =〜3600 = 1小時)加上初始晶振頻率:https://blogs.msdn.microsoft.com/oldnewthing/20041202-00/?p = 37153 – Ped7g