複製鏈接
請複製以下鏈接發送給好友

SUB

(圖形格式字幕)

鎖定
SUB是一種圖形格式字幕,由idx和sub文件組成,有時也能看到ifo文件,不過這個已經不怎麼用的上了。idx相當於索引文件,裏面包括了字幕出現的時間碼和字幕顯示屬性等。sub文件就是存放字幕本身了,注意是圖片格式的,所以比較大,動輒10M以上了。idx+sub可以存放很多語言的字幕,提供了在播放的時候的選擇。
中文名
SUB
實    質
圖形格式字幕
包    括
idx和sub
功    能
索引文件

SUB彙編指令

SUB:不帶借位的減法指令。
指令格式】SUB OP1,OP2
指令功能】(OP1)←(OP1)-(OP2),將OP1-OP2的值,保存在OP1中,如:
SUB [EAX],1 以EAX寄存器為內存地址,將該地址的值減1,類似C/C++中的 i--;
【指令介紹】
目的操作數減去源操作數,結果放在目的操作數中。源操作數原有內容不變,並根據運算結果置標誌位SF,ZF,AF,PF,CF,OF
SUB指令可以進行字節或字的減法運算,源操作數和目的操作數的約定與ADD指令相同。
操作數的類型可以根據程序員的要求約定為帶符號數或者無符號數。當無符號數的較小數減去較大數時,因不夠減而產生借位,此時進位標誌CF置1.當帶符號數的較小數減去較大數時,將會得到負的結果,則符號位SF置1.帶符號數相減,如果溢出,則OF置1. [1] 
【例】
  1. SUB BL,AL
設(BL)=23H,(AL)=78H,(BL)=23H-78H=ABH(1010101)
根據運算結果,各標誌位為:CF=1,ZF=0,SF=1,OF=0,PF=0,AF=1
2. SUB SI,SI
寄存器自身相減,則結果為零,此時:
OF=0,SF=0,ZF=1,PF=1,CF=0

SUBSub語句

SUB描述

聲明 Sub 過程的名稱、參數以及構成其主體的代碼。

SUB語法

[Private|Public|Friend] [Static]Subname[(arglist)]
[Exit Sub]
[statements]
End Sub
Sub語句的語法包含下面部分:
部分
描述
Public
可選的。表示所有模塊的所有其它過程都可訪問這個Sub過程。 如果在包含Option Private的模塊中使用,則這個過程在該工程外是不可使用的。
Private
可選的。表示只有在包含其聲明的模塊中的其它過程可以訪問該Sub過程。
Friend
可選的。只能在類模塊中使用。表示該Sub過程在整個工程中都是可見的,但對對象實例的控制者是不可見的。
Static
可選的。表示在調用之間保留Sub過程的局部變量的值。Static屬性對在Sub外聲明的變量不會產生影響,即使過程中也使用了這些變量。
name
必需的。Sub的名稱;遵循標準的變量命名約定。
arglist
可選的。代表在調用時要傳遞給Sub過程的參數的變量列表。多個變量則用逗號隔開。
statements
可選的。Sub過程中所執行的任何語句組。

SUB參數

其中的arglist參數的語法以及語法各個部分如下:
[Optional] [ByVal|ByRef] [ParamArray]varname[( )] [Astype] [=defaultvalue]
部分
描述
Optional
可選的。表示參數不是必需的關鍵字。如果使用了該選項,則arglist中的後續參數都必須是可選的,而且必須都使用Optional關鍵字聲明。如果使用了ParamArray,則任何參數都不能使用Optional
ByVal
可選的。表示該參數按值傳遞。
ByRef
可選的。表示該參數按地址傳遞。ByRef是 Visual Basic 的缺省選項。
ParamArray
可選的。只用於arglist的最後一個參數,指明最後這個參數是一個Variant元素的Optional數組。使用ParamArray關鍵字可以提供任意數目的參數。ParamArray關鍵字不能與ByValByRef,或Optional一起使用。
varname
必需的。代表參數的變量的名稱;遵循標準的變量命名約定。
type
可選的。傳遞給該過程的參數的數據類型,可以是 Byte、Boolean、Integer、Long、Currency、Single、Double、Decimal(尚不支持)、Date、String(只支持變長)、Object 或 Variant。如果沒有選擇參數Optional,則可以指定用户定義類型,或對象類型。
defaultvalue
可選的。任何常數或常數表達式。只對Optional參數合法。如果類型為Object,則顯式的缺省值只能是Nothing

SUB説明

如果沒有使用Public、PrivateFriend顯式指定,Sub過程按缺省情況就是公用的。如果沒有使用Static,則在調用之後不會保留局部變量的值。Friend關鍵字只能在類模塊中使用。不過Friend過程可以被工程的任何模塊中的過程訪問。Friend過程不會在其父類的類型庫中出現,且Friend過程不能被後期綁定。
小心Sub過程可以是遞歸的;也就是説,該過程可以調用自己來完成某個特定的任務。不過,遞歸可能會導致堆棧上溢。通常Static關鍵字和遞歸的Sub過程不在一起使用。
所有的可執行代碼都必須屬於某個過程。不能在別的Sub、FunctionProperty過程中定義Sub過程。
Exit Sub語句使執行立即從一個Sub過程中退出。程序接着從調用該Sub過程的語句下一條語句執行。在Sub過程的任何位置都可以有Exit Sub語句。
Sub過程與Function過程的相似之處是:它們都一個可以獲取參數,執行一系列語句,以及改變其參數的值的獨立過程。而與Function過程不同的是:帶返回值Sub過程不能用於表達式
可以使用過程名並後跟相應的參數列表來調用一個Sub過程。請參閲Call語句關於如何調用Sub過程的詳細的説明信息。
Sub過程中使用的變量分為兩類:一類是在過程內顯式定義的,另一類則不是。在過程內顯式定義的變量(使用Dim或等效方法)都是局部變量。對於使用了但又沒有在過程中顯式定義的變量,除非其在該過程外更高級別的位置有顯示地定義,否則也是局部的。
小心過程可以使用沒有在過程內顯式定義的變量,但只要有任何在模塊級別定義的名稱與之同名,就會產生名稱衝突。如果過程中使用的未定義的變量與別的過程,常數,或變量的名稱相同,則認為過程使用的是模塊級的名稱。顯式定義變量就可以避免這類衝突。可以使用Option Explicit語句來強制顯式定義變量。
注意不能使用GoSub、GoToReturn來進入或退出Sub過程。

SUB部分描述

Public 表示 Sub 過程可被所有 Script 中的所有其他過程訪問。
Private 表示 Sub 過程只可被聲明該過程的 Script 中的其他過程訪問。
Name Sub 的名稱,遵循標準變量命名約定
Arglist 代表在調用時要傳遞給 Sub 過程的參數的變量列表。用逗號隔開多個變量。
Statements 在 Sub 過程主體內所執行的任何語句組。
arglist 參數包含下列語法和部分:[ByVal | ByRef] varname[( )]
部分 描述
ByVal 表示該參數按值傳遞
ByRef 表示該參數按引用傳遞
Varname 代表參數的變量名稱,遵循標準變量命名約定

SUB説明

如沒有顯式地指定使用 Public 或 Private,則 Sub 過程默認為公用,即它們對於 Script 中的所有其他過程都是可見的。Sub 過程中局部變量的值在調用過程中不被保留。
所有可執行代碼必須包含於過程中。不能在另一個 Sub 或 Function 過程中定義一個 Sub 過程。
使用 Exit Sub 語句可以立即從 Sub 過程中退出。程序繼續執行調用 Sub 過程的語句之後的語句。可以在 Sub 過程中任意位置出現任意個 Exit Sub 語句。
與 Function 過程相似之處是:Sub 過程是一個可以獲取參數,執行一系列語句以及可改變其參數的值的獨立過程。而與 Function 過程不同之處是:Function 過程可以返回值,而 Sub 過程不能用於表達式中。
可以使用過程名並跟隨相應的參數列表來調用 Sub 過程。關於如何調用 Sub 過程的詳細説明信息,請參閲 Call 語句。
小心 Sub 過程可以是遞歸的,即該過程可以調用自己來完成某個給定的任務。但是遞歸可能會導致堆棧溢出
在 Sub 過程中使用的變量分為兩類:一類是在過程內顯式聲明的,另一類則不是。在過程內顯式聲明的變量(使用 Dim 或等效方法)總是局部變量。對於那些沒有在過程中顯式聲明的變量也是局部的,除非在該過程外更高級別的位置顯式地聲明它們。 [2] 
小心 過程可以使用沒有在過程內顯式聲明的變量,但只要有任何 script 級定義的名稱與之同名,就會產生名稱衝突。如果過程中引用的未聲明的變量與其他的過程、常數或變量的名稱相同,則會認為過程引用的是Script 級的名稱。顯式聲明變量可以避免這類衝突,使用 Option Explicit 語句可強制顯式聲明變量。

SUB語言概念

Sub 過程
Sub 過程是包含在 Sub 語句和 End Sub 語句中的一系列 Visual Basic 語句。每次調用過程時都執行過程中的語句,從 Sub 語句後的第一個可執行語句開始,到遇到的第一個 End Sub、Exit Sub 或 Return 語句結束。
Sub 過程執行操作但並不返回值。它能夠帶參數,如呼叫代碼傳遞給它的常數、變量或表達式
聲明 Sub 過程的語法如下所示:
[accessibility] Sub subname[(argumentlist)]
' Statements of the Sub procedure go here.

SUBHTML標籤

SUB定義及用法

HTML語言中, 標籤可定義下標文本。例如:要求顯示:H20的2為下標記;,在html代碼中則需要寫成:H20。和X² X2對應
包含在 標籤和其結束標籤 中的內容將會以當前文本流中字符高度的一半來顯示,但是與當前文本流中文字的字體和字號都是一樣的。

SUB全局屬性

accesskey、class、contenteditable、data-*、dir、draggable、hidden、lang、tabindex、id、title、style、hidden [3] 

SUB事件屬性

onbeforeonload、onfocus、onblur、onerror、ononline、onpagehide、onpageshow、onredo、onstorage、onundo

SUBEnd Sub

可訪問性可以是 Public、Protected、Friend、Protected Friend 或 Private。
可以在模塊、類和結構中定義 Sub 過程。默認情況下它們是 Public,這意味着可以從應用程序中的任意位置調用它們。

SUB參數聲明

聲明過程的每個參數與聲明變量的方法一樣,都是指定參數名和數據類型。也可以指定傳遞機制,以及參數是否可選。
參數列表中每個參數的語法如下所示:
[Optional] [ByVal|ByRef] [ParamArray] argumentname As datatype
如果參數是可選的,則還必須在其聲明中提供默認值,如下所示:
Optional [ByVal|ByRef] argumentname As datatype = defaultvalue

SUB調用語法

可以使用獨立的調用語句來顯式調用 Sub 過程。不能在表達式中使用其名稱來調用它。調用語句必須提供所有非可選參數的值,並且必須用括號將參數列表括起來。如果未提供任何參數,則也可以選擇省略括號。Call關鍵字的使用也是可選的。
調用 Sub 過程的語法如下所示:
[Call] subname[(argumentlist)]
下面的 Sub 過程通知計算機操作員應用程序將要執行哪個任務,並且還顯示一個時間戳。應用程序不是在每個任務的開頭重複此代碼,而僅是從不同的位置調用 TellOperator。每次調用都會傳遞 Task 參數中的字符串以標識開始執行的任務。
Sub TellOperator(ByVal Task As String)
Dim Stamp As Date ' Stamp is local to TellOperator.
Stamp = TimeOfDay() ' Get current time for time stamp.
' Use MessageBox class of System.Windows.Forms namespace.
MessageBox.Show("Starting " & Task & " at " & CStr(Stamp))
End Sub
典型的 TellOperator 調用如下所示:
Call TellOperator("file update")

SUB請參見

過程 | 事件處理過程 | Function 過程 | Property 過程 | 過程參數 | Sub 語句
調節聲音菜單
SUB超重低音調整
FRD前後衰減調整
BAL左右平衡調整
參考資料