資源描述:
《匯編指令、偽指令大全》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、MOV指令為雙操作數(shù)指令,兩個(gè)操作數(shù)中必須有一個(gè)是寄存器. MOVDST,SRC//Byte/Word 執(zhí)行操作:dst=src 1.目的數(shù)可以是通用寄存器,存儲(chǔ)單元和段寄存器(但不允許用CS段寄存器). 2.立即數(shù)不能直接送段寄存器 3.不允許在兩個(gè)存儲(chǔ)單元直接傳送數(shù)據(jù) 4.不允許在兩個(gè)段寄存器間直接傳送信息 PUSH入棧指令及POP出棧指令:堆棧操作是以"后進(jìn)先出"的方式進(jìn)行數(shù)據(jù)操作. PUSHSRC//Word 入棧的操作數(shù)除不允許用立即數(shù)外,可以為通用寄存器,段寄存器(全部)和存儲(chǔ)器. 入棧時(shí)高位字
2、節(jié)先入棧,低位字節(jié)后入棧. POPDST//Word 出棧操作數(shù)除不允許用立即數(shù)和CS段寄存器外,可以為通用寄存器,段寄存器和存儲(chǔ)器. 執(zhí)行POPSS指令后,堆棧區(qū)在存儲(chǔ)區(qū)的位置要改變. 執(zhí)行POPSP指令后,棧頂?shù)奈恢靡淖? XCHG(eXCHanG)交換指令:將兩操作數(shù)值交換. XCHGOPR1,OPR2//Byte/Word 執(zhí)行操作:Tmp=OPR1OPR1=OPR2OPR2=Tmp 1.必須有一個(gè)操作數(shù)是在寄存器中 2.不能與段寄存器交換數(shù)據(jù) 3.存儲(chǔ)器與存儲(chǔ)器之間不能交換數(shù)據(jù). XLAT(T
3、RANSLATE)換碼指令:把一種代碼轉(zhuǎn)換為另一種代碼. XLAT(OPR可選)//Byte 執(zhí)行操作:AL=(BX+AL) 指令執(zhí)行時(shí)只使用預(yù)先已存入BX中的表格首地址,執(zhí)行后,AL中內(nèi)容則是所要轉(zhuǎn)換的代碼. LEA(LoadEffectiveAddress)有效地址傳送寄存器指令 LEAREG,SRC//指令把源操作數(shù)SRC的有效地址送到指定的寄存器中. 執(zhí)行操作:REG=EAsrc 注:SRC只能是各種尋址方式的存儲(chǔ)器操作數(shù),REG只能是16位寄存器 MOVBX,OFFSETOPER_ONE等價(jià)于LEAB
4、X,OPER_ONE MOVSP,[BX]//將BX間接尋址的相繼的二個(gè)存儲(chǔ)單元的內(nèi)容送入SP中 LEASP,[BX]//將BX的內(nèi)容作為存儲(chǔ)器有效地址送入SP中 LDS(LoadDSwithpointer)指針?biāo)图拇嫫骱虳S指令 LDSREG,SRC//常指定SI寄存器?! ?zhí)行操作:REG=(SRC),DS=(SRC+2)//將SRC指出的前二個(gè)存儲(chǔ)單元的內(nèi)容送入指令中指定的寄存器中,后二個(gè)存儲(chǔ)單元送入DS段寄存器中?! ES(LoadESwithpointer)指針?biāo)图拇嫫骱虴S指令 LESREG,SRC//
5、常指定DI寄存器 執(zhí)行操作:REG=(SRC),ES=(SRC+2)//與LDS大致相同,不同之處是將ES代替DS而已. LAHF(LoadAHwithFlags)標(biāo)志位送AH指令 LAHF//將PSW寄存器中的低8位的狀態(tài)標(biāo)志(條件碼)送入AH的相應(yīng)位,SF送D7位,ZF送D6位...... 執(zhí)行操作:AH=PSW的低位字節(jié)。 SAHF(StoreAHintoFlags)AH送標(biāo)志寄存器指令 SAHF//將AH寄存器的相應(yīng)位送到PSW寄存器的低8位的相應(yīng)位,AH的D7位送SF,D6位送ZF...... 執(zhí)行操作
6、:PSW的低位字節(jié)=AH?! USHF(PUSHtheFlags)標(biāo)志進(jìn)棧指令 PUSHF//將標(biāo)志寄存器的值壓入堆棧頂部,同時(shí)棧指針SP值減2 執(zhí)行操作:SP=SP-1,(SP)=PSW的高8位,SP=SP-1,(SP)=PSW的低8位 POPF(POPtheFlags)標(biāo)志出棧指令 POPF//與PUSHF相反,從堆棧的頂部彈出兩個(gè)字節(jié)送到PSW寄存器中,同時(shí)堆棧指針值加2 執(zhí)行操作:PSW低8位=(SP),SP=SP+1,PSW高8位=(SP),SP=SP+1 輸入輸出指令(IN,OUT):只限于使用累加器
7、AX或AL與外部設(shè)備的端口傳送信息. IN(INput)輸入指令:信息從I/O通過累加器傳送到CPU INAL,PORT//直接的字節(jié)輸入,PORT是外設(shè)端口編號(即端口地址),只能取00H~0FFH共256個(gè)端口地址. INAX,PORT//直接的字輸入,AX存儲(chǔ)連續(xù)兩個(gè)端口地址PORT+1,PORT INAL,DX//間接的字節(jié)輸入,端口地址范圍可通過DX設(shè)置為0000H~0FFFFH共65536個(gè)端口地址 INAX,DX//間接的字輸入 OUT(OUTput)輸出指令:信息從CPU通過累加器傳送到I/O O
8、UTPORT,AL//直接的字節(jié)輸出,PORT規(guī)定與IN指令相同. OUTPORT,AX OUTDX,AL//間接的字節(jié)輸出 OUTDX,AX MOVAL,05HOUT27H,AL//將字節(jié)05H傳送到地址27H的端口 ADD(ADD)加法指令 ADDDST,SR