標籤:
轉載:http://blog.sina.com.cn/s/blog_4be6adec01007xvg.html80X86 彙編指令符號大全
+、-、*、/∶算術運算子。
&∶宏處理操作符。宏擴充時不識別符號和字串中的形式參數,如果在形式參數前面加上一個& 記號,宏組譯工具就能夠用實在參數代替這個形式參數了。
$∶地址計數器的值——記錄正在被組譯工具翻譯的語句地址。每個段均分配一個計數器,段內定義的所有標號和變數的位移地址就是當前彙編地址計數器的值。
?∶運算元。在資料定義語句中,運算元用?,其作用是分配並保留儲存空間,但不存入確定的資料。
=∶等號偽指令——符號定義。對符號進行定義和賦值,功能與 EQU相似,但允許(重複)再定義。
:∶修改屬性運算子(操作符)——段操作符。用來臨時給變數、標號或地址運算式指定一個段屬性(不用預設的段寄存器),自動產生一個“跨段首碼位元組”。注意,段寄存器CS和ES不能被跨越,堆棧操作時也不能跨越SS。
;∶注釋符號。
%∶特殊宏操作符,用來將其後的運算式(通常是符號常數,不能是變數名和寄存器名)轉換成它所代表的數值,並將此數值的ASCII碼嵌入到宏擴充中。
( )∶1.運算子——用來改變運算子的優先順序別。2.教材符號,表示括弧記憶體儲單元(或寄存器)的內容。
< >∶宏調用時用來將帶間隔符(如空格,逗號等)的字串(作為實參)括起來。
[ ]∶1.運算子。方括弧括起來的數是陣列變數的下標或地址運算式。帶方括弧的地址運算式必須遵循下列原則,①只有BX、BP、SI、DI這四個寄存器可在方括弧內出現;②BX或BP可單獨出現在各方括弧中,也可以與常數、SI或DI一起出現在方括弧內,但不允許BX和BP出現在同一個方括弧內;③SI和DI可以單獨出現在各方括弧內,也可以與常數、BP或BX一起出現在方括弧內,但不允許SI和DI出現在同一個方括弧內;④一個方括弧內包含多個寄存器時,它們只能作加法運算;⑤若方括弧內包含基址指標BP,則隱含使用堆棧段寄存器SS提供段基址,否則均隱含使用資料區段寄存器DS提供段基址。2.教材符號,表示其中的內容可省略。
.LIST∶ 偽指令。用於開啟列表檔案輸出。
.RADIX∶偽指令。把預設的基數改為2-16範圍內的任意基數。.RADIX不影響DD、DQ、DT偽指令,在這些偽指令中,輸入的數值只要沒有加上資料類型就認為是十進位數。
.XLIST∶偽指令。用於關閉列表檔案輸出。
%OUT∶偽指令。在彙編時顯示其後的資訊。
AAA∶ 指令助記符——加法運算後的ASCII調整(非壓縮的BCD碼)。無運算元,調整的加法結果在AL中。AF和CF的狀態改變說明結果大於9。檢查AL的低四位是否為合法的BCD碼(0-9),如果合法就清除AL的高四位以及AF和CF標誌。當AL的低四位表示的數大於 9或AF=1時, 將AL加 6,AH加1 ,並使AF和CF置位,清除AL中的高四位。任何一個A—F之間的數加上6 以後,都會使AL低 4位產生0-9之間的數,從而達到調整的目的。
AAD∶ 指令助記符——除法的ASCII調整(非壓縮的BCD碼)。在執行除法操作前,必須利用 AAD指令將非壓縮型 BCD碼錶示的數轉換成位元送AL。步驟是,先將被除數的高位元(AH中的內容)乘以10,然後加到AL的低位元中,接著將AH清零。
AAM∶ 指令助記符——乘法的ASCII調整(非壓縮的BCD碼)。用於將位元組乘法的積轉換成兩個合法的十進位非壓縮碼。AAM不帶運算元,假定成績在AH和AL中,並將調整後的非壓縮碼送回AH和AL。為了保證 AAM得到正確的結果,原乘數和被乘數必須是合法的非壓縮碼。指令執行時,AAM 用10(0AH) 除AL寄存器,並將除得的商和餘數分別送AH和AL寄存器,實現轉換。
AAS∶ 指令助記符——減法運算後的ASCII調整(非壓縮的BCD碼)。檢查AL的低四位是否為合法的BCD碼(0-9),如果合法就清除AL的高四位以及AF和CF標誌。當AL的低四位表示的數大於 9或AF=1時, 將AL減 6,AH減1 ,並使AF和CF置1,清除AL中的高四位。
ADC∶ 指令助記符——帶進位加法(把CF的值加上)。用於多位元組數的高位元組加法運算。
ADD∶ 指令助記符——加法。參與運算的二運算元應該同時帶符號或不帶符號 ,並且長度一致。運算元可以是寄存器、儲存空間或立即數,但不能同時為儲存單元或段寄存器,立即數也不能作為目的運算元。
AF∶ Auxiliary Carry Flag,輔助進位標誌,在標誌寄存器的第4位元組。記錄運算時第 3位(半個位元組)產生的進位值(置1)。該標誌用於對BCD碼的加減運算中。
AND∶邏輯運算子(在語句的運算元部分,彙編時完成)或邏輯操作指令助記符(在語句的作業碼部分,其運算在執行指令時完成)——按位與。只有相“與”的兩位全為1 ,結果才為1。某數自己與自己相“與”,運算元不變,進位標誌CF清0 。
ASSUME∶段定義偽指令——設定分段寄存器,格式為"ASSUME 段寄存器:段名[,段寄存器名:段名]"。在程式碼片段的開始用來指出所有段與段寄存器的關係,確定某個段分配給哪個段寄存器。ASSUME只指出各段寄存器的分配,並沒有把段地址裝入相應的段寄存器。為此,在程式碼片段中,還必須把資料區段和附加資料區段的段地址裝入相應的寄存器中。
AT∶偽指令——段定義(組合類別型)。該段按絕對位址定位,段基址為數值運算式的值,位移量為0 。不能指定程式碼片段。
AX∶ Accumulator,通用寄存器,算術運算的主要寄存器。另外,所有的I/O指令都使用這一寄存器與外部裝置傳送資訊。其中AH是高8位,AL是低8位。
B∶ 資料類型尾碼,表示二進位常量。
BP∶Base Pointer, 基址指標寄存器。可以與SS寄存器聯用來確定堆棧中任一儲存單元的地址。它指示堆棧中任一單元的位移量。非堆棧進出指令要訪問堆棧,只能通過BP進行。
BX∶Base,通用寄存器。在計算儲存空間地址時,經常用作基底位址暫存器。其中BH是高 8位,BL是低 8位。
BYTE∶偽指令——段定義(定位類型)。本段起始單元可以從任一地址開始,段間不留空隙,儲存空間利用率最高。
CALL∶指令助記符——程式調用。
一、段內直接調用:格式為" CALL 過程名"。先把IP內容(子程式的返回地址,即CALL下一條指令的地址)壓入堆棧,然後IP轉移到子程式的入口地址。
二、段內間接調用:格式為" CALL WORD PTR OPD"。先把IP的內容壓入堆棧,然後IP指向(轉到)由定址方式決定的EA。
三、段間直接調用。格式為"CALL FAR PTR 過程名"。先把CS和IP的內容壓入堆棧,然後在CS中裝入新的段地址,IP指向段內位移地址。
四、段間間接調用:格式為"CALL DWORD PTR OPD"。 先把CS和IP的內容壓入堆棧,然後把定址方式確定的有效地址所指定的一個字儲存單元的內容送入IP,下一個字儲存單元的內容(段首址)送入CS。
CBW∶指令助記符——位元組轉換為字。把AL中位元組的符號擴充到AH中,若(AL)的最高有效位為0 ,則(AH)=00;若(AH)的最高有效位為1, 則(AH)=0FFH。
CF∶Carry Flag,進位標誌,在標誌寄存器的第0位元組 ,記錄運算時從最高有效位產生的進位值(置1)。 作加法時,CF位可以用來表示無符號數的溢出(有符號數溢出用OF表示)。
CLC∶ 指令助記符——標誌(進位)設定。設定CF=0。
CLD∶ 指令助記符——清方向標誌。使DF=0 。這樣,當執行位元組串操作指令時,地址自動增1 ;當執行字串操作指令時,地址自動增2 。
CLI∶ 指令助記符——中斷允許標誌設定。設定IF=0 。
CMC∶ 指令助記符——標誌(進位)設定。CF取反。
CMP∶ 指令助記符——比較。對於“ CMP AX,BX” ,如果是兩個無符號數比 較(減),若結果沒有產生借位,即CF=0, 則(AX)≥(BX);若CF= 1,則(AX)〈(BX)。 如果是兩個帶符號數比較,則 當沒有溢出(OF=0)時,若SF=0,則(AX)〉(BX) 若SF=1,則(AX)〈(BX) 當產生溢出(OF=1)時,若SF=0,則(AX)〈(BX) 多SF=1,則(AX)〉(BX) 簡煉的結論,若 OF 異或 SF=0,則(AX)〉(BX) 若 OF 異或 SF=1,則(AX)〈(BX)
CMPS∶指令助記符——串比較。通常用CMPSB或CMPSW。
CMPSB∶ 指令助記符——串比較。將DS段SI指出的位元組資料減去ES段DI指出的位元組資料(不儲存結果),然後根據相減結果設定標誌位(兩個資料相等,則ZF=1)。 並由方向標誌DF修改SI 和DI中的地址,即當DF=0時,地址都加1; 當DF=1時, 地址都減1 。
CMPSW∶ 指令助記符——串比較。將DS段SI指出的字資料減去ES段DI指出的字資料(不儲存結果),然後根據相減結果設定標誌位(兩個資料相等,則ZF=1)。 並由方向標誌DF修改SI 和DI中的地址,即當DF=0時,地址都加2; 當DF=1時, 地址都減2 。
COMMON∶偽指令——段定義(組合類別型)。該段與其它模組中所有也說明為COMMON的同名,同‘類別‘段共用相同的儲存地區,即這些段的起始地址都相同,共用的公用儲存地區的長度是各模組同名段中最大的長度。使用COMMON方式可以使不同模組中的不同變數或標號作用於相同的儲存單元。
CS∶Code Segment,程式碼片段寄存器,存放當前啟動並執行程式碼片段起始地址(高16位)。程式碼片段存放當前正在啟動並執行程式。
CWD∶ 指令助記符——字轉換為雙字。把AX中位元組的符號擴充到DX中,若(AX)的最高有效位為0 ,則(DX)=0000;若(AX)的最高有效位為1, 則(DX)=0FFFFH。
CX∶Count, 通用寄存器。在迴圈和串處理指示中用作隱含的計數器。其中CH是高 8位,CL是低 8位。
DAA∶ 指令助記符——加法的十進位調整(壓縮的BCD碼)。 無運算元,調整 的加法結果在AL中。調整方法是,如果AL的低 4位大於9 或AF=1 ,則加 6 到AL共置AF=1 ;如果AL的高 4位大於 9或CF=1 ,則加60H 到AL,並 置CF=1 。
DAS∶ 指令助記符——減法的十進位調整(壓縮的BCD碼)。 調整方法是,若AF=1 或AL的低4位為A—F,則(AL)減06H,且AF置 1;若CF=1 或AL的高 4位為A—F,則(AL)減60H,且CF置1。
DB∶ 偽指令——定義位元組。其後的每個運算元佔用一個位元組。若是字串, 必須用引號‘ ‘括起來,字串不能超過 255個字元,字串自左至右以 字元的ASCII碼按地址遞增的順序依次存放。
DD∶ 偽指令——定義雙字。其後的每個運算元佔用二個字(低字在前)。 DD還可以把其後的變數或標號的位移地址和所在段首址存入儲存空間內指定 的雙字單元(即DD前面的變數)中,第一個字中存放DD後的變數的位移地址, 第二個字中存放該變數所在段的段首址。
DEC∶ 指令助記符——減1 。運算元可以是寄存器或儲存空間單元,但不能是段 寄存器或立即數。
DF∶Direction Flag,方向標誌,在標誌寄存器的第 10位元組,在串處理指示中控制處理資訊的方向。DF為1時是反向,每次操作後使SI和DI減量(這樣就使串處理從高地址向低地址方向處理);當DF為0時是正向,使SI和DI增量。
DI∶Destination Index,目的變址寄存器。與ES聯用,用來確定資料區段中某一儲存單元的位移地址。在串處理指示中,DI指出目的運算元的地址,隱含段為當前的附加段。
DIV∶ 指令助記符——無符號數除法。
對於位元組操作,16位被除數(若被除數為 8位,需用符號擴充的方法 ,即用CBW 指令擴充到16位)放在AX中, 8位除數為源運算元,相除結果 ,8位商在AL中,而 8位餘數在AH中。
對於字操作,32位被除數(若被除數為16位,用CWD 指令擴充到32位)放在DX和AX中,16位除數為源運算元,相除結果,字(16位)商在AX中 ,字餘數在DX中。
源運算元不能是立即運算元,指令執行後,源運算元的值不變。
如果商超過目標寄存器能存放的最大數值時,系統產生0 類中斷。
被除數若需要轉換為雙精確度值時,一定不能用符號擴充,而只能將高16位送0("MOV DX,0")。
DQ∶ 偽指令——定義四字。其後的每個運算元佔用四個字。
DS∶Data Segment,資料區段寄存器。存放資料區段的起始地址(高16位)。資料區段存放當前運行程式所用的資料,如果程式中使用了串處理指示,則其源運算元也存放在資料區段中。
DT∶ 偽指令——定義十位元組。其後的每個運算元佔用十個位元組。
DUP∶ 複製操作符。DUP 前面的常量或運算式的值(正整數)指明DUP 後面的括弧中的運算元之重複次數。
DW∶ 偽指令——定義字。其後的每個運算元佔用一個字(低位元組在前,高位元組在後)。DW可以給兩個字元組成的字串(用‘ ‘括起來) 分配兩個位元組的儲存單元(前一個字元在高位元組)。DW還可以把其後的變數或標號的位移地址存入儲存空間的指定單元(即DW前的變數)。
DX∶Data,通用寄存器。在作雙字長運算時,把DX和AX組合在一起存放一個雙字數,DX用來存放高位字。此外,對某些I/O 操作,DX可用來存放 I/O的連接埠地址。其中DH是高 8位,DL是低 8位。
EA∶ 教材符號----某一儲存單元的位移地址,即該單元到它所在段首址的位元組距離。
ELSE∶偽指令——條件。條件不滿足時彙編ELSE至ENDIF之間的程式塊。
END∶ 偽指令——程式模組結束。主程式模組結束,END 後要接標號(儲存空間地址),指出程式開始執行的地址 。子程式不用。
ENDIF∶偽指令——條件(結尾)。
ENDM∶巨集指令——①宏定義(結尾)。②重複塊(結尾)。
ENDP∶偽指令——過程(子程式)定義(結尾)。
ENDS∶偽指令——段定義或結構定義(結尾)。
ES∶Extra Segment,附加段寄存器。 用於存放附加段的起始地址(高16位)。附加段是一個輔助的資料區,也是串處理指示的目的操作資料存放區。
ESC∶指令助記符——交權給外部副處理器。是在大模式下使用的一條指令,它可以使外部副處理器從 8086/8088指令流中獲得一個作業碼和一個運算元,並使用8086/8088 的定址方式。指令後的作業碼是一個 6位的立即數 ,其中 3位用來指明哪一個副處理器工作,另外 3位指明這個處理器執行什麼指令。隨後的源運算元若是寄存器,則8086/8088 直接將其內容放置在資料匯流排上;如果這個源運算元是儲存變數,則8086/8088 從儲存空間中取出運算元並放到資料匯流排上,從而使外部副處理器可以擷取這個運算元,對它進行運算。
EQ∶ 關係運算子——相等。若滿足條件,輸出結果為全1 (所有的位),否則為全0 。
EQU∶ 等價偽指令 。格式為"符號名 EQU 運算式". EQU可以把它前面的符號定義為一個常量或一個能求出常數值的運算式,或定義為別的符號名,甚至定義為一條可執行檔命令。不得重複定義。
例一,"新變數名 EQU THIS DWORD",該語句將緊跟其後的變數重新定義為雙字類,以新變數名命名。資料存放區區首址不變。
例二,"新變數名 EQU WORD PTR 舊變數名",該語句將舊變數重新定義為字類型,以新變數名命名。資料存放區區首址不變。
EVEN∶偽指令。它使此語句後面的程式或資料區塊的起始地址為偶數。
EXTRN∶偽指令——定義外部符號。格式是 EXTRN 符號名:類型 。表示本模組中需要引用但卻是在其他模組中定義說明為PUBLIC的那些符號(符號常量、變數、標號以及過程名)。符號類型必須與他們在其他模組定義時的符號類型保持一致。
FLAGS∶ 標誌寄存器(即PSW)。
GE∶ 關係運算子——大於等於。若滿足條件,輸出結果為全 1 (所有的位),否則為全0 。
GROUP∶ 偽指令——分組。把模組中若干不同名的段集合成一個組,並賦予一個組名,使它們都裝在一個物理段中(64KB)。可以得到較緊湊的代碼,組內各段間的跳轉都可以看作是段內跳轉。
格式是 組名 GROUP <段名1,段名2,……>
GT∶ 關係運算子——大於。若滿足條件,輸出結果為全1 (所有的位),否則為全0 。
H∶ 資料類型尾碼,表示十六進位常量。
HIGH∶ 位元組分解運算子(操作符)。用來從運算對象(一個數或地址運算式)中分離出(取)高位元組。
HLT∶ 指令助記符——停機。該指令使處理器處於暫停狀態,該狀態可以由複位訊號、非屏蔽插斷要求訊號以及IF=1 情況下可屏蔽中斷訊號清除。
IDIV∶指令助記符——帶符號數除法。 對於位元組操作,16位被除數(若被除數為 8位,需用符號擴充的方法,即用CBW 指令擴充到16位)放在AX中, 8位除數為源運算元,相除結果,8位商在AL中,而 8位餘數在AH中。 對於字操作,32位被除數(若被除數為16位,用CWD 指令擴充到32位)放在DX和AX中,16位除數為源運算元,相除結果,字(16位)商在AX中,字餘數在DX中。 餘數的符號必須和被除數的符號相同。
IF∶Interrupt Flag,①中斷標誌, 在標誌寄存器的第9位元組,當IF為1時,允許中斷,即CPU響應外設的插斷要求。②偽指令——條件(運算式的值不等於0 為真)。若條件成立,則彙編整個程式塊;但中間若有ELSE命令,則只彙編到ELSE;當條件不成立時,只彙編從ELSE到ENDIF 之間的程式塊。
IF1∶ 偽指令——條件(若是第一趟掃描,條件為真)。
IF2∶ 偽指令——條件(若是第二趟掃描,條件為真)。
IFB∶ 偽指令——條件(若其後的參數對應的實參存在,為真)。
IFDEF∶ 偽指令——條件(若其後的符號已定義或被說明為外部符號,則條件為真)。
IFDIF∶偽指令——條件(若兩個字串參數不相同,則條件為真)。
IFE∶ 偽指令——條件(運算式的值等於0 時,條件為真)。
IFIDN∶偽指令——條件(若兩個字串參數相同,則條件為真)。
IFNB∶偽指令——條件(若其後的參數對應的實參不存在,為真)。
IFNDEF∶偽指令——條件(若其後的符號未定義或未被說明為外部符號,則條件為真)。
IMUL∶指令助記符——帶符號的整數乘法。 對於位元組乘法,(AL)*(源運算元)---> AX; 對於字乘法, (AX)*(源運算元)---> AX和DX; 若結果的高半部分(AH或DX,對應位元組和字)是低半部分的符號擴充,則CF=0,OF=0; 否則,CF=1,OF=1,表示在AH(對於位元組)或DX(對於字)中包含結果的有效值。
IN∶指令助記符——輸入。允許把一個字或位元組由輸入連接埠(port)傳送到AX或AL。連接埠地址可以用直接定址(IN AL n),也可用DX間接定址(IN AL,DX)。8 位地址直接定址,可定址256 個連接埠;DX間接定址,可定址64K個連接埠。
INC∶ 指令助記符——加1。 運算元可以是寄存器或儲存空間單元,但不能是段寄存器或立即數。狀態標誌CF不受影響。
INCLUDE∶ 偽指令。當宏組譯工具彙編到INCLUDE偽指令時,立即開啟INCLUDE指示的檔案,並把它彙編到當前的源檔案中去,直到該檔案被彙編結束,組譯工具繼續彙編INCLUDE偽指令之後的語句。INCLUDE可以嵌套。
INT∶ 指令助記符——中斷調用。運算元是使用者定義的中斷類型,它可以實現256種不同的中斷。當指令執行時,首先將標誌寄存器內容進棧,清除IF和TF標誌並將當前CS內容進棧;然後將中斷類型乘以4 ,得到中斷向量地址;最後取中斷向量的第二個字送CS,將IP進棧,取中斷向量的第一個字送IP。由於CS:IP指向中斷服務程式,因此可以實現指定中斷類型的段間調用。
INTO∶指令助記符——溢出中斷。只有OF=1 時才進入溢出中斷(IF和TF被改為0)。
IP∶Instruction Pointer,控制寄存器——指令指標寄存器。用來存放程式碼片段中指令的位移地址。在程式啟動並執行過程中,它始終指向下一條指令的首地址。它與CS聯用,確定下一條要執行的指令的物理地址。IP寄存器不能用於算術運算,也不能直接存取,但可以用控制轉移指令加以改變。
IRET∶指令助記符——中斷返回。執行該指令時,從棧中退出三個16位的值,分別送IP、CS和標誌寄存器。
IRP∶ 巨集指令——重複塊(以ENDM結束)。IRP 形參,<實參1,實參2,…> 這種巨集指令用於帶立即數的偽操作。實參是使用者指定的立即數,它的個數就是重複的次數,每重複一次,就用一個實參代替形參。
IRPC∶巨集指令——重複塊(以ENDM結束)。IRPC 形參,字串這種巨集指令用於帶字串的重複偽操作。重複次數由字串中字元個數確定。每次重複,依次用字串中的一個字元替代形參,直到字元替代完畢。
JA∶ 無符號數條件轉移指令助記符——(無符號數比較)高於轉移(等價JBE)。CF=0,且ZF=0 則轉移(段內直接短轉移)。
JAE∶ 無符號數條件轉移指令助記符——(無符號數比較)高於或等於轉移(等價JNB)。CF=0 , 或ZF=1 則轉移(段內直接短轉移)。
JB∶ 無符號數條件轉移指令助記符——(無符號數比較)低於轉移(等價JNAE)。CF=1, 且ZF=0 則轉移(段內直接短轉移)。
JBE∶ 無符號數條件轉移指令助記符——(無符號數比較)低於或等於轉移(等價JNA)。CF=1 或ZF=1 則轉移。
JC∶ 簡單條件轉移指令助記符——有進位轉移。CF=1 則轉移(段內直接短轉移,產生 8位的位移量,即轉移地址的位移量在—128 到+127之間)。
JCXZ∶指令助記符——條件轉移。(CX)=0, 則轉移(段內直接短轉移?)。
JE∶ 簡單條件轉移指令助記符——(兩數比較)相等轉移(同JZ)。前次操作結果為0,ZF=1則轉移(段內直接短轉移)。
JG∶有符號數條件轉移指令助記符——(有符號數比較)大於轉移(等價JNLE)。SF和OF同號,且ZF=0 時轉移。(段內直接短轉移)
JGE∶ 有符號數條件轉移指令助記符——(有符號數比較)大於或等於轉移(等價於JNL)。 當SF和OF同號,或ZF=1, 則轉移(段內直接短轉移)。
JL∶ 有符號數條件轉移指令助記符——(有符號數比較)小於轉移(等價於JNGE)。當SF和OF異號,且ZF=0 時轉移(段內直接短轉移)。
JLE∶
指令助記符——(有符號數比較)小於或等於轉移(等價於JNG)。當SF和OF異號或ZF=1時轉移(段內直接短轉移)。
JMP∶ 指令助記符——無條件轉移。無條件轉移到指令所指示的目標地址,並從該地址開始執行。目標地址可以從指令中直接得到,也可以從指令中給定的寄存器或儲存空間中得到。
一、段內直接短轉移 JMP SHORT 標號。標號是轉移的目的地址,由它確定一個 8位位移量。這個位移量被加到IP寄存器中。位移量是一個帶符號數,負數表示向前轉移,正數表示向後轉移。轉移範圍是—128至+127。
二、段內直接近轉移 JMP NEAR PTR 標號。 標號是轉移的目的地址,由它確定一個16位位移量。這個位移量被加到IP寄存器中。位移量是一個帶符號數,負數表示向前轉移,正數表示向後轉移。轉移範圍是—32768至+32767。
三、段內間接轉移 ①JMP AX (段內寄存器間接轉移);②JMP [BX](段記憶體儲器間接轉移)。將指令中給定的寄存器或儲存單元中的內容送到IP中。
四、段間直接轉移 JMP FAR PTR 標號。 標號為符號地址。
JNB∶ 無符號數條件轉移指令助記符——(無符號數比較)不低於轉移(等價JAE)。CF=0,或ZF=1 則轉移(段內直接短轉移)。
JNBE∶無符號數條件轉移指令助記符——(無符號數比較)不低於且不等於轉移(等價JA)。CF=0, 且ZF=0 則轉移(段內直接短轉移)。
JNC∶ 簡單條件轉移指令助記符——前次操作無進或進位位轉移。CF=0 則轉移(段內直接短轉移)。
JNE∶ 簡單條件轉移指令助記符——不相等轉移(同JNZ)。前次操作結果不等於0,ZF=0 則轉移(段內直接短轉移)。
JNG∶ 指令助記符——(有符號數比較)不大於轉移(等價於JLE)。當SF和OF異號或ZF=1時轉移(段內直接短轉移)。
學習linux核心時常碰到的彙編指令(1)