2023年匯編語(yǔ)言筆記_第1頁(yè)
2023年匯編語(yǔ)言筆記_第2頁(yè)
2023年匯編語(yǔ)言筆記_第3頁(yè)
2023年匯編語(yǔ)言筆記_第4頁(yè)
2023年匯編語(yǔ)言筆記_第5頁(yè)
已閱讀5頁(yè),還剩7頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

MOV說(shuō)明:指令中dest和src不能同時(shí)為存儲(chǔ)器操作數(shù),串操作指令除外;CS不能做為目的操作數(shù)使用;段寄存器之間不能互相傳送;立即數(shù)不能送入段寄存器;不允許手工修改CS的值。MOVCS,AX;非法指令PUSH說(shuō)明:PUSH指令的目的地址一定在當(dāng)前堆棧中。SS內(nèi)容為段基址,偏移量由堆棧指針SP指出。操作數(shù)一定是16位的寄存器或存儲(chǔ)器操作數(shù)。POP說(shuō)明:目的操作數(shù)只能是16位的存儲(chǔ)器或寄存器操作數(shù)(CS除外)。XCHG說(shuō)明:dest和src不能同時(shí)為存儲(chǔ)器操作數(shù);即不能在存儲(chǔ)器與存儲(chǔ)器之間互換據(jù)數(shù);段寄存器、立即數(shù)都不能用作操作數(shù)。XLAT說(shuō)明:XLAT指令用于查表。表的開(kāi)始地址即表頭地址由BX寄存器給出。AL中的原始值是要尋址的表中元素地址的位移量,規(guī)定表中第一個(gè)字節(jié)的位移量為0。LEA說(shuō)明:LEA指令是將源操作數(shù)地址的偏移量,即有效地址傳送到目的操作數(shù)中。源操作數(shù)必須是一個(gè)存儲(chǔ)器操作數(shù),目的操作數(shù)可以是任一16位通用寄存器、指針寄存器或變址寄存器。LDS說(shuō)明:LDS是將src指出的連續(xù)兩個(gè)字的內(nèi)容,即一個(gè)32位的指針變量傳送到一對(duì)16位的目的寄存器中。高位字內(nèi)容為段基地址,LDS指令將其傳送到數(shù)據(jù)段寄存器DS中,低位字內(nèi)容為偏移量,傳送到由dest指出的一個(gè)通用寄存器,指針寄存器或變址寄存器中,但不能是段寄存器。LES說(shuō)明:LES是將src指出的連續(xù)兩個(gè)字的內(nèi)容,即一個(gè)32位的指針變量傳送到一對(duì)16位的目的寄存器中。高位字為段基地址,LES指令將其傳送到附加段寄存器ES中,低位字為偏移量,傳送到由dest指出的一個(gè)通用寄存器,指針寄存器或變址寄存器中,但不能是段寄存器。IN說(shuō)明:acc為累加器AX或AL,取決于所訪問(wèn)端口的類(lèi)型,若端口為16位長(zhǎng),則累加器為AX;若端口為8位長(zhǎng),則累加器為AL。注意:port為所訪問(wèn)的端口地址,其尋址方式有兩種:直接尋址和間接尋址。若其值在0~255之間,則既可以使用直接尋址,也可以使用間接尋址;若其值大于255,則必須使用間接尋址。直接尋址:將端口地址直接在指令中給出;間接尋址:事先必須將端口地址存入DX寄存器,指令中不可直接出現(xiàn)地址值。OUT(規(guī)定同IN)ADD說(shuō)明:dest和src不能同時(shí)為存儲(chǔ)器操作數(shù)和段寄存器。ADC說(shuō)明:ADC指令重要用于多精度數(shù)據(jù)相加。INC說(shuō)明:INC指令不影響CF。SBB說(shuō)明:SBB指令重要用于多精度數(shù)據(jù)減法。DEC說(shuō)明:DEC指令不影響CF。NEG說(shuō)明:NEG指令對(duì)于帶符號(hào)的數(shù)來(lái)說(shuō)是取負(fù),即改變操作數(shù)的符號(hào)。CMP說(shuō)明:CMP將兩個(gè)操作數(shù)相減,兩個(gè)操作數(shù)保持原值不變,但與SUB指令同樣影響標(biāo)志。MUL說(shuō)明:⑴源操作數(shù)src不能是立即數(shù)。⑵假如乘積的高半部不為零時(shí),CF和OF被置位,否則將被清除。IMUL說(shuō)明:①src不能是立即數(shù)。②IMUL指令視操作數(shù)為帶符號(hào)的數(shù)。假如乘積的高半部不是符號(hào)位的擴(kuò)展時(shí),CF和OF被置位,否則將被清除。DIV①src不能是立即數(shù);②假如商數(shù)超過(guò)了允許的最大值(字節(jié)時(shí)為0FFH,字時(shí)為0FFFFH)時(shí)就產(chǎn)生一個(gè)方式0的中斷,并且商和余數(shù)都不擬定。IDIV說(shuō)明:①src不能是立即數(shù);②假如商數(shù)超過(guò)了允許的最大值(字節(jié)時(shí)為-128~127,字時(shí)為-32768~32767)時(shí)就產(chǎn)生一個(gè)方式0的中斷,并且商和余數(shù)都不擬定。③余數(shù)始終與被除數(shù)同號(hào),商向0靠攏。CBW說(shuō)明:CBW是將AL寄存器中數(shù)的符號(hào)位擴(kuò)展到整個(gè)AH寄存器中。CWD說(shuō)明:CWD將寄存器AX的符號(hào)位擴(kuò)展到整個(gè)寄存器DX中。AND說(shuō)明:AND指令可借助某個(gè)給定的操作數(shù)將另一個(gè)操作數(shù)中的某些位清除(這種操作也稱(chēng)設(shè)立屏蔽),使某些位保持不變,這個(gè)數(shù)通常稱(chēng)為掩碼。XOR注意:與0異或的位不變,與1異或的位取反。TEST說(shuō)明:TEST指令通過(guò)“與”的方式對(duì)兩個(gè)源操作數(shù)進(jìn)行比較,但不保存“與”的結(jié)果。移位操作指令說(shuō)明:①dest可以是任一通用寄存器,也可以是各種尋址方式給出的內(nèi)存單元,cnt為移位次數(shù)。②移位操作是將給定的目的操作數(shù)移動(dòng)cnt次。cnt可認(rèn)為1,也可以是CL的內(nèi)容。③SHL/SAL,SHR,SAR影響CF,OF,PF,SF,ZF;ROL,ROR,RCL,RCR僅影響CF和OF位。④CF的值總是最后一次被移入的值。⑤在移動(dòng)1位的移位中,假如目的操作數(shù)的最高位(符號(hào)位)改變了,那么OF就被置1,否則,OF就被清0。串操作指令說(shuō)明:(1)指令中要解決的兩個(gè)數(shù)據(jù)串應(yīng)分別在數(shù)據(jù)段(src)和附加段(dest)中定義。(2)數(shù)據(jù)段中定義的數(shù)據(jù)串要用SI作指針;附加段中定義的數(shù)據(jù)串要用DI作指針。(3)數(shù)據(jù)串操作指令每執(zhí)行一次,指針SI和DI會(huì)自動(dòng)修改。增量修改還是減量修改取決于方向標(biāo)志位DF的狀態(tài)。若DF=0,則指針增量修改,即SI=SI+DELTA?DI=DI+DELTA若DF=1,則指針減量修改,即SI=SI-DELTA ?DI=DI-DELTA(4)修改指針時(shí)的增減量值DELTA為多少,取決于所解決的串的類(lèi)型。若串為字節(jié)類(lèi)型,則DELTA=1;否則若為字類(lèi)型,則DELTA=2。反復(fù)前綴說(shuō)明:反復(fù)前綴可以加在數(shù)據(jù)串基本操作指令前,此時(shí),數(shù)據(jù)串基本操作指令將反復(fù)執(zhí)行,每執(zhí)行一次,則將CX的內(nèi)容減1,直到CX等于零為止。其控制結(jié)構(gòu)屬于先判斷后執(zhí)行的循環(huán)結(jié)構(gòu),即先判斷CX的初值是否為0,若CX的初值為0,則數(shù)據(jù)串基本操作指令一次也不執(zhí)行。JMPtarg說(shuō)明:指令中的targ可以是直接標(biāo)號(hào)、寄存器間接或存儲(chǔ)器間接尋址形式。INT中斷指令說(shuō)明:n稱(chēng)為中斷類(lèi)型號(hào),必須是0~255之間的立即數(shù)。INTO(shè)溢出中斷指令說(shuō)明:INTO指令一般用在算術(shù)運(yùn)算指令后面,在有溢出的情況下,啟動(dòng)一個(gè)溢出中斷服務(wù)程序。IRET中斷返回指令說(shuō)明:IRET指令是任何中斷服務(wù)程序的最后一條要執(zhí)行的指令,它使CPU從中斷服務(wù)程序返回被中斷程序的斷點(diǎn)處繼續(xù)執(zhí)行。HLT停機(jī)指令說(shuō)明:CPU執(zhí)行HLT指令后,就停止執(zhí)行后續(xù)指令,只有當(dāng)產(chǎn)生中斷請(qǐng)求信號(hào)(發(fā)生中斷)或有復(fù)位信號(hào)(RESET線變成低電平)時(shí),才干退出暫停狀態(tài)。中斷信號(hào)產(chǎn)生后,CPU停止執(zhí)行HLT指令,而去執(zhí)行中斷服務(wù)程序,執(zhí)行IRET后,CPU返回被中斷程序的斷點(diǎn)處,執(zhí)行HLT的后續(xù)指令。WAIT等待指令說(shuō)明:CPU?qǐng)?zhí)行WAIT后,只有當(dāng)TEST信號(hào)變成低電平時(shí),才干執(zhí)行的后續(xù)指令。除此之外,任何情況也不能使CPU停止執(zhí)行WAIT指令(退出等待狀態(tài))。ESC交權(quán)指令說(shuō)明:ESC指令稱(chēng)為換碼指令,它使協(xié)解決器可以從8086/8088的指令流中獲得一個(gè)操作碼和一個(gè)操作數(shù)。指令中exp_op為操作碼,是一個(gè)6位二進(jìn)制的數(shù)據(jù)。LOCK鎖定指令說(shuō)明:LOCK指令是一個(gè)封鎖前綴,它可以加在任何指令的前面,使CPU在執(zhí)行該指令期間保持一個(gè)總線鎖定信號(hào)。在多解決機(jī)系統(tǒng)中用其實(shí)現(xiàn)對(duì)共享資源的存取控制。NOP空操作指令說(shuō)明:空操作指令NOP使CPU不進(jìn)行任何操作,但要花費(fèi)3個(gè)時(shí)鐘周期,然后執(zhí)行其后續(xù)指令,一般用于編制軟件延時(shí)程序或用糾錯(cuò)程序調(diào)試程序時(shí)抹掉多余的指令。注:EQU與=用法的區(qū)別在于:用EQU賦值后的符號(hào)其值不能再被改變;用=賦值后的符號(hào)其值可以再次被重新賦值代碼定位偽指令ORG說(shuō)明:EXP是一個(gè)表達(dá)式,其值為16位的無(wú)符號(hào)二進(jìn)制數(shù),代表其所在邏輯段內(nèi)某單元的偏移地址。該條偽指令的作用是告訴匯編程序,在其后的數(shù)據(jù)或程序代碼將從EXP指定的單元開(kāi)始連續(xù)存儲(chǔ)。匯編語(yǔ)言的源程序格式⑴匯編語(yǔ)言源程序由語(yǔ)句序列構(gòu)成。⑵源程序可以包含若干個(gè)代碼段、數(shù)據(jù)段附加段或堆棧段。⑶段與段之間的順序任意。⑷獨(dú)立運(yùn)營(yíng)的程序必須

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論