匯編語(yǔ)言軟件延時(shí)1s的實(shí)現(xiàn)方法
對(duì)于不同的計(jì)算機(jī),因?yàn)槠渲黝l不同,延時(shí)1s的參數(shù)也不相同,計(jì)算延時(shí)的方法如下:
計(jì)算機(jī)主頻:x (Hz)
一條LOOP語(yǔ)句執(zhí)行始終周期數(shù):y
所需要延時(shí)的時(shí)間:z (s)
需要執(zhí)行的語(yǔ)句數(shù):a
z=y*(1/x)*a
計(jì)算得到所需的執(zhí)行語(yǔ)句數(shù)編寫(xiě)程序。
例:(計(jì)算機(jī)主頻為3GHz)
delay proc near push bx push cx mov bx,400h for1:mov cx,0ffffh for2:loop for2 dec bx jnz for1 pop cx pop bx ret delay endp
擴(kuò)展知識(shí):
單片機(jī)匯編跳轉(zhuǎn)指令延時(shí)一秒
DELAY: MOV R7,#10 ;延時(shí)1S子程序
DL1: MOV R6,#200-----1T
DL2: MOV R5,#248------1T
DJNZ R5,$
DJNZ R6,DL2
DJNZ R7,DL1
RETLP
RET
這是如何延時(shí)的呢,晶振為12MHZ為T(mén)=1us,DJNZ為雙周期指令,主要是嵌套循環(huán)延時(shí)一秒,我們看計(jì)算結(jié)果:
DJNZ R5,$-----------------------248*2=496500us
DJNZ R6,DL2----------------------(496+1+2)*200=99800us
DJNZ R7,DL1------------------------(99800+2+1)*10=998030~~1s;
總結(jié)
以上所述是小編給大家介紹的匯編語(yǔ)言軟件延時(shí)1s的實(shí)現(xiàn)方法,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺(jué)得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
相關(guān)文章
匯編語(yǔ)言指令集之條件轉(zhuǎn)移指令實(shí)現(xiàn)
這篇文章主要介紹了匯編語(yǔ)言指令集之條件轉(zhuǎn)移指令實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01
匯編語(yǔ)言功能字符串大小寫(xiě)轉(zhuǎn)換實(shí)現(xiàn)實(shí)例詳解
這篇文章主要為大家介紹了匯編語(yǔ)言功能大小寫(xiě)轉(zhuǎn)換實(shí)現(xiàn)的實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2021-11-11
使用匯編語(yǔ)言實(shí)現(xiàn)if else 循環(huán)函數(shù)調(diào)用的具體方法
這篇文章主要介紹了使用匯編語(yǔ)言實(shí)現(xiàn)if else 循環(huán)函數(shù)調(diào)用的具體方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01
ARM匯編判斷之如何用匯編判斷數(shù)組中正負(fù)數(shù)個(gè)數(shù)
這篇文章主要介紹了ARM匯編判斷之如何用匯編判斷數(shù)組中正負(fù)數(shù)個(gè)數(shù),在匯編語(yǔ)言中程序的基本框架是不變的,這里我們可以直接把正向遍歷的程序給貼過(guò)來(lái),然后我們思考怎么運(yùn)用判斷后綴把數(shù)組中正數(shù)和負(fù)數(shù)分開(kāi),進(jìn)行判斷個(gè)數(shù)和分別求和,需要的朋友可以參考下2022-04-04

