⑴ 匯編語言子程序是如何定義的
這樣定義的:
子程序名 PROC NEAR|FAR
.
.
RET
子程序名 ENDP
子程序名相當於標號,表示本過程的符號地址。過程有NEAR和FAR兩種類型,FAR型的過程可供段間調用,NEAR型過程僅供段內調用。
在一個過程中,至少要有一條返回指令RET,它可以書寫在過程中的任何位置,但是過程執行的的最後一條指令一定是RET。
注意事項
一、子程序調用指令
格式:CALL [NEAR PTR] 子程序名
CALL指令的兩個作用,1.將斷點地址(CALL指令的下一條指令地址)壓棧保存,2.轉去子程序執行。
[NEAR PTR]可以省略。
二、返回指令
格式:RET [N]
指令作用:實現子程序執行完後返回主程序的指令。從堆棧棧頂彈出一個字數據(段內調用)送入IP作為返回地址。N是立即數,執行完RET之後,再將SP增加N,也叫「平棧」。
⑵ 什麼是子程序,如何使用子程序呢
子程序(subroutine)是一個概括性的術語,任何高級程序所調用的程序,都被稱為子程序。它經常被使用在匯編語言層級上。子程序的主體(body)是一個代碼區塊,當它被調用時就會進入運行。
一般程序設計語言包含兩種基本的抽象:過程抽象和數據抽象。過程抽象有時也稱控制抽象。子程序是最主要過程抽象機制。面向對象語言中的方法與子程序的概念十分相似,不同在於它們的調用以及它們與類或對象關聯的方式。每個子程序只有一個入口。在執行期間,調用程序單位被停止執行,即任意時刻只有一個子程序在執行子程序執行完畢後,總是將控制返回給調用程序
(2)匯編語言子程序寫在哪裡擴展閱讀:
子程序的應用
1、零件上若干處具有相同的輪廓形狀,在這種情況下,只要編寫一個加工該輪廓形狀的子程序,然後用主程序多次調用該子程序的方法完成對工件的加工。
2、加工中反復出現具有相同軌跡的走刀路線,如果相同軌跡的走刀路線出現在某個加工區域或在這個區域的各個層面上,採用子程序編寫加工程序比較方便,在程序中常用增量值確定切入深度。
3、在加工較復雜的零件時,往往包含許多獨立的工序,有時工序之間需要適當的調整,為了優化加工程序,把每一個獨立的工序編成一個子程序,這樣形成了模塊式的程序結構,便於對加工順序的調整,主程序中只有換刀和調用子程序等指令。