入口參數(shù)和出口參數(shù) 在匯編語言程序設計中,主程序與子程序之間進行參數(shù)傳遞的方法有哪些?
在匯編語言程序設計中,主程序與子程序之間進行參數(shù)傳遞的方法有哪些?在匯編語言中,有幾種方法可以在主程序和子程序之間傳遞參數(shù):1。寄存器方法寄存器方法是將進入?yún)?shù)和退出參數(shù)存儲在約定的寄存器中。優(yōu)點:數(shù)
在匯編語言程序設計中,主程序與子程序之間進行參數(shù)傳遞的方法有哪些?
在匯編語言中,有幾種方法可以在主程序和子程序之間傳遞參數(shù):1。寄存器方法寄存器方法是將進入?yún)?shù)和退出參數(shù)存儲在約定的寄存器中。優(yōu)點:數(shù)據(jù)傳輸,讀取速度快,編程方便,節(jié)省存儲單元。缺點:當傳遞的參數(shù)太多時,寄存器數(shù)量有限,并且寄存器使用頻繁,這將導致寄存器不足。應用:參數(shù)較少的子程序2。傳統(tǒng)的單元方法:顧名思義,入口和出口參數(shù)被放置在預定的單元中。優(yōu)點:無需寄存器,參數(shù)任意多,待處理數(shù)據(jù)獨立存儲單元,各子程序可發(fā)送結(jié)構(gòu)。缺點:使用一定數(shù)量的存儲單元增加了編程中變量定義的難度。三。Stack方法Stack方法使用Stack傳遞參數(shù)。優(yōu)點:參數(shù)不占用寄存器和內(nèi)存單元。參數(shù)存儲在公共堆棧區(qū)域,并在處理后恢復。一般來說,參數(shù)的數(shù)目是不受限制的。但是,由于參數(shù)和子程序是混合在一起的,因此在訪問參數(shù)時需要仔細計算其在堆棧中的位置。注意斷點的存儲和恢復。4地址表法這種方法是把一個由參數(shù)組成的參數(shù)表放在一個存儲區(qū)內(nèi),然后只要主程序和子程序在第一個地址和存儲區(qū)的內(nèi)容上達成一致,主程序就會把這些參數(shù)傳遞給地址表,子程序就可以按此順序完成操作地址表中給定的參數(shù)。
匯編語言中子程序可以調(diào)用子程序嗎?
當然,匯編語言子程序可以調(diào)用其他子程序。在編程時,引入子程序的主要目的是減少重復代碼,使其易于閱讀,并使過程清晰。示例如下:主:MOV A,#0費莫夫R2,#8循環(huán):LCALL KEYSCANJB00h,loop1mov P0,ARL amov R7,lcalldelaysjmp looploop1:RR amov R7,lcalldelaysjmp loopkeyscan:鍵檢測子程序JB P1.0,鍵無鍵退出mov R7,?20延遲子程序通過參數(shù)lcall delay調(diào)用延遲子程序JNB P1.0,$等待鍵解除CPL 00h,并且密鑰處理位00h被反轉(zhuǎn)鍵:RETDELAY:MOV R3,#250DJNZ R3,$DJNZ R7,延遲終止