日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀] 子程序調(diào)用指令共兩條:一條為長(zhǎng)調(diào)用指令,另一條為絕對(duì)調(diào)用指令。都為1字節(jié)2周期指令,兩條指令都從堆棧中取出以前壓入的16位地址送入PC,從而完成子程序的返回。長(zhǎng)調(diào)用指令LCALL addr16是一條三字節(jié)的

子程序調(diào)用指令共兩條:一條為長(zhǎng)調(diào)用指令,另一條為絕對(duì)調(diào)用指令。都為1字節(jié)2周期指令,兩條指令都從堆棧中取出以前壓入的16位地址送入PC,從而完成子程序的返回。

長(zhǎng)調(diào)用指令LCALL addr16是一條三字節(jié)的兩周期指令,指令碼格式為12,16位地址高8位,16位地址低8位。該指令完成下列操作:先將PC內(nèi)容加3,再將PC內(nèi)容壓入堆棧,最后將指令中的16位地址addr16送入PC中,長(zhǎng)調(diào)用的子程序調(diào)用范圍是64KB。


在子程序結(jié)束時(shí)運(yùn)行子程序返加指令RET,這條指令的運(yùn)行過程:將堆棧指針SP指向的棧頂單元中的數(shù)據(jù)彈出以程序計(jì)數(shù)器PC的高8位中,堆棧指針SP減1,使其指向棧頂,此時(shí),PC中的數(shù)據(jù)恰好就是子程序調(diào)用指令的下一條指令地址。

絕對(duì)調(diào)用指令A(yù)CALL addr11為兩字節(jié)兩周期指令。指令完成下列操作:先將PC內(nèi)容加2,再將PC內(nèi)容壓入堆棧;最后將11位地址addr11送入PC的低11位,這條指令的調(diào)用范圍是2KB

指令A(yù)CLL SUB1的地址為0600H,這條指令的下一條指令地址應(yīng)為0602H,則該指令能跳轉(zhuǎn)到的最低地址為保持PC高5位不變,而低11位全為0的地址,即0000H,能跳轉(zhuǎn)到的最高的地址為保持PC高5位不變,而低11位全為1的地址,即07FFH,所以在本例中,這條轉(zhuǎn)移指令的跳轉(zhuǎn)范圍為0000H-07FFH,標(biāo)號(hào)LAB1的地址為0700H,在指令能跳轉(zhuǎn)的范圍內(nèi)。

在實(shí)際編程時(shí),我們不用計(jì)算機(jī)器碼,編譯系統(tǒng)會(huì)根據(jù)程序中使用的地址號(hào)自動(dòng)將其轉(zhuǎn)為機(jī)器碼,但在編程時(shí)要注意到所使用的標(biāo)號(hào)是否超出指令能轉(zhuǎn)移的范圍,假定這段程序運(yùn)行前,堆棧指針SP中的數(shù)據(jù)為10H,則程序運(yùn)行過程如下:PC指針加2,使其指向下一條指令的地址,堆棧指針SP加1,PC低8位壓棧,堆棧指針SP加1,PC高8位壓棧,將機(jī)器碼第一字節(jié)的高3位送入程序計(jì)數(shù)器PC的D10D9D8,將機(jī)器碼第二字節(jié)送入PC低8位,則程序跳轉(zhuǎn)到0700去運(yùn)行子程序SUB1。在子程序結(jié)束時(shí)運(yùn)行子程序返回指令RET。

空操作指令NOP控制CPU不作任何操作,只消耗這條指令執(zhí)行所需的機(jī)器周期,該指令是單字節(jié)單周期指令,機(jī)器碼為00,這條指令常暖和于待待或延遲。


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉