㈠ C語言的子程序有哪幾種,什麼是邏輯類型集合類型什麼是C語言用戶標識符
匯編語言的實質和機器語言是相同的,都是直接對硬體操作,只不過指令採用了英文縮寫的標識符,更容易識別和記憶。它同樣需要前仔編程者將每一步具體的操作用命令的形式寫出來。匯編程序通常由三部分組成:指令、偽指令和宏指令。匯編程序的每一句指令只能對應實際操作過程中的一個很細微的動作,例如移動、自增,因此匯編源程序一般比較冗長、復雜、容易出錯,而且使用匯編語言編程需要有更多的計算機專業知識,但匯編語言的優點也是顯而易見的,用匯編慧滾汪語言所能完成的操作不是一般高級語言所能實現的,而且源程序經匯編生成的可執行文件不僅比較小,而且執行速度很快備彎。
㈡ 3、子程序的RET指令執行時,FAR 類型和 NEAR類型有何差異為什麼
子程序名相當於標號,表示本過程的符號地址。
過程有NEAR和FAR兩種類型,FAR型的過程可供段間調用,NEAR型過程僅供段內調用。 在一個過程中辯消,至少要有一條返回指升御令RET,它可以書寫在過程中的任何位置,但是過程執行的的最後一條指令一定是RET。
子程序在其任務完成後,執行的最後一條匯編指令是RET。根據對該子程序的調用是段內調用還是段間調用,其要實現的操作是不相同的。如果是段內調用,那麼RET指令的功能只是把存放在堆棧里的返回地址送IP寄存器;如果是段間調用,那麼RET指令的功能就是要把存放在堆棧里的返回地址和段地址,分別送IP寄存器和CS寄存器。因此,RET指令的使用也有多種吵灶岩形式:段內返回、段內帶立即數返回、段間返回和段間帶立即數返回。
㈢ 誰能告訴我一些關於數控車床的系統及它的指令
數控車床程序的構成
一、 主程序和子程序
1、 主程序
程序分為主程序和子程序,通常CNC系統按主程序指令運行,但在主程序中遇見調用子程序的情形時,則 CNC 系統將按子程序的指令運行,在子程序調用結束後控制權重新交給主程序。
CNC 存儲區內可存 l25個主程序和子程序。程序開始的程序號用 EIA 標准代碼O地址指令。
2、子程序
在程序中有一些順序固定或反復出現的加工圖形,把這些作為子程序,預先寫人到存儲器中,可 大大簡化程序。
機電專業技術網
子程序和主程序必須存在同一個文件中,調出的子程序可以再調用另一個子程序,我們將主程序調用子程序稱為一重子程序調用,子程序調用子程序稱為多重調用。
一個子程序可被多次調用,用一次調用指令可以重復 999 次調用。
l )子程序的編制
在子程序的開始為O地址指定的程序號、子程序中最後結束子程序指令 M99 ,為一單獨程序段。
2 )子程序的執行
子程序是由主程序或上層子程序調山並執行的。
子程序調用指令如下:
M98 P **** L x x x x
調用子程序指令 子程序號 子程序調用次數
子程序調用次數的默認值為 1
(例 l ) ; M98PL002L5 %1002 號子程序被連續調用 5 次 機電專業技術網
M98 指令可與刀具移動指令放於同一程序段中。
[注1]子程序和主程序必須存在同一個文件中
[注2]子程序名和主程序名不得相同。
[注3]M98 , M99 信號不愉出到機床處,
[注4]當找不到 p 地址指定的子程序號時報警。
[注5]在 MDI 下使用 M98 P **** 調用指定的子程序是無效的。
二、文件名
CNG 裝置可以裝人許多程序文件,以磁碟文件的方式讀寫。文件名格式為(有別於DOS的其他文件名) :
%XXXX(地址 O 後面必須有四位數字)
程序以程序號開始,以 M 叩或 M 的結束。
程序號格式為% XxXx ; (地址 O 後面必須有四位數字)
M02 表示主程序結束。 機電專業技術網
M99 表示子程序結束,並返回到主程序中。
三、順序號和程序段
程序是由多條指令組成,每一條指令都稱為程序段(佔一行)。
程序段之間應用符號隔開,本說明書規定每個程序段的末尾以「;」作為程序段的結束,構成程序段的要素是程序字,程序字由地址及其後續的數值構成。
[注1] 程序段中字元數沒有限制.
[注2] ISO代碼中程序段結束符號為 LF
EIA 代碼中程序段結束符號為 CRo
程序順序號由 N 指明,范圍為1—9999,順序號是任意給定的,可以不連續可以在所有的程序段中都指定順序號,也可只在必要的程序段指明順序號
四、字和地址
程序段由字組成,而字由地址和地址後帶符號的數字構成,如下所示:
X-----------------------------1000
機電專業技術網
[地址 數字] 字
地址是大寫字母 A 到 2 中的一個,它規定了其後數字的意義,以下是本系統使用的各個地址的含義和指令值范圍。見表 1一1
機電專業技術網
表 1一1
機電專業技術網
這些字組合在一起就形成了一個程序段,如下例所示:
M10 Xl00 Z200 M03
注 1 NC 裝置所引起的限制和機床的限制是二個完全不同的概念,例如 NC 裝置 X 軸的移動量可以指令約 l0m(m米為單位時) 但實際機床的 X 軸行程可能只有 2m,進給速度也是如此,作為 NC 裝置可以進給速度控制到15m/分,但實際的機床就要限制到3m/分,因而,當編程序時,應將系統說明書與機床說明書熟悉,在很好理解的基礎上。
注 2 每轉進給速度是根據主抽轉速而轉換成每分鍾進給量後按每分鍾進給量執行的
http://jdzyjs.com/jixie/gc/8617.html
http://bbs.cmiw.cn/forums/4020/ShowPost.aspx
http://cncol.com.cn/Article/pro/200610/523.html
http://jdzyjs.com/jixie/gc/8647.html
㈣ 請問大家 匯編語言中 子程序調用指令和跳轉指令有什麼區別謝謝
簡單點說,call指令在跳轉前保存當前指令地址,而jmp一類的指令不保存當前指令的地址。
詳細點說:
call指令在跳轉前會在棧中保存當前的程序計數器(IP)的值(有必要的話還要保存CS),保存完IP的值後,再去執行跳轉指令。即相當於:
push CS (沒有這種指令,有沒有這一句還要看調用的類型:far/near)
push IP (沒有這種指令)
jmp [word ptr/dword ptr] ...
這樣,程序在執行ret/retf指令時就能從棧中取出IP的值,即相當於:
pop IP (沒有這種指令)
pop CS (沒有這種指令,有沒有這一句也要看調用的類型)
來繼續執行call指令後的其他指令,當然你也可以選擇不執行ret,而把call當做jmp來用。這樣也沒有問題(沒人這么干),只不過棧里多了點東西罷了,記得處理就好。
而形如jmp一類的指令只是簡單的執行跳轉(修改IP的值),並不保存IP的值。當然跳轉後程序也就不知道原來是從哪裡跳轉到這里來的,自然就無法返回。
當然,這個時候ret指令還是可以用的,因為ret指令只是簡單的從棧頂取出一個word然後賦給IP,所以也可以用ret指令來實現jmp的功能(也沒人這么干)。如:
mov bx,offset s
push bx
ret
這樣就相當於:
jmp s
所以說不要只是記一個指令怎麼用,而是要理解一個指令到底是什麼原理。
㈤ 子程序的末尾有什麼指令
子程序的末尾一定要有RETI指令,子程序的調用是LCALL和ACALL。
RETI是中斷返回指令,這條指令的功能和RET指令相似,2條指令的不同之處是:本指令清除了中斷響應時,被置1的MCS-51內部不可定址的 「優先順序生效」觸發器清零。
執行這條指令後,CPU將會把堆棧中保存著的地址取出,送回PC,那麼程序就會從主程序的中斷處繼續往下執行了。中斷指令「RETI」作為中斷跳出指令,除了將堆棧中保存著的地址取出,送回PC,使程序從主程序的中斷處繼凳培續往下執行的作橡搏用外,還有將「優先順序梁粗祥生效」觸發器清零的功能。
(5)子程序有什麼和什麼兩大指令擴展閱讀
單片機匯編指令中RETI和RET的區別
通常情況下,在普通的匯編子程序中用RET做返回,在中斷服務子程序中用RETI起中斷返回作用。兩條指令都能從堆棧中彈出斷點地址並裝入PC中,使CPU回到原來主程序的斷點處繼續運行。
然而,RET和RETI有本質的區別:當某一中斷源響應後,單片機中的標志寄存器flag H和flag L其中的一個將會自動置位,用於阻止比它低級或同級的中斷觸發。RETI可以清除「優先順序激活觸發器」(即flag寄存器),以保證後續中斷源的及時響應。
所以,當把RETI替換為RET後,該程序在第一次運行時可能不會出錯,但在第二次運行時就會出錯了。
㈥ 什麼是子程序,如何使用子程序呢
子程序(subroutine)是一個概括性的術語,任何高級程序所調用的程序,都被稱為子程序。它經常被使用在匯編語言層級上。子程序的主體(body)是一個代碼區塊,當它被調用時就會進入運行。
一般程序設計語言包含兩種基本的抽象:過程抽象和數據抽象。過程抽象有時也稱控制抽象。子程序是最主要過程抽象機制。面向對象語言中的方法與子程序的概念十分相似,不同在於它們的調用以及它們與類或對象關聯的方式。每個子程序只有一個入口。在執行期間,調用程序單位被停止執行,即任意時刻只有一個子程序在執行子程序執行完畢後,總是將控制返回給調用程序
(6)子程序有什麼和什麼兩大指令擴展閱讀:
子程序的應用
1、零件上若干處具有相同的輪廓形狀,在這種情況下,只要編寫一個加工該輪廓形狀的子程序,然後用主程序多次調用該子程序的方法完成對工件的加工。
2、加工中反復出現具有相同軌跡的走刀路線,如果相同軌跡的走刀路線出現在某個加工區域或在這個區域的各個層面上,採用子程序編寫加工程序比較方便,在程序中常用增量值確定切入深度。
3、在加工較復雜的零件時,往往包含許多獨立的工序,有時工序之間需要適當的調整,為了優化加工程序,把每一個獨立的工序編成一個子程序,這樣形成了模塊式的程序結構,便於對加工順序的調整,主程序中只有換刀和調用子程序等指令。
㈦ 主程序調用子程序編程指令是什麼
主程序調用子程序編程指令是:右擊——插入——OB,然後填上OB100,OB由系統調用,並非由用戶調用。
一般會有輸入參數並有返回值,提供對過程的封裝和細節的隱藏。這些代碼通常被集成為軟體庫。函數在面向過程的語言中已經出現。是結構和類的前身。本身就是對具有相關性語句的歸類和對某過程的抽象。
轉子指令和返回指令:
在子程序的調用與返回過程中,子程序的入口地址是指子程序第一條指令的地址。用於調用子程序、控製程序的執行從主程序轉向子程序的指令稱為專注指令(子程序調用指令、過程調用指令)。為了正確調用子程序,必須在轉子指令中給出子程序的入口地址。
主程序中轉子指令的下一條指令的地址稱為斷點,斷點是子程序返回主程序的返回地址,從子程序返回主程序的指令稱為返回指令。為了在執行返回指令時能夠正確地返回主程序,轉子指令應具有保護斷點的功能。
執行轉子指令時保護斷點的方式有多種,常用的有:將斷點保存到子程序第一條指令的前一個字單元;將斷點保存到某一約定的寄存器中;將斷點壓入堆棧。