A. 匯編中什麼叫子程序
能被其他程序調用,在實現某種功能後能自動返回到調用程序去的程序。其最後一條指令一定是返回指令,故能保證重新返回到調用它的程序中去。也可調用其他子程序,甚至可自身調用
B. 匯編語言子程序是如何定義的
這樣定義的:
子程序名 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,也叫「平棧」。
C. 什麼是子程序,如何使用子程序呢
子程序(subroutine)是一個概括性的術語,任何高級程序所調用的程序,都被稱為子程序。它經常被使用在匯編語言層級上。子程序的主體(body)是一個代碼區塊,當它被調用時就會進入運行。
一般程序設計語言包含兩種基本的抽象:過程抽象和數據抽象。過程抽象有時也稱控制抽象。子程序是最主要過程抽象機制。面向對象語言中的方法與子程序的概念十分相似,不同在於它們的調用以及它們與類或對象關聯的方式。每個子程序只有一個入口。在執行期間,調用程序單位被停止執行,即任意時刻只有一個子程序在執行子程序執行完畢後,總是將控制返回給調用程序
(3)什麼是匯編子程序嵌套調用擴展閱讀:
子程序的應用
1、零件上若干處具有相同的輪廓形狀,在這種情況下,只要編寫一個加工該輪廓形狀的子程序,然後用主程序多次調用該子程序的方法完成對工件的加工。
2、加工中反復出現具有相同軌跡的走刀路線,如果相同軌跡的走刀路線出現在某個加工區域或在這個區域的各個層面上,採用子程序編寫加工程序比較方便,在程序中常用增量值確定切入深度。
3、在加工較復雜的零件時,往往包含許多獨立的工序,有時工序之間需要適當的調整,為了優化加工程序,把每一個獨立的工序編成一個子程序,這樣形成了模塊式的程序結構,便於對加工順序的調整,主程序中只有換刀和調用子程序等指令。
D. 什麼情況使用子程序,什麼是子程序的套深
當一段代碼需要在許多地方經常使用時,或者為了程序的結構更清晰將實現一定功能的程序段模塊化時,需要使用子程序。
在子程序再調用子程序,這就是嵌套,嵌套的層數即 套深。
E. 用匯編語言編寫子程序後如何調用
通過C語言函數形式封裝匯編語言程序段,而後就可完全按照C語言函數的形式調用。這種方法保證了子程序段與主程序銜接的完全適配,使用簡便。使用方法如下:
用低劃線_後接關鍵字asm指示後面的語句是匯編語句。匯編語句既可以是單句,例如__asm mov bx,1;也可以是復合語句,即,用花括弧對包含的多條單句,例如:
__asm
{ mov al, 3
mov dx, 0xE008
add ax,dx
}
在語法規則中,這些語句與C語言的語句完全等價。因此,可以直接進行編譯。
F. 數控車床中,什麼是子程序
當一個被加工零件,有多個部位有相同之處時,加工軌跡也相同,如一根軸上每10mm就切一槽,深度、寬度都是2mm,共5條槽,切槽程程序肯定相同,不同的是切完一條槽退出後,向一個方向移動10mm後再切,為了簡化程序,我們把那個切槽程序專門編寫一個程序,稱為子程序,那麼再切槽時就不必每次編寫程序而可調用5次子程序,並且切完槽後回到目前的程序(主程序),繼續進行其它該做的程序。 當然間距不等而槽形相同也一樣能調用子程序。
那個子程序與主程序一樣,有一個獨立的程序號,不包含在主程序里,實際上也是一個程序。