




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、80X86 匯編指令符號(hào)大全 +、-、*、/算術(shù)運(yùn)算符。 &宏處理操作符。宏擴(kuò)展時(shí)不識(shí)別符號(hào)和字符串中的形式參數(shù),如果在形式參數(shù)前面加上一個(gè)& 記號(hào),宏匯編程序就能夠用實(shí)在參數(shù)代替這個(gè)形式參數(shù)了。 $地址計(jì)數(shù)器的值記錄正在被匯編程序翻譯的語(yǔ)句地址。每個(gè)段均分配一個(gè)計(jì)數(shù)器,段內(nèi)定義的所有標(biāo)號(hào)和變量的偏移地址就是當(dāng)前匯編地址計(jì)數(shù)器的值。 ?操作數(shù)。在數(shù)據(jù)定義語(yǔ)句中,操作數(shù)用?,其作用是分配并保留存儲(chǔ)空間,但不存入確定的數(shù)據(jù)。 等號(hào)偽指令符號(hào)定義。對(duì)符號(hào)進(jìn)行定義和賦值,功能與 EQU相似,但允許(重復(fù))再
2、定義。 :修改屬性運(yùn)算符(操作符)段操作符。用來(lái)臨時(shí)給變量、標(biāo)號(hào)或地址表達(dá)式指定一個(gè)段屬性(不用缺省的段寄存器),自動(dòng)生成一個(gè)“跨段前綴字節(jié)”。注意,段寄存器CS和ES不能被跨越,堆棧操作時(shí)也不能跨越SS。 ;注釋符號(hào)。 %特殊宏操作符,用來(lái)將其后的表達(dá)式(通常是符號(hào)常數(shù),不能是變量名和寄存器名)轉(zhuǎn)換成它所代表的數(shù)值,并將此數(shù)值的ASCII碼嵌入到宏擴(kuò)展中。 ( )1.運(yùn)算符用來(lái)改變運(yùn)算符的優(yōu)先級(jí)別。2.教材符號(hào),表示括號(hào)內(nèi)存儲(chǔ)單元(或寄存器)的內(nèi)容。 < >宏調(diào)用時(shí)用來(lái)將帶間隔符(如空格,逗號(hào)等)的字符串(作為
3、實(shí)參)括起來(lái)。 1.運(yùn)算符。方括號(hào)括起來(lái)的數(shù)是數(shù)組變量的下標(biāo)或地址表達(dá)式。帶方括號(hào)的地址表達(dá)式必須遵循下列原則,只有BX、BP、SI、DI這四個(gè)寄存器可在方括號(hào)內(nèi)出現(xiàn);BX或BP可單獨(dú)出現(xiàn)在各方括號(hào)中,也可以與常數(shù)、SI或DI一起出現(xiàn)在方括號(hào)內(nèi),但不允許BX和BP出現(xiàn)在同一個(gè)方括號(hào)內(nèi);SI和DI可以單獨(dú)出現(xiàn)在各方括號(hào)內(nèi),也可以與常數(shù)、BP或BX一起出現(xiàn)在方括號(hào)內(nèi),但不允許SI和DI出現(xiàn)在同一個(gè)方括號(hào)內(nèi);一個(gè)方括號(hào)內(nèi)包含多個(gè)寄存器時(shí),它們只能作加法運(yùn)算;若方括號(hào)內(nèi)包含基址指針BP,則隱含使用堆棧段寄存器SS提供段基址,否則均隱含使用數(shù)據(jù)段寄存器DS提供段基址。2.教材符號(hào),
4、表示其中的內(nèi)容可省略。 .LIST 偽指令。用于打開(kāi)列表文件輸出。 .RADIX偽指令。把缺省的基數(shù)改為2-16范圍內(nèi)的任意基數(shù)。.RADIX不影響DD、DQ、DT偽指令,在這些偽指令中,輸入的數(shù)值只要沒(méi)有加上數(shù)據(jù)類型就認(rèn)為是十進(jìn)制數(shù)。 .XLIST偽指令。用于關(guān)閉列表文件輸出。 OUT偽指令。在匯編時(shí)顯示其后的信息。 AAA 指令助記符加法運(yùn)算后的ASCII調(diào)整(非壓縮的BCD碼)。無(wú)操作數(shù),調(diào)整的加法結(jié)果在AL中。AF和CF的狀態(tài)改變說(shuō)明結(jié)果大于9。檢查AL的低四位是否為合法的BCD碼(0-9),如果合法就清除AL的高四
5、位以及AF和CF標(biāo)志。當(dāng)AL的低四位表示的數(shù)大于 9或AF1時(shí), 將AL加 6,AH加1 ,并使AF和CF置位,清除AL中的高四位。任何一個(gè)AF之間的數(shù)加上6 以后,都會(huì)使AL低 4位產(chǎn)生0-9之間的數(shù),從而達(dá)到調(diào)整的目的。 AAD 指令助記符除法的ASCII調(diào)整(非壓縮的BCD碼)。在執(zhí)行除法操作前,必須利用 AAD指令將非壓縮型 BCD碼表示的數(shù)轉(zhuǎn)換成二進(jìn)制數(shù)送AL。步驟是,先將被除數(shù)的高位數(shù)(AH中的內(nèi)容)乘以10,然后加到AL的低位數(shù)中,接著將AH清零。 AAM 指令
6、助記符乘法的ASCII調(diào)整(非壓縮的BCD碼)。用于將字節(jié)乘法的積轉(zhuǎn)換成兩個(gè)合法的十進(jìn)制非壓縮碼。AAM不帶操作數(shù),假定成績(jī)?cè)贏H和AL中,并將調(diào)整后的非壓縮碼送回AH和AL。為了保證 AAM得到正確的結(jié)果,原乘數(shù)和被乘數(shù)必須是合法的非壓縮碼。指令執(zhí)行時(shí),AAM 用10(0AH) 除AL寄存器,并將除得的商和余數(shù)分別送AH和AL寄存器,實(shí)現(xiàn)轉(zhuǎn)換。 AAS 指令助記符減法運(yùn)算后的ASCII調(diào)整(非壓縮的BCD碼)。檢查AL的低四位是否為合法的BCD碼(0-9),如果合法就清除AL的高四位以及AF和CF標(biāo)志。當(dāng)AL的低四位表示的數(shù)大于 9
7、或AF1時(shí), 將AL減 6,AH減1 ,并使AF和CF置1,清除AL中的高四位。 ADC 指令助記符帶進(jìn)位加法(把CF的值加上)。用于多字節(jié)數(shù)的高字節(jié)加法運(yùn)算。 ADD 指令助記符加法。參與運(yùn)算的二操作數(shù)應(yīng)該同時(shí)帶符號(hào)或不帶符號(hào) ,并且長(zhǎng)度一致。操作數(shù)可以是寄存器、存儲(chǔ)器或立即數(shù),但不能同時(shí)為存儲(chǔ)單元或段寄存器,立即數(shù)也不能作為目的操作數(shù)。 AF Auxiliary Carry Flag,輔助進(jìn)位標(biāo)志,在標(biāo)志寄存器的第4字節(jié)。記錄運(yùn)算時(shí)第 3位(半個(gè)字節(jié))產(chǎn)生的進(jìn)位
8、值(置1)。該標(biāo)志用于對(duì)BCD碼的加減運(yùn)算中。 AND邏輯運(yùn)算符(在語(yǔ)句的操作數(shù)部分,匯編時(shí)完成)或邏輯操作指令助記符(在語(yǔ)句的操作碼部分,其運(yùn)算在執(zhí)行指令時(shí)完成)按位與。只有相“與”的兩位全為1 ,結(jié)果才為1。某數(shù)自己與自己相“與”,操作數(shù)不變,進(jìn)位標(biāo)志CF清0 。 ASSUME段定義偽指令設(shè)定分段寄存器,格式為"ASSUME 段寄存器:段名,段寄存器名:段名"。在代碼段的開(kāi)始用來(lái)指出所有段與段寄存器的關(guān)系,確定某個(gè)段分配給哪個(gè)段寄存器。ASSUME只指出各段寄存器的分配,并沒(méi)有把段地址裝入相應(yīng)的段寄存器。為此,在代碼段中
9、,還必須把數(shù)據(jù)段和附加數(shù)據(jù)段的段地址裝入相應(yīng)的寄存器中。 AT偽指令段定義(組合類型)。該段按絕對(duì)地址定位,段基址為數(shù)值表達(dá)式的值,位移量為0 。不能指定代碼段。 AX Accumulator,通用寄存器,算術(shù)運(yùn)算的主要寄存器。另外,所有的I/O指令都使用這一寄存器與外部設(shè)備傳送信息。其中AH是高8位,AL是低8位。 B 數(shù)據(jù)類型后綴,表示二進(jìn)制常量。 BPBase Pointer, 基址指針寄存器??梢耘cSS寄存器聯(lián)用來(lái)確定堆棧中任一存儲(chǔ)單元的地址。它指示堆棧中任一單元的偏移量。非堆棧進(jìn)出指令要訪問(wèn)堆棧
10、,只能通過(guò)BP進(jìn)行。 BXBase,通用寄存器。在計(jì)算存儲(chǔ)器地址時(shí),經(jīng)常用作基址寄存器。其中BH是高 8位,BL是低 8位。 BYTE偽指令段定義(定位類型)。本段起始單元可以從任一地址開(kāi)始,段間不留空隙,存儲(chǔ)器利用率最高。 CALL指令助記符程序調(diào)用。一、段內(nèi)直接調(diào)用:格式為" CALL 過(guò)程名"。先把IP內(nèi)容(子程序的返回地址,即CALL下一條指令的地址)壓入堆棧,然后IP轉(zhuǎn)移到子程序的入口地址。二、段內(nèi)間接調(diào)用:格式為" CALL WORD PTR
11、OPD"。先把IP的內(nèi)容壓入堆棧,然后IP指向(轉(zhuǎn)到)由尋址方式?jīng)Q定的EA。三、段間直接調(diào)用。格式為"CALL FAR PTR 過(guò)程名"。先把CS和IP的內(nèi)容壓入堆棧,然后在CS中裝入新的段地址,IP指向段內(nèi)偏移地址。四、段間間接調(diào)用:格式為"CALL DWORD PTR OPD"。 先把CS和IP的內(nèi)容壓入堆棧,然后把尋址方式確定的有效地址所指定的一個(gè)字儲(chǔ)存單元的內(nèi)容送入IP,下一個(gè)字存儲(chǔ)單元的內(nèi)容(段首址)送入CS。 CBW指令助記符字節(jié)轉(zhuǎn)換為字。把AL中字節(jié)的
12、符號(hào)擴(kuò)展到AH中,若(AL)的最高有效位為0 ,則(AH)00;若(AH)的最高有效位為1, 則(AH)0FFH。 CFCarry Flag,進(jìn)位標(biāo)志,在標(biāo)志寄存器的第0字節(jié) ,記錄運(yùn)算時(shí)從最高有效位產(chǎn)生的進(jìn)位值(置1)。 作加法時(shí),CF位可以用來(lái)表示無(wú)符號(hào)數(shù)的溢出(有符號(hào)數(shù)溢出用OF表示)。 CLC 指令助記符標(biāo)志(進(jìn)位)設(shè)置。設(shè)置CF0。 CLD 指令助記符清方向標(biāo)志。使DF0 。這樣,當(dāng)執(zhí)行字節(jié)串操作指令時(shí),地址自動(dòng)增1 ;當(dāng)執(zhí)行字串操作指令時(shí),地址自動(dòng)增2
13、。 CLI 指令助記符中斷允許標(biāo)志設(shè)置。設(shè)置IF0 。 CMC 指令助記符標(biāo)志(進(jìn)位)設(shè)置。CF取反。 CMP 指令助記符比較。對(duì)于“ CMP AX,BX” ,如果是兩個(gè)無(wú)符號(hào)數(shù)比 較(減),若結(jié)果沒(méi)有產(chǎn)生借位,即CF0, 則(AX)(BX);若CF 1,則(AX)(BX)。 如果是兩個(gè)帶符號(hào)數(shù)比較,則 當(dāng)沒(méi)有溢出(OF0)時(shí),若SF0,則(AX)(BX) 若SF1,則(AX)(BX) 當(dāng)產(chǎn)生溢出(OF1)時(shí),若SF0,則(A
14、X)(BX) 多SF1,則(AX)(BX) 簡(jiǎn)煉的結(jié)論,若 OF 異或 SF0,則(AX)(BX) 若 OF 異或 SF1,則(AX)(BX) CMPS指令助記符串比較。通常用CMPSB或CMPSW。 CMPSB 指令助記符串比較。將DS段SI指出的字節(jié)數(shù)據(jù)減去ES段DI指出的字節(jié)數(shù)據(jù)(不保存結(jié)果),然后根據(jù)相減結(jié)果設(shè)置標(biāo)志位(兩個(gè)數(shù)據(jù)相等,則ZF1)。 并由方向標(biāo)志DF修改SI 和DI中的地址,即當(dāng)DF0時(shí),地址都加1; 當(dāng)DF1時(shí),
15、;地址都減1 。 CMPSW 指令助記符串比較。將DS段SI指出的字?jǐn)?shù)據(jù)減去ES段DI指出的字?jǐn)?shù)據(jù)(不保存結(jié)果),然后根據(jù)相減結(jié)果設(shè)置標(biāo)志位(兩個(gè)數(shù)據(jù)相等,則ZF1)。 并由方向標(biāo)志DF修改SI 和DI中的地址,即當(dāng)DF0時(shí),地址都加2; 當(dāng)DF1時(shí), 地址都減2 。 COMMON偽指令段定義(組合類型)。該段與其它模塊中所有也說(shuō)明為COMMON的同名,同'類別'段共享相同的存儲(chǔ)區(qū)域,即這些段的起始地址都相同,共享的公共存儲(chǔ)區(qū)域的長(zhǎng)度是各模塊同名段中最大的長(zhǎng)度。使用COMMON方式可以使不
16、同模塊中的不同變量或標(biāo)號(hào)作用于相同的存儲(chǔ)單元。 CSCode Segment,代碼段寄存器,存放當(dāng)前運(yùn)行的代碼段起始地址(高16位)。代碼段存放當(dāng)前正在運(yùn)行的程序。 CWD 指令助記符字轉(zhuǎn)換為雙字。把AX中字節(jié)的符號(hào)擴(kuò)展到DX中,若(AX)的最高有效位為0 ,則(DX)0000;若(AX)的最高有效位為1, 則(DX)0FFFFH。 CXCount, 通用寄存器。在循環(huán)和串處理指令中用作隱含的計(jì)數(shù)器。其中CH是高 8位,CL是低 8位。 DAA 指令助記符加法的十進(jìn)制調(diào)整(壓
17、縮的BCD碼)。 無(wú)操作數(shù),調(diào)整 的加法結(jié)果在AL中。調(diào)整方法是,如果AL的低 4位大于9 或AF1 ,則加 6 到AL并置AF1 ;如果AL的高 4位大于 9或CF1 ,則加60H 到AL,并 置CF1 。 DAS 指令助記符減法的十進(jìn)制調(diào)整(壓縮的BCD碼)。 調(diào)整方法是,若AF1 或AL的低4位為AF,則(AL)減06H,且AF置 1;若CF1 或AL的高 4位為AF,則(AL)減
18、60H,且CF置1。 DB 偽指令定義字節(jié)。其后的每個(gè)操作數(shù)占用一個(gè)字節(jié)。若是字符串, 必須用引號(hào)' '括起來(lái),字符串不能超過(guò) 255個(gè)字符,字符串自左至右以 字符的ASCII碼按地址遞增的順序依次存放。 DD 偽指令定義雙字。其后的每個(gè)操作數(shù)占用二個(gè)字(低字在前)。 DD還可以把其后的變量或標(biāo)號(hào)的偏移地址和所在段首址存入存儲(chǔ)器內(nèi)指定 的雙字單元(即DD前面的變量)中,第一個(gè)字中存放DD后的變量的偏移地址, 第二個(gè)字中存放該變量所在段的段首址。 DEC
19、0;指令助記符減1 。操作數(shù)可以是寄存器或存儲(chǔ)器單元,但不能是段 寄存器或立即數(shù)。 DFDirection Flag,方向標(biāo)志,在標(biāo)志寄存器的第 10字節(jié),在串處理指令中控制處理信息的方向。DF為1時(shí)是反向,每次操作后使SI和DI減量(這樣就使串處理從高地址向低地址方向處理);當(dāng)DF為0時(shí)是正向,使SI和DI增量。 DIDestination Index,目的變址寄存器。與ES聯(lián)用,用來(lái)確定數(shù)據(jù)段中某一存儲(chǔ)單元的偏移地址。在串處理指令中,DI指出目的操作數(shù)的地址,隱含段為當(dāng)前的附加段。 DIV 指令助記符
20、無(wú)符號(hào)數(shù)除法。對(duì)于字節(jié)操作,16位被除數(shù)(若被除數(shù)為 8位,需用符號(hào)擴(kuò)展的方法 ,即用CBW 指令擴(kuò)展到16位)放在AX中, 8位除數(shù)為源操作數(shù),相除結(jié)果 ,8位商在AL中,而 8位余數(shù)在AH中。對(duì)于字操作,32位被除數(shù)(若被除數(shù)為16位,用CWD 指令擴(kuò)展到32位)放在DX和AX中,16位除數(shù)為源操作數(shù),相除結(jié)果,字(16位)商在AX中 ,字余數(shù)在DX中。源操作數(shù)不能是立即操作數(shù),指令執(zhí)行后,源操作數(shù)的值不變。如果商超過(guò)目標(biāo)寄存器能存放的最大數(shù)值時(shí),系統(tǒng)產(chǎn)生0 類中斷。被除數(shù)若需要轉(zhuǎn)換為雙精度值時(shí),一定
21、不能用符號(hào)擴(kuò)展,而只能將高16位送0("MOV DX,0")。 DQ 偽指令定義四字。其后的每個(gè)操作數(shù)占用四個(gè)字。 DSData Segment,數(shù)據(jù)段寄存器。存放數(shù)據(jù)段的起始地址(高16位)。數(shù)據(jù)段存放當(dāng)前運(yùn)行程序所用的數(shù)據(jù),如果程序中使用了串處理指令,則其源操作數(shù)也存放在數(shù)據(jù)段中。 DT 偽指令定義十字節(jié)。其后的每個(gè)操作數(shù)占用十個(gè)字節(jié)。 DUP 復(fù)制操作符。DUP 前面的常量或表達(dá)式的值(正整數(shù))指明DUP 后面的括號(hào)中的操作數(shù)之重復(fù)次數(shù)。 DW
22、60;偽指令定義字。其后的每個(gè)操作數(shù)占用一個(gè)字(低字節(jié)在前,高字節(jié)在后)。DW可以給兩個(gè)字符組成的字符串(用' '括起來(lái)) 分配兩個(gè)字節(jié)的存儲(chǔ)單元(前一個(gè)字符在高字節(jié))。DW還可以把其后的變量或標(biāo)號(hào)的偏移地址存入存儲(chǔ)器的指定單元(即DW前的變量)。 DXData,通用寄存器。在作雙字長(zhǎng)運(yùn)算時(shí),把DX和AX組合在一起存放一個(gè)雙字?jǐn)?shù),DX用來(lái)存放高位字。此外,對(duì)某些I/O 操作,DX可用來(lái)存放 I/O的端口地址。其中DH是高 8位,DL是低 8位。 EA 教材符號(hào)-某一存儲(chǔ)單元的偏移地址,即該
23、單元到它所在段首址的字節(jié)距離。 ELSE偽指令條件。條件不滿足時(shí)匯編ELSE至ENDIF之間的程序塊。 END 偽指令程序模塊結(jié)束。主程序模塊結(jié)束,END 后要接標(biāo)號(hào)(存儲(chǔ)器地址),指出程序開(kāi)始執(zhí)行的地址 。子程序不用。 ENDIF偽指令條件(結(jié)尾)。 ENDM宏指令宏定義(結(jié)尾)。重復(fù)塊(結(jié)尾)。 ENDP偽指令過(guò)程(子程序)定義(結(jié)尾)。 ENDS偽指令段定義或結(jié)構(gòu)定義(結(jié)尾)。 ESExtra Segment,附加段寄存器。 用于存放附加段的起始地址(高16位)。附加段
24、是一個(gè)輔助的數(shù)據(jù)區(qū),也是串處理指令的目的操作數(shù)據(jù)存放區(qū)。 ESC指令助記符交權(quán)給外部協(xié)處理器。是在大模式下使用的一條指令,它可以使外部協(xié)處理器從 8086/8088指令流中獲得一個(gè)操作碼和一個(gè)操作數(shù),并使用8086/8088 的尋址方式。指令后的操作碼是一個(gè) 6位的立即數(shù) ,其中 3位用來(lái)指明哪一個(gè)協(xié)處理器工作,另外 3位指明這個(gè)處理器執(zhí)行什么指令。隨后的源操作數(shù)若是寄存器,則8086/8088 直接將其內(nèi)容放置在數(shù)據(jù)總線上;如果這個(gè)源操作數(shù)是存儲(chǔ)變量,則8086/8088 從存儲(chǔ)器中取出操作數(shù)并放到數(shù)據(jù)
25、總線上,從而使外部協(xié)處理器可以獲取這個(gè)操作數(shù),對(duì)它進(jìn)行運(yùn)算。 EQ 關(guān)系運(yùn)算符相等。若滿足條件,輸出結(jié)果為全1 (所有的位),否則為全0 。 EQU 等價(jià)偽指令 。格式為"符號(hào)名 EQU 表達(dá)式". EQU可以把它前面的符號(hào)定義為一個(gè)常量或一個(gè)能求出常數(shù)值的表達(dá)式,或定義為別的符號(hào)名,甚至定義為一條可執(zhí)行的命令。不得重復(fù)定義。例一,"新變量名 EQU THIS DWORD",該語(yǔ)句將緊跟其后的變量重新定義為雙字類,以新變量名命
26、名。數(shù)據(jù)存儲(chǔ)區(qū)首址不變。例二,"新變量名 EQU WORD PTR 舊變量名",該語(yǔ)句將舊變量重新定義為字類型,以新變量名命名。數(shù)據(jù)存儲(chǔ)區(qū)首址不變。 EVEN偽指令。它使此語(yǔ)句后面的程序或數(shù)據(jù)塊的起始地址為偶數(shù)。 EXTRN偽指令定義外部符號(hào)。格式是 EXTRN 符號(hào)名:類型 。表示本模塊中需要引用但卻是在其他模塊中定義說(shuō)明為PUBLIC的那些符號(hào)(符號(hào)常量、變量、標(biāo)號(hào)以及過(guò)程名)。符號(hào)類型必須與他們?cè)谄渌K定義時(shí)的符號(hào)類型保持一致。 FLAGS 標(biāo)志寄存器(即P
27、SW)。 GE 關(guān)系運(yùn)算符大于等于。若滿足條件,輸出結(jié)果為全 1 (所有的位),否則為全0 。 GROUP 偽指令分組。把模塊中若干不同名的段集合成一個(gè)組,并賦予一個(gè)組名,使它們都裝在一個(gè)物理段中(64KB)??梢缘玫捷^緊湊的代碼,組內(nèi)各段間的跳轉(zhuǎn)都可以看作是段內(nèi)跳轉(zhuǎn)。格式是 組名 GROUP 段名1,段名2, GT 關(guān)系運(yùn)算符大于。若滿足條件,輸出結(jié)果為全1 (所有的位),否則為全0 。 H 數(shù)據(jù)類型后綴,表示十六進(jìn)制常量。
28、;HIGH 字節(jié)分解運(yùn)算符(操作符)。用來(lái)從運(yùn)算對(duì)象(一個(gè)數(shù)或地址表達(dá)式)中分離出(取)高字節(jié)。 HLT 指令助記符停機(jī)。該指令使處理器處于暫停狀態(tài),該狀態(tài)可以由復(fù)位信號(hào)、非屏蔽中斷請(qǐng)求信號(hào)以及IF1 情況下可屏蔽中斷信號(hào)清除。 IDIV指令助記符帶符號(hào)數(shù)除法。對(duì)于字節(jié)操作,16位被除數(shù)(若被除數(shù)為 8位,需用符號(hào)擴(kuò)展的方法,即用CBW 指令擴(kuò)展到16位)放在AX中, 8位除數(shù)為源操作數(shù),相除結(jié)果,8位商在AL中,而 8位余數(shù)在AH中。對(duì)于字操作,32位被除數(shù)(若被除數(shù)為16位,用CWD 指令擴(kuò)
29、展到32位)放在DX和AX中,16位除數(shù)為源操作數(shù),相除結(jié)果,字(16位)商在AX中,字余數(shù)在DX中。余數(shù)的符號(hào)必須和被除數(shù)的符號(hào)相同。 IFInterrupt Flag,中斷標(biāo)志, 在標(biāo)志寄存器的第9字節(jié),當(dāng)IF為1時(shí),允許中斷,即CPU響應(yīng)外設(shè)的中斷請(qǐng)求。偽指令條件(表達(dá)式的值不等于0 為真)。若條件成立,則匯編整個(gè)程序塊;但中間若有ELSE命令,則只匯編到ELSE;當(dāng)條件不成立時(shí),只匯編從ELSE到ENDIF 之間的程序塊。IF1 偽指令條件(若是第一趟掃描,條件為真)。 IF2 偽指令條件(若是第二趟掃描,
30、條件為真)。 IFB 偽指令條件(若其后的參數(shù)對(duì)應(yīng)的實(shí)參存在,為真)。 IFDEF 偽指令條件(若其后的符號(hào)已定義或被說(shuō)明為外部符號(hào),則條件為真)。 IFDIF偽指令條件(若兩個(gè)字符串參數(shù)不相同,則條件為真)。 IFE 偽指令條件(表達(dá)式的值等于0 時(shí),條件為真)。 IFIDN偽指令條件(若兩個(gè)字符串參數(shù)相同,則條件為真)。 IFNB偽指令條件(若其后的參數(shù)對(duì)應(yīng)的實(shí)參不存在,為真)。 IFNDEF偽指令條件(若其后的符號(hào)未定義或未被說(shuō)明為外部符號(hào),則條件為真)。 IMUL指令
31、助記符帶符號(hào)的整數(shù)乘法。對(duì)于字節(jié)乘法,(AL)*(源操作數(shù))-> AX; 對(duì)于字乘法, (AX)*(源操作數(shù))-> AX和DX; 若結(jié)果的高半部分(AH或DX,對(duì)應(yīng)字節(jié)和字)是低半部分的符號(hào)擴(kuò)展,則CF0,OF0; 否則,CF1,OF1,表示在AH(對(duì)于字節(jié))或DX(對(duì)于字)中包含結(jié)果的有效值。 IN指令助記符輸入。允許把一個(gè)字或字節(jié)由輸入端口(port)傳送到AX或AL。端口地址可以用直接尋址(IN AL n),也可用DX間接尋址(IN AL,DX)。8 位地址直接尋址,
32、可尋址256 個(gè)端口;DX間接尋址,可尋址64K個(gè)端口。 INC 指令助記符加1。 操作數(shù)可以是寄存器或存儲(chǔ)器單元,但不能是段寄存器或立即數(shù)。狀態(tài)標(biāo)志CF不受影響。 INCLUDE 偽指令。當(dāng)宏匯編程序匯編到INCLUDE偽指令時(shí),立即打開(kāi)INCLUDE指示的文件,并把它匯編到當(dāng)前的源文件中去,直到該文件被匯編結(jié)束,匯編程序繼續(xù)匯編INCLUDE偽指令之后的語(yǔ)句。INCLUDE可以嵌套。 INT 指令助記符中斷調(diào)用。操作數(shù)是用戶定義的中斷類型,它可以實(shí)現(xiàn)256種不同的中斷。當(dāng)指令執(zhí)行時(shí),首先將標(biāo)志寄存器內(nèi)容進(jìn)棧,清
33、除IF和TF標(biāo)志并將當(dāng)前CS內(nèi)容進(jìn)棧;然后將中斷類型乘以4 ,得到中斷向量地址;最后取中斷向量的第二個(gè)字送CS,將IP進(jìn)棧,取中斷向量的第一個(gè)字送IP。由于CS:IP指向中斷服務(wù)程序,因此可以實(shí)現(xiàn)指定中斷類型的段間調(diào)用。 INTO指令助記符溢出中斷。只有OF1 時(shí)才進(jìn)入溢出中斷(IF和TF被改為0)。 IPInstruction Pointer,控制寄存器指令指針寄存器。用來(lái)存放代碼段中指令的偏移地址。在程序運(yùn)行的過(guò)程中,它始終指向下一條指令的首地址。它與CS聯(lián)用,確定下一條要執(zhí)行的指令的物理地址。IP寄存器不能用于算術(shù)運(yùn)算,也不能直接存取,但
34、可以用控制轉(zhuǎn)移指令加以改變。 IRET指令助記符中斷返回。執(zhí)行該指令時(shí),從棧中退出三個(gè)16位的值,分別送IP、CS和標(biāo)志寄存器。 IRP 宏指令重復(fù)塊(以ENDM結(jié)束)。IRP 形參,實(shí)參1,實(shí)參2, 這種宏指令用于帶立即數(shù)的偽操作。實(shí)參是用戶指定的立即數(shù),它的個(gè)數(shù)就是重復(fù)的次數(shù),每重復(fù)一次,就用一個(gè)實(shí)參代替形參。 IRPC宏指令重復(fù)塊(以ENDM結(jié)束)。IRPC 形參,字符串這種宏指令用于帶字符串的重復(fù)偽操作。重復(fù)次數(shù)由字符串中字符個(gè)數(shù)確定。每次重復(fù),依次用字符串中的一個(gè)字符替代形參,直到字符替代完畢。 JA
35、160;無(wú)符號(hào)數(shù)條件轉(zhuǎn)移指令助記符(無(wú)符號(hào)數(shù)比較)高于轉(zhuǎn)移(等價(jià)JBE)。CF0,且ZF0 則轉(zhuǎn)移(段內(nèi)直接短轉(zhuǎn)移)。 JAE 無(wú)符號(hào)數(shù)條件轉(zhuǎn)移指令助記符(無(wú)符號(hào)數(shù)比較)高于或等于轉(zhuǎn)移(等價(jià)JNB)。CF0 , 或ZF1 則轉(zhuǎn)移(段內(nèi)直接短轉(zhuǎn)移)。 JB 無(wú)符號(hào)數(shù)條件轉(zhuǎn)移指令助記符(無(wú)符號(hào)數(shù)比較)低于轉(zhuǎn)移(等價(jià)JNAE)。CF1, 且ZF0 則轉(zhuǎn)移(段內(nèi)直接短轉(zhuǎn)移)。 JBE 無(wú)符號(hào)數(shù)條件轉(zhuǎn)移指令助記符(無(wú)符號(hào)數(shù)比較)低于或等于轉(zhuǎn)移(等價(jià)JNA)。CF1 或ZF1&
36、#160;則轉(zhuǎn)移。 JC 簡(jiǎn)單條件轉(zhuǎn)移指令助記符有進(jìn)位轉(zhuǎn)移。CF1 則轉(zhuǎn)移(段內(nèi)直接短轉(zhuǎn)移,產(chǎn)生 8位的位移量,即轉(zhuǎn)移地址的偏移量在128 到127之間)。 JCXZ指令助記符條件轉(zhuǎn)移。(CX)0, 則轉(zhuǎn)移(段內(nèi)直接短轉(zhuǎn)移?)。 JE 簡(jiǎn)單條件轉(zhuǎn)移指令助記符(兩數(shù)比較)相等轉(zhuǎn)移(同JZ)。前次操作結(jié)果為0,ZF1則轉(zhuǎn)移(段內(nèi)直接短轉(zhuǎn)移)。 JG有符號(hào)數(shù)條件轉(zhuǎn)移指令助記符(有符號(hào)數(shù)比較)大于轉(zhuǎn)移(等價(jià)JNLE)。SF和OF同號(hào),且ZF0 時(shí)轉(zhuǎn)移。(段內(nèi)直接短轉(zhuǎn)移) JGE
37、60;有符號(hào)數(shù)條件轉(zhuǎn)移指令助記符(有符號(hào)數(shù)比較)大于或等于轉(zhuǎn)移(等價(jià)于JNL)。 當(dāng)SF和OF同號(hào),或ZF1, 則轉(zhuǎn)移(段內(nèi)直接短轉(zhuǎn)移)。 JL 有符號(hào)數(shù)條件轉(zhuǎn)移指令助記符(有符號(hào)數(shù)比較)小于轉(zhuǎn)移(等價(jià)于JNGE)。當(dāng)SF和OF異號(hào),且ZF0 時(shí)轉(zhuǎn)移(段內(nèi)直接短轉(zhuǎn)移)。 JLE 指令助記符(有符號(hào)數(shù)比較)小于或等于轉(zhuǎn)移(等價(jià)于JNG)。當(dāng)SF和OF異號(hào)或ZF1時(shí)轉(zhuǎn)移(段內(nèi)直接短轉(zhuǎn)移)。 JMP 指令助記符無(wú)條件轉(zhuǎn)移。無(wú)條件轉(zhuǎn)移到指令所指示的目標(biāo)地址,并從該地址開(kāi)始執(zhí)行。目標(biāo)地址可以從指令中直接得到,也可以
38、從指令中給定的寄存器或存儲(chǔ)器中得到。一、段內(nèi)直接短轉(zhuǎn)移 JMP SHORT 標(biāo)號(hào)。標(biāo)號(hào)是轉(zhuǎn)移的目的地址,由它確定一個(gè) 8位位移量。這個(gè)位移量被加到IP寄存器中。位移量是一個(gè)帶符號(hào)數(shù),負(fù)數(shù)表示向前轉(zhuǎn)移,正數(shù)表示向后轉(zhuǎn)移。轉(zhuǎn)移范圍是128至127。二、段內(nèi)直接近轉(zhuǎn)移 JMP NEAR PTR 標(biāo)號(hào)。 標(biāo)號(hào)是轉(zhuǎn)移的目的地址,由它確定一個(gè)16位位移量。這個(gè)位移量被加到IP寄存器中。位移量是一個(gè)帶符號(hào)數(shù),負(fù)數(shù)表示向前轉(zhuǎn)移,正數(shù)表示向后轉(zhuǎn)移。轉(zhuǎn)移范圍是32768至32767。三、段內(nèi)間接轉(zhuǎn)移 JMP
39、0;AX (段內(nèi)寄存器間接轉(zhuǎn)移);JMP BX(段內(nèi)存儲(chǔ)器間接轉(zhuǎn)移)。將指令中給定的寄存器或存儲(chǔ)單元中的內(nèi)容送到IP中。四、段間直接轉(zhuǎn)移 JMP FAR PTR 標(biāo)號(hào)。 標(biāo)號(hào)為符號(hào)地址。 JNB 無(wú)符號(hào)數(shù)條件轉(zhuǎn)移指令助記符(無(wú)符號(hào)數(shù)比較)不低于轉(zhuǎn)移(等價(jià)JAE)。CF0,或ZF1 則轉(zhuǎn)移(段內(nèi)直接短轉(zhuǎn)移)。 JNBE無(wú)符號(hào)數(shù)條件轉(zhuǎn)移指令助記符(無(wú)符號(hào)數(shù)比較)不低于且不等于轉(zhuǎn)移(等價(jià)JA)。CF0, 且ZF0 則轉(zhuǎn)移(段內(nèi)直接短轉(zhuǎn)移)。 JNC 簡(jiǎn)
40、單條件轉(zhuǎn)移指令助記符前次操作無(wú)進(jìn)或進(jìn)位位轉(zhuǎn)移。CF0 則轉(zhuǎn)移(段內(nèi)直接短轉(zhuǎn)移)。 JNE 簡(jiǎn)單條件轉(zhuǎn)移指令助記符不相等轉(zhuǎn)移(同JNZ)。前次操作結(jié)果不等于0,ZF0 則轉(zhuǎn)移(段內(nèi)直接短轉(zhuǎn)移)。 JNG 指令助記符(有符號(hào)數(shù)比較)不大于轉(zhuǎn)移(等價(jià)于JLE)。當(dāng)SF和OF異號(hào)或ZF1時(shí)轉(zhuǎn)移(段內(nèi)直接短轉(zhuǎn)移)。 JNGE指令助記符(有符號(hào)數(shù)比較)不大于且不等于轉(zhuǎn)移(等價(jià)于JL)。當(dāng)SF和OF異號(hào),且ZF0 時(shí)轉(zhuǎn)移(段內(nèi)直接短轉(zhuǎn)移)。 JNL 指令助記符(有符號(hào)數(shù)比較)不小于時(shí)轉(zhuǎn)移(等價(jià)于JGE)。
41、160;當(dāng)SF和OF同號(hào),或ZF1, 則轉(zhuǎn)移(段內(nèi)直接短轉(zhuǎn)移)。 JNLE指令助記符(有符號(hào)數(shù)比較)不小于且不等于轉(zhuǎn)移(等價(jià)JG)。SF和OF同號(hào),且ZF0 時(shí)轉(zhuǎn)移。 JNO簡(jiǎn)單條件轉(zhuǎn)移指令助記符前次操作無(wú)溢出轉(zhuǎn)移。OF0 則轉(zhuǎn)移(段內(nèi)直接短轉(zhuǎn)移)。 JNP 簡(jiǎn)單條件轉(zhuǎn)移指令助記符奇校驗(yàn)轉(zhuǎn)移。PF0 則轉(zhuǎn)移(段內(nèi)直接短轉(zhuǎn)移)。 JNS 簡(jiǎn)單條件轉(zhuǎn)移指令助記符前次操作結(jié)果為正數(shù)轉(zhuǎn)移。SF0 則轉(zhuǎn)移(段內(nèi)直接短轉(zhuǎn)移)。 JNZ 簡(jiǎn)單條件轉(zhuǎn)移指令助記符不相等轉(zhuǎn)移(同JNE
42、)。ZF0 則轉(zhuǎn)移(段內(nèi)直接短轉(zhuǎn)移)。 JO 簡(jiǎn)單條件轉(zhuǎn)移指令助記符前次操作溢出轉(zhuǎn)移。OF1 則轉(zhuǎn)移(段內(nèi)直接短轉(zhuǎn)移)。 JP 簡(jiǎn)單條件轉(zhuǎn)移指令助記符偶校驗(yàn)轉(zhuǎn)移。前次操作結(jié)果中1的個(gè)數(shù)是偶數(shù),PF1 則轉(zhuǎn)移(段內(nèi)直接短轉(zhuǎn)移)。 JPE 簡(jiǎn)單條件轉(zhuǎn)移指令助記符偶校驗(yàn)轉(zhuǎn)移。前次操作結(jié)果中1的個(gè)數(shù)是偶數(shù),PF1 則轉(zhuǎn)移(段內(nèi)直接短轉(zhuǎn)移)。 JPO 簡(jiǎn)單條件轉(zhuǎn)移指令助記符奇校驗(yàn)轉(zhuǎn)移。PF0 則轉(zhuǎn)移(段內(nèi)直接短轉(zhuǎn)移)。 JS 簡(jiǎn)單條件轉(zhuǎn)移指令助記符前次操作
43、結(jié)果為負(fù)數(shù)轉(zhuǎn)移。SF1 則轉(zhuǎn)移(段內(nèi)直接短轉(zhuǎn)移)。 JZ 簡(jiǎn)單條件轉(zhuǎn)移指令助記符相等轉(zhuǎn)移(同JE)。ZF1 則轉(zhuǎn)移(段內(nèi)直接短轉(zhuǎn)移)。 LABLE 定義符號(hào)名偽指令為當(dāng)前存儲(chǔ)單元定義一個(gè)指定類型的變量或標(biāo)號(hào)。一、LABLE 與變量連用。例TIMB LABLE BYTETIMW DW 4142H第一句給第二句定義的字變量TIMW取一個(gè)新名字TIMB,并且修改類型屬性為字節(jié)。以后如果以字類型訪問(wèn)該變量時(shí),應(yīng)使用變量名TIMW,以字節(jié)類型訪問(wèn)該變量時(shí),應(yīng)使用變量名TIMB。二、LABLE
44、160;與標(biāo)號(hào)連用。例POINTF LABLE FAR POINTN:MOV AX,BX+SI第一句給第二句隱含定義的近標(biāo)號(hào)POINTN取一個(gè)新名字POINTF,并將類型屬性修改為FAR 。這樣就允許作為其他代碼段中轉(zhuǎn)移或調(diào)用指令的目標(biāo)標(biāo)號(hào)(這時(shí)標(biāo)號(hào)是POINTF)。 LAHF指令助記符標(biāo)志寄存器(PSW)低8位內(nèi)容送AH中。 LDS 指令助記符取地址指針到數(shù)據(jù)段寄存器。要求源操作數(shù)是一個(gè)雙字長(zhǎng)存儲(chǔ)器操作數(shù),目的操作數(shù)是16位通用寄存器、指針或變址寄存器,但不能是段寄存器。指令執(zhí)行時(shí),雙字長(zhǎng)存儲(chǔ)器操作數(shù)中的低地址傳
45、送到指定的寄存器中,高地址傳送到DS寄存器中。例:LDS SI,DATA_SEGDI 由DATA_SEGDI可以得到在數(shù)據(jù)段的有效地址EA(即段內(nèi)偏移量)。在EA和EA2中存放著目標(biāo)指針。EA存放的是目標(biāo)指針的段內(nèi)偏移量,送至SI;EA2存放的是目標(biāo)指針的段地址,送至DS。例:變量名一 DD 變量名二.LDS SI 變量名一變量名二所在數(shù)據(jù)段的EA和段地址存放在變量名一中,EA送至SI,EA+2存放的段地址送至DS。 LE 關(guān)系運(yùn)算符小于等于。若滿足條件,輸出結(jié)果為全 1(所有的位),否則為全0
46、;。 LEA指令助記符取有效地址。將存儲(chǔ)器操作數(shù)的偏移地址傳送到通用寄存器、指針或變址寄存器中。該指令常用來(lái)建立串操作指令所需要的寄存器指針。例一 LEA SI,變量名(與MOV SI OFFSET 變量名 等效);例二 LEA AX,AX (將SI所指存儲(chǔ)單元的EA送至AX,而MOV AX,SI送的是該存儲(chǔ)單元存放的內(nèi)容) LENGTH數(shù)值返回運(yùn)算符。其加在一個(gè)變量名前面,返回的數(shù)值是數(shù)組變量的元素個(gè)數(shù)。如果變量是用DUP 說(shuō)明的,則返回DUP前面的數(shù)值;如果沒(méi)有
47、DUP 說(shuō)明的,則返回的值總是1。 LES 指令助記符取地址指針到數(shù)據(jù)段寄存器。要求源操作數(shù)是一個(gè)雙字長(zhǎng)存儲(chǔ)器操作數(shù),目的操作數(shù)是16位通用寄存器、指針或變址寄存器,但不能是段寄存器。指令執(zhí)行時(shí),雙字長(zhǎng)存儲(chǔ)器操作數(shù)中的低地址傳送到指定的寄存器中,高地址傳送到ES寄存器中。 LDCK 指令助記符封鎖總線。加在任何指令前面的單字節(jié)前綴指令,配合用來(lái)維持總線的鎖存信號(hào),直到與其配合的指令執(zhí)行完為止。 LOCAL 宏指令局部符號(hào)(變量,標(biāo)號(hào))定義。在宏擴(kuò)展時(shí),匯編程序給LOCAL 后的形式參數(shù)指定特殊的符號(hào),然后用這些符號(hào)
48、替換宏指令體中LOCAL 指出的形式參數(shù)。這樣可避免這些符號(hào)在多次調(diào)用宏時(shí)發(fā)生重復(fù)定義。 LODS指令助記符裝入串。一般用LODSB或LODSW。 LODSB 指令助記符字節(jié)裝入(從字節(jié)串中取數(shù))。它將DS段SI指出的字節(jié)數(shù)據(jù)送入AL寄存器中,并根據(jù)方向標(biāo)志DF修改SI中的地址。即當(dāng)DF0時(shí),地址加1 ;DF 1 時(shí),地址減1 。 LODSW 指令助記符字裝入(從字串中取數(shù))。 它將DS段SI指出的字?jǐn)?shù)據(jù)送入AX寄存器中,并根據(jù)方向標(biāo)志DF修改SI中的地址。即當(dāng)DF0 時(shí),地
49、址加2 ;DF 1 時(shí),地址減2 。 LOOP指令助記符循環(huán)控制。每執(zhí)行一次,CX的內(nèi)容減1 ,若減1 后不為0 ,則轉(zhuǎn)移到目標(biāo)地址;否則,執(zhí)行LOOP之后的指令。 LOOPE 指令助記符循環(huán)控制(等于LOOPZ)。每執(zhí)行一次,CX的內(nèi)容減1, 若減1 后不為0 ,且ZF1, 則轉(zhuǎn)移到目標(biāo)地址;否則,執(zhí)行LOOPE 之后的內(nèi)容。 LOOPZ指令助記符循環(huán)控制(等于LOOPE)。每執(zhí)行一次,CX的內(nèi)容減1 ,若減1 后
50、不為0 ,且ZF1, 則轉(zhuǎn)移到目標(biāo)地址;否則,執(zhí)行LOOPZ 之后的內(nèi)容。 LOOPNE指令助記符循環(huán)控制(等于LOOPNZ)。每執(zhí)行一次,CX的內(nèi)容減1 ,若減1 后不為0 ,且ZF0, 則轉(zhuǎn)移到目標(biāo)地址;否則,執(zhí)行LOOPNE之后的內(nèi)容。 LOOPNZ指令助記符循環(huán)控制(等于LOOPNE)。每執(zhí)行一次,CX的內(nèi)容減1 ,若減1 后不為0 ,且ZF0, 則轉(zhuǎn)移到目標(biāo)地址;否則,執(zhí)行LOOPNZ之后的內(nèi)容。 LOW 字節(jié)分解運(yùn)算符(操作符)。用來(lái)
51、從運(yùn)算對(duì)象(一個(gè)數(shù)或地址表達(dá)式)中分離出(取)低字節(jié)。 LT 關(guān)系運(yùn)算符小于。若滿足條件,輸出結(jié)果為全1 (所有的位),否則為全0 。 MACRO 宏指令宏定義。 MASK運(yùn)算符。使得記錄中指定字段各位均為1 ,其他各位均為0 。 MEMORY偽指令段定義(組合類型)。該段在存儲(chǔ)器中應(yīng)該定位在所有其他段的最高地址。如果不止一個(gè)段選用MEMORY方式,則把第一個(gè)遇到的段作MEMORY處理,而其他段均作COMMON方式處理。 MOD 算術(shù)運(yùn)算符模除(取整除后的余數(shù))。
52、MOV 指令助記符通用數(shù)據(jù)傳送。注意,兩個(gè)段寄存器之間不能直接傳送數(shù)據(jù);兩個(gè)儲(chǔ)存單元之間不能直接傳送數(shù)據(jù)(可以用MOVS);兩個(gè)操作數(shù)中必須有一個(gè)是寄存器或立即數(shù);立即數(shù)和段寄存器CS不能作為目的操作數(shù)。 MOVS指令助記符串傳送。與MOVSB和MOVSW相似,但必須說(shuō)明數(shù)據(jù)串類型(字或字節(jié))。 MOVSB 指令助記符串(字節(jié))傳送。把由SI指向的數(shù)據(jù)段中的一個(gè)字節(jié)數(shù)據(jù)傳送到由DI指向的附加段內(nèi)一個(gè)字節(jié)存儲(chǔ)單元中去,并同時(shí)根據(jù)方向標(biāo)志對(duì)SI和DI中的地址進(jìn)行修改。當(dāng)DF0時(shí), 地址都加1 ;當(dāng)DF1時(shí) ,地址都減1
53、;。 MOVSW 指令助記符串(字)傳送。把由SI指向的數(shù)據(jù)段中的一個(gè)字?jǐn)?shù)據(jù)傳送到由DI指向的附加段內(nèi)一個(gè)字存儲(chǔ)單元中去,并同時(shí)根據(jù)方向標(biāo)志對(duì)SI和DI中的地址進(jìn)行修改。當(dāng)DF0時(shí), 地址都加2 ;當(dāng)DF1時(shí),地址都減2 。 MUL 指令助記符無(wú)符號(hào)數(shù)乘法。字節(jié)乘法:(AL)*(源操作數(shù))->AX字乘法: (AX)*(源操作數(shù))->DX和AX若結(jié)果的高半部分(AH或DX,對(duì)應(yīng)字節(jié)和字)為非0 值,則CF和OF置1;否則CF和OF清0。 NAME偽指令模塊定義。程序?qū)?duì)給定的程序模塊取
54、模塊名。格式是,NAME 模塊名。 匯編處理時(shí),一個(gè)模塊就是一個(gè)獨(dú)立的匯編單位。匯編處理只進(jìn)行到模塊結(jié)束語(yǔ)句END 為止。如果該模塊是主模塊,END 語(yǔ)句可以指出一個(gè)標(biāo)號(hào),它表示該程序的啟動(dòng)地址。 NE關(guān)系運(yùn)算符不等。若滿足條件,輸出結(jié)果為全1 (所有的位),否則為全0 。 NEG 指令助記符求補(bǔ)。將目的操作數(shù)的每一位求反(包括符號(hào)位)后加1.若在字節(jié)操作時(shí)對(duì)128,或在字操作時(shí)對(duì)32768取補(bǔ),則操作數(shù)不變,但溢出標(biāo)志OF置位。操作數(shù)可以是寄存器或存儲(chǔ)器單元,但不能是段寄存器或立即數(shù)。結(jié)果送回目的操作數(shù)
55、。執(zhí)行結(jié)果不但影響標(biāo)志位AF、CF、OF、PF、SF和ZF,而且一般總是置CF1 (除非操作數(shù)為0)。 NONE偽指令段定義(組合類型)。本段與其它段邏輯上不發(fā)生關(guān)系,每段都有自己的基地址。這是隱含的組合類型。 NOP 指令助記符空操作。用于程序調(diào)試。 NOT 邏輯運(yùn)算符(在語(yǔ)句的操作數(shù)部分)或邏輯操作指令助記符(在語(yǔ)句的操作碼部分)按位非(求反)。將目的地址中的內(nèi)容逐位取反后再送入目的地址中。 OFOverflow Flag, 溢出標(biāo)志,在標(biāo)志寄存器的第11字節(jié)。在運(yùn)算過(guò)程中,如操作數(shù)超出了機(jī)器能表示的
56、范圍,此時(shí)OF 置1。作加法時(shí),OF位是根據(jù)操作數(shù)的符號(hào)及其結(jié)果情況來(lái)設(shè)置的,若兩個(gè)操作數(shù)的符號(hào)相同,而結(jié)果的符號(hào)與之相反時(shí),OF置1,否則置0。 OFFSET數(shù)值返回運(yùn)算符。其加在一個(gè)變量名或標(biāo)號(hào)前面,返回的數(shù)值是該變量名或標(biāo)號(hào)所在的段的偏移地址。 OPD 教材符號(hào)-目的操作數(shù)。 OPR 教材符號(hào)-源操作數(shù)。 OR 邏輯運(yùn)算符(在語(yǔ)句的操作數(shù)部分)或邏輯操作指令助記符(在語(yǔ)句的操作碼部分)按位或。進(jìn)行“或”運(yùn)算的兩位中任一位是 1,則結(jié)果為1 。 ORG 偽指令定位(置匯編
57、地址計(jì)數(shù)器)。在每段源程序或數(shù)據(jù)塊的開(kāi)始,指明此語(yǔ)句后面的程序或數(shù)據(jù)塊的起始地址,其余指令或數(shù)據(jù)就連續(xù)存放在以后的地址單元中。例一 ORG $10 表示跳過(guò)10個(gè)字節(jié)。例二 ORG 數(shù)值表達(dá)式(值為0-65535) 表示$改為數(shù)值表達(dá)式的值。 OUT 指令助記符輸出。把AX或AL中的內(nèi)容傳送到一個(gè)輸出端口。尋址方式與IN相同。 PA教材符號(hào)-某一存儲(chǔ)單元的物理地址。對(duì)于指令,PA=(CS)左移4位+(IP);對(duì)于堆棧段數(shù)據(jù),PA=(SS)左移4位+(SP);或PA=(SS)左移4位+(BP);對(duì)于數(shù)據(jù)段和
58、附加數(shù)據(jù)段數(shù)據(jù),PA=(DS或ES)+該變量的偏移地址。 PARA偽指令段定義(定位類型方式)。規(guī)定在定位時(shí)每個(gè)段的起始地址總是16的整倍數(shù),最后四位二進(jìn)制數(shù)一定是0 。這種定位方式最簡(jiǎn)單,但段間往往有空隙(最多為15個(gè)字節(jié))。缺省定位方式是按PARA定位。 PAGE偽指令段定義(定位類型方式)。要求段起始地址是 256的整倍數(shù),即段的邊界必須是頁(yè)的邊界。段地址的最低兩位(16進(jìn)制數(shù))必須是0 。偽指令格式控制。指定匯編程序所產(chǎn)生的列表文件每頁(yè)多少行(10255), 每行多少字符(60-132)?;蛑付ㄝ敵鲂碌囊豁?yè)(用號(hào))。
59、;PFParity Flag,奇偶標(biāo)志,在標(biāo)志寄存器的第2字節(jié),當(dāng)運(yùn)算結(jié)果(指低8位)中1的個(gè)數(shù)為偶數(shù)時(shí)置1,否則置0。該標(biāo)志主要用來(lái)檢測(cè)數(shù)據(jù)在傳輸過(guò)程中的錯(cuò)誤。 POP指令助記符出棧。將棧頂元素彈出送至某一寄存器,段寄存器(CS除外)或存儲(chǔ)器中。首先將SP指的內(nèi)容送至低8位,SP加1;再將SP指的內(nèi)容送入高8位,SP再加1。 POPF指令助記符將堆棧頂端的字?jǐn)?shù)據(jù)送入標(biāo)志寄存器。對(duì)于TF和OF置位可先將數(shù)值置于AX中,壓入堆棧,再用POPF送入標(biāo)志寄存器。此方式對(duì)TF和OF標(biāo)志位是唯一可行的置位方法。 PROC偽指令過(guò)程(子程序)定義(起始)。定義一個(gè)子
60、程序,并說(shuō)明它是NEAR或FAR 過(guò)程。定義的過(guò)程如果由 DOS直接裝入并啟動(dòng)執(zhí)行,則該過(guò)程必須定義為 FAR過(guò)程。 PSWProgram Status Word,程序狀態(tài)字寄存器,由條件碼標(biāo)志(OF、SF、ZF、AF、PF、CF)和控制標(biāo)志(DF、IF、TF)構(gòu)成。 1110987 6 4 20 OFDFIFTFSFZFAFPFCF PTR 修改屬性運(yùn)算符。用來(lái)明確指出變量、標(biāo)號(hào)或地址表達(dá)式的類型屬性( 只在所在的指令內(nèi)有效)。類
61、型放在PTR 之前,可以是BYTE、WORD、 DWORD、NEAR、FAR。 PUBLIC偽指令段定義(組合類型)。該段與其它模塊中說(shuō)明為PUBLIC類型的同名同'類別'段組合起來(lái),形成一個(gè)物理段(小于等于64K),公用一個(gè)段基址,偽指令定義全局符號(hào)。表示該模塊中定義的哪些符號(hào)常量、變量、標(biāo)號(hào)以及過(guò)程名(幾個(gè)模塊公用的過(guò)程一般都是FAR 過(guò)程)等可以被其他模塊所引用。 PURGE 宏指令取消宏定義。 PUSH指令助記符進(jìn)棧。把寄存器,段寄存器中的一個(gè)字?jǐn)?shù)據(jù)壓入堆棧。高8位先進(jìn),SP減1;低8位后進(jìn),SP再減
62、1。 PUSHF 指令助記符把標(biāo)志寄存器的內(nèi)容壓入堆棧。在子程序調(diào)用和中斷服務(wù)中可用來(lái)保護(hù)標(biāo)志位(恢復(fù)用POPF)。 RCL 指令助記符帶進(jìn)位循環(huán)左移。格式為:RCL 目的操作數(shù),1或RCL 目的操作數(shù),CL(其中CL中存放的是移動(dòng)次數(shù))CF RCR 指令助記符帶進(jìn)位循環(huán)右移。 CF RECORD偽指令設(shè)計(jì)一個(gè)單字節(jié)或雙字節(jié)的記錄格式。指令格式為,記錄名 RECORD 字段名1:=表達(dá)式,字段名2:=表達(dá)式 記錄定義后,必須利用初
63、始化記錄的方法來(lái)定義存儲(chǔ)器變量,格式為,變量名 記錄名 表達(dá)式,表達(dá)式,或變量名 記錄名 數(shù)量DUP(表達(dá)式,) REP 指令助記符重復(fù)前綴。它可以使串指令反復(fù)執(zhí)行(CX不等于0 就執(zhí)行),每執(zhí)行一次,CX的內(nèi)容減1 。 REPE指令助記符重復(fù)前綴。當(dāng)兩串相等,即ZF1時(shí) ,它可以使串指令反復(fù)執(zhí)行(CX不等于0 就執(zhí)行),每執(zhí)行一次,CX的內(nèi)容減1 。(與REPZ完全一樣) REPNE 指令助記符重復(fù)前綴。當(dāng)兩串不相等,即ZF0時(shí), 它可以使串指
64、令反復(fù)執(zhí)行(CX不等于0 就執(zhí)行),每執(zhí)行一次,CX的內(nèi)容減1 。(與REPNZ完全一樣) REPNZ 指令助記符重復(fù)前綴。當(dāng)兩串不相等,即ZF0時(shí), 它可以使串指令反復(fù)執(zhí)行(CX不等于0 就執(zhí)行),每執(zhí)行一次,CX的內(nèi)容減1 。(與REPNE完全一樣) REPT宏指令重復(fù)塊(以ENDM結(jié)束)。格式為:REPT 重復(fù)次數(shù)重復(fù)塊ENDM這種宏指令用于確定重復(fù)次數(shù)。 REPZ指令助記符重復(fù)前綴。當(dāng)兩串相等,即ZF1時(shí), 它可以使串指令反復(fù)執(zhí)行(CX不等于0 就執(zhí)行),每執(zhí)行一次,CX的內(nèi)容減1 。(與REPE完全一樣) RET 指令助記符返回。一、段內(nèi)返回。先將棧頂?shù)淖炙腿隝P,然后SP增2 。若帶立即數(shù),SP再加立即數(shù)(丟棄一些在執(zhí)行CALL之前入棧的參數(shù))。二、段間返回。
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年壓瘡護(hù)理新進(jìn)展
- 客戶開(kāi)發(fā)工作總結(jié)案例
- 電梯安全培訓(xùn)
- 兒童財(cái)商教育課件
- 內(nèi)科護(hù)理10分鐘小講課
- 倉(cāng)儲(chǔ)物流中心廠房出租與倉(cāng)儲(chǔ)服務(wù)外包協(xié)議
- 心梗老人的護(hù)理
- 知識(shí)產(chǎn)權(quán)采購(gòu)合同范本:電子元器件行業(yè)
- 創(chuàng)新型企業(yè)廠房物業(yè)管理及創(chuàng)新解決方案合同范本
- 物業(yè)服務(wù)企業(yè)人力資源配置合同
- 2025年離婚協(xié)議書版本
- 店鋪轉(zhuǎn)讓合同協(xié)議書模板
- 2025遼寧中考:歷史必考知識(shí)點(diǎn)
- 農(nóng)村電商賦能鄉(xiāng)村振興培訓(xùn)課程大綱
- 2025屆重慶康德三診英語(yǔ)+答案
- 耳石癥教學(xué)課件
- 玻璃吊裝施工專項(xiàng)施工方案
- 探尋河北省競(jìng)技體育可持續(xù)發(fā)展的社會(huì)資源密碼:現(xiàn)狀、挑戰(zhàn)與破局之策
- 焊接安全知識(shí)考核試題及答案
- 2025燃?xì)怆姀S智能巡檢系統(tǒng)技術(shù)方案
- 高中學(xué)校托管協(xié)議書范本
評(píng)論
0/150
提交評(píng)論