彙編指令
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.
【例】
SUB BL,AL
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
Sub語句
描述
聲明 Sub 過程的名稱、參數以及構成其主體的代碼。
語法
[ Private| Public| Friend] [ Static] Sub name[ ( arglist )]
[ statements]
[ Exit Sub]
[ statements]
End Sub
Sub語句的語法包含下面部分:
部分 | 描述 |
Public | 可選的。表示所有模組的所有其它過程都可訪問這個 Sub過程。 如果在包含 Option Private的模組中使用,則這個過程在該工程外是不可使用的。 |
Private | 可選的。表示只有在包含其聲明的模組中的其它過程可以訪問該 Sub過程。 |
Friend | 可選的。只能在類模組中使用。表示該 Sub過程在整個工程中都是可見的,但對對象實例的控制者是不可見的。 |
Static | 可選的。表示在調用之間保留 Sub過程的局部變數的值。 Static屬性對在 Sub外聲明的變數不會產生影響,即使過程中也使用了這些變數。 |
name | 必需的。 Sub的名稱;遵循標準的變數命名約定。 |
arglist | 可選的。代表在調用時要傳遞給 Sub過程的參數的變數列表。多個變數則用逗號隔開。 |
statements | 可選的。 Sub過程中所執行的任何語句組。 |
參數
其中的 arglist參數的語法以及語法各個部分如下:
[ Optional] [ ByVal| ByRef] [ ParamArray] varname[ ( )] [ As type] [ = defaultvalue]
部分 | 描述 |
Optional | 可選的。表示參數不是必需的關鍵字。如果使用了該選項,則 arglist中的後續參數都必須是可選的,而且必須都使用 Optional關鍵字聲明。如果使用了 ParamArray,則任何參數都不能使用 Optional。 |
ByVal | 可選的。表示該參數按值傳遞。 |
ByRef | 可選的。表示該參數按地址傳遞。 ByRef是 Visual Basic 的預設選項。 |
ParamArray | 可選的。只用於 arglist的最後一個參數,指明最後這個參數是一個 Variant元素的 Optional數組。使用 ParamArray關鍵字可以提供任意數目的參數。 ParamArray關鍵字不能與 ByVal, ByRef,或 Optional一起使用。 |
varname | 必需的。代表參數的變數的名稱;遵循標準的變數命名約定。 |
type | 可選的。傳遞給該過程的參數的數據類型,可以是 Byte、Boolean、Integer、Long、Currency、Single、Double、Decimal(尚不支持)、Date、String(只支持變長)、Object 或 Variant。如果沒有選擇參數 Optional ,則可以指定用戶定義類型,或對象類型。 |
defaultvalue | 可選的。任何常數或常數表達式。只對 Optional參數合法。如果類型為 Object,則顯式的預設值只能是 Nothing。 |
說明
如果沒有使用 Public、Private或 Friend顯式指定, Sub過程按預設情況就是公用的。如果沒有使用 Static,則在調用之後不會保留局部變數的值。 Friend關鍵字只能在類模組中使用。不過 Friend過程可以被工程的任何模組中的過程訪問。 Friend過程不會在其父類的類型庫中出現,且 Friend過程不能被後期綁定。
小心 Sub過程可以是遞歸的;也就是說,該過程可以調用自己來完成某個特定的任務。不過,遞歸可能會導致堆疊上溢。通常 Static關鍵字和遞歸的 Sub過程不在一起使用。
所有的可執行代碼都必須屬於某個過程。不能在別的 Sub、Function或 Property過程中定義 Sub過程。
Exit Sub語句使執行立即從一個 Sub過程中退出。程式接著從調用該 Sub過程的語句下一條語句執行。在 Sub過程的任何位置都可以有 Exit Sub語句。
Sub過程與 Function過程的相似之處是:它們都一個可以獲取參數,執行一系列語句,以及改變其參數的值的獨立過程。而與 Function過程不同的是:帶返回值的 Sub過程不能用於表達式。
可以使用過程名並後跟相應的參數列表來調用一個 Sub過程。請參閱 Call語句關於如何調用 Sub過程的詳細的說明信息。
在 Sub過程中使用的變數分為兩類:一類是在過程內顯式定義的,另一類則不是。在過程內顯式定義的變數(使用 Dim或等效方法)都是局部變數。對於使用了但又沒有在過程中顯式定義的變數,除非其在該過程外更高級別的位置有顯示地定義,否則也是局部的。
小心過程可以使用沒有在過程內顯式定義的變數,但只要有任何在模組級別定義的名稱與之同名,就會產生名稱衝突。如果過程中使用的未定義的變數與別的過程,常數,或變數的名稱相同,則認為過程使用的是模組級的名稱。顯式定義變數就可以避免這類衝突。可以使用 Option Explicit語句來強制顯式定義變數。
注意不能使用 GoSub、GoTo或 Return來進入或退出 Sub過程。
部分描述
Public 表示 Sub 過程可被所有 Script 中的所有其他過程訪問。
Private 表示 Sub 過程只可被聲明該過程的 Script 中的其他過程訪問。
Name Sub 的名稱,遵循標準變數命名約定。
Arglist 代表在調用時要傳遞給 Sub 過程的參數的變數列表。用逗號隔開多個變數。
Statements 在 Sub 過程主體內所執行的任何語句組。
arglist 參數包含下列語法和部分:[ByVal | ByRef] varname[( )]
部分 描述
ByVal 表示該參數按值傳遞。
ByRef 表示該參數按引用傳遞。
Varname 代表參數的變數名稱,遵循標準變數命名約定。
說明
如沒有顯式地指定使用 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 或等效方法)總是局部變數。對於那些沒有在過程中顯式聲明的變數也是局部的,除非在該過程外更高級別的位置顯式地聲明它們。
小心 過程可以使用沒有在過程內顯式聲明的變數,但只要有任何 script 級定義的名稱與之同名,就會產生名稱衝突。如果過程中引用的未聲明的變數與其他的過程、常數或變數的名稱相同,則會認為過程引用的是Script 級的名稱。顯式聲明變數可以避免這類衝突,使用 Option Explicit 語句可強制顯式聲明變數。
語言概念
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.
HTML標籤
定義及用法
在HTML語言中, <sub> 標籤可定義下標文本。例如:要求顯示:H20的2為下標記;,在html代碼中則需要寫成:H<sub>2</sub>0。和X² X<sup>2</sup>對應
包含在 <sub> 標籤和其結束標籤 </sub> 中的內容將會以當前文本流中字元高度的一半來顯示,但是與當前文本流中文字的字型和字號都是一樣的。
全局屬性
accesskey、class、contenteditable、data-*、dir、draggable、hidden、lang、tabindex、id、title、style、hidden
事件屬性
onbeforeonload、onfocus、onblur、onerror、ononline、onpagehide、onpageshow、onredo、onstorage、onundo
End Sub
可訪問性可以是 Public、Protected、Friend、Protected Friend 或 Private。
可以在模組、類和結構中定義 Sub 過程。默認情況下它們是 Public,這意味著可以從應用程式中的任意位置調用它們。
參數聲明
聲明過程的每個參數與聲明變數的方法一樣,都是指定參數名和數據類型。也可以指定傳遞機制,以及參數是否可選。
參數列表中每個參數的語法如下所示:
[Optional] [ByVal|ByRef] [ParamArray] argumentname As datatype
如果參數是可選的,則還必須在其聲明中提供默認值,如下所示:
Optional [ByVal|ByRef] argumentname As datatype = defaultvalue
調用語法
可以使用獨立的調用語句來顯式調用 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")
請參見
過程 | 事件處理過程 | Function 過程 | Property 過程 | 過程參數 | Sub 語句
調節聲音選單
SUB超重低音調整
FRD前後衰減調整
BAL左右平衡調整
GRE的Sub考試
Sub考試的全稱是GRE-subject test,國內稱為專項考試或者叫做專業GRE,其目的在於考查考生的專業知識綜合能力和相關英語能力。我們通常所說的GRE是指GRE的General Test,而GRE專項考試,即 Subject test,測試內容為某一學科領域或專業領域內的知識和技能以及相關能力。
sub考試有以下8門課程:BiochemistryCell and Molecular Biology(生化), Literature in English(英語文學), Biology(生物), Mathematics(數學), Chemistry(化學), Physics(物理)Computer Science(計算機), Psychology(心理學)。
參加Sub考試主要因為三種情況:
第一,想申請的學校院系要求GRE Sub成績;
第二,GPA不太好,想通過Sub成績來彌補一下;
第三,跨專業申請。但請特別注意Sub考試是否和你申請的專業對口。
考試內容
考試時間是170分鐘,各專業都一樣。各個專業的題目數量不同,但都是單項選擇題,每道題5個選項。
算分方法
參見Bulletin的說明。簡言之,就是每答對1道題目加一分,答錯了扣0.25分,空著不答不算分。也就是說答錯了要倒扣分的。所有題目這樣子算下來之後得到一個Raw Score,然後再去標準化一下就得到Scaled Score和Percentile,也就是最終送到手裡的成績。
考試時間和考試地點?
在中國大陸地區每年只有一次考試,一般在11月初,General考試後第二個或第三個禮拜六進行。其它地區的情況請參見ETS每年的bulletin上面的說明。
中國大陸地區的考點也可以在Bulletin上找到。相比General Test而言考點顯得稀少一些。
sub-> submarine sandwich 潛水艇三明治
sub 有 副官;部下的意思,而在java中的subclass意為子類。
魔方術語
語法標註解釋subtraction的縮寫
SUB-X:意思就是少於的意思,在這就是“在X秒以下”之意
比如某高手說sub15秒,就是說,他的平均復原時間在15秒內,或者說,他大多數情況下成績都在15秒內.
SUB不代表平均,平均使用"AVG"
一般練習時測12次,去掉最高和最低成績,剩餘10次取平均,而平均在15以下就是Sub15