X86指令系統(tǒng)課件_第1頁
X86指令系統(tǒng)課件_第2頁
X86指令系統(tǒng)課件_第3頁
X86指令系統(tǒng)課件_第4頁
X86指令系統(tǒng)課件_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

8086指令系統(tǒng)§1數(shù)據(jù)類型§2指令格式§3尋址方式§4指令系統(tǒng)(指令簡表)§1數(shù)據(jù)類型變量定義不區(qū)分是否是有符號數(shù)是否是有符號數(shù)由程序自己控制位數(shù)無符號數(shù)有符號數(shù)字節(jié)80~255-128~127字160~65535-32768~32767雙字320~232-1-231~231-1字符按字節(jié)算,長度<64K§2指令格式名稱指令參數(shù)1,參數(shù)2;注釋名稱若是變量名(變量定義),后無冒號名稱若是標號(轉移入口),后有冒號,例:VarDW1234HLabel0:MOVAX,Var參數(shù)(操作數(shù))之間用逗號隔開段寄存器的使用默認段寄存器以BP為間接尋址的為SS其它的為使用DS若需要改變段寄存器,在內存前增加前綴即可,如:MOVAL,CS:[SI]386+還可以使用新增的兩個寄存器FS與GS在DEBUG中,段前綴為單獨的一條指令§4指令系統(tǒng)數(shù)據(jù)傳送IO算術運算邏輯運算移位串操作程序轉移其它數(shù)據(jù)傳送MOVX1,X2PUSHX

POPXXCHGX1,X2XLATLEAR,MLDSR,M

LESR,MLAHF

SAHFPUSHF

POPFIOINAL,P

INAX,POUTP,AL

OUTP,AX邏輯運算NOTXANDX1,X2ORX1,X2XORX1,X2TESTX1,X2NEGX移位SALX,NSHLX,NSARX,NSHRX,NROLX,NRORX,NRCLX,NRCRX,N程序轉移CALL目標RETIRETJMP目標LOOP目標LOOPZ/LOOPELOOPNZ/LOOPNEINTnINTO條件轉移(只能近轉移)JCXZ目標JZ/JEJNZ/JNEJA/JNBEJBE/JNAJB/JNAEJNB/JAEJG/JNELJNG/JELJL/JNEGJNL/JEG其它CLC

CMC

STCCLD

STDCLI

STINOPHLTESCMOV不能用任何指令直接修改CS源與目標應要相同的數(shù)據(jù)長度,若兩者都為不確定內容(立即數(shù)或內存),用用PTR指定類型,例:MOVBYTEPTR[SI],1不能直接傳送:立即數(shù)到段寄存器、內存到內存XLATXLAT為查表指令相當于MOVAL,[BX+AL](但沒此指令)例:查表求平方:TABLEDB0,1,4,9,16,25,36,49,64,81MOVBX,OFFSETTABLE;起始地址MOVAL,7 ;查7的平方XLAT ;結果49已經(jīng)在AL中LEA格式:LEAR16,M功能:取內存地址與MOV不同,MOV取值,LEA取地址LEAAX,OFFSETV與LEAAX,V的結果相同,但是兩種不同的辦法可以用LEAAX,[SI+3],但MOVAX,SI+3是錯的LDS/LES格式:LDS寄存器,內存功能:內存的低16位送寄存器,高16為送DS寄存器只能是16位的IN/OUTI/O指令的尋址空間為64K,不需要段INAL,n只能尋址地址為0-255的端口INAL,[DX]可以尋址高端口地址ADD/ADC格式:ADDX1,X2功能:相加結果放X1X1可為R/M,X2可為R/M/nADC在相加后還要加上進位位,若多字相加,先最低字用ADD,高字用ADCSUB/SBB格式、功能與ADD/ADC類似SBB在相減后,還要再減去進位位有符號數(shù)與無符號數(shù)的加減使用相同的指令。無符號數(shù)加減進位為1表示溢出有符號數(shù)加減溢出位為1表示溢出CMP格式與標志位影響同SUB結果不變一般用于轉移判斷,緊跟條件轉移指令AAA/DAA/AAS/DASAAA:加法ASCII碼調整DAA:加法十進制調整AAS:減法ASCII碼調整DAS:減法十進制調整調整是指相加后大于9則再加6調整ASCII碼調整是AL保存1個BCD碼,進到AHASCII碼調整是AL保存2個BCD碼,進到高4位CBW/CWD/CWDE為了有符號數(shù)相加方便,把AL、AX、EAX(386+)的值進行擴展,擴展成AX、DX:AX、EDX:EAX(386+)正數(shù)擴展為0,負數(shù)擴展為全1無符號數(shù)不需擴展,直接高端清0即可NOT/NEG/AND/OR/XOR/TESTNOT:單目操作,按位取反NEG:單目操作,取補(0-X)AND/OR/XOR/TEST:兩操作數(shù),與ADD相同TEST:不影響操作數(shù),標志的變化同AND與/或/異或的應用示例ANDAL,0FH;屏蔽高4位ORAL,0F0H ;高4位置1XORAL,AL ;清0ORAL,AL ;測試是否為0SAL/SHL/SAR/SHR

ROL/ROR/RCL/RCR移位名稱左移右移功能算術SALSAR有符號數(shù)乘除2邏輯SHLSHR無符號數(shù)乘除2循環(huán)ROLROR移出到CF循環(huán)帶進位RCLRCRCF參加移位移位次數(shù)可為1或CL,286+可為立即數(shù)1-8字符串操作與重復前綴所有字符串操作的共性:源在DS:SI,目標在ES:DI執(zhí)行一條指令后,SI或DI會自動加(或減)1(或2)指令后加B為字節(jié)傳送,增量為1;加W為字傳送,增量為2;加D為雙字傳送,增量為4(386+)自動增減由DF標志為決定,0為增加(CLD設置),1為減少(STD設置)字符串指令重復前綴

REP/REPZ/REPNZ重復指令的重復次數(shù)先放CX,執(zhí)行一次串操作,CX自動減1,CX到0時結束REP:直接執(zhí)行CX次REPZ(REPE):零則重復,執(zhí)行到非零(ZF=0)或CX=0為止REPNZ(REPNE):非零則重復,執(zhí)行到零(ZF=1)或CX=0為止MOVS/STOS/LODSMOVS:串傳送,源到目的STOS:存入串,AL(或AX/EAX)到目的LODS:裝載,源到AL(或AX/EAX)REP:重復前綴,一般用于MOVS與STOS前,而LODS不用(重復裝入同一數(shù)無意義)CMPS/SCASCMPS:串比較,源-目標SCAS:串掃描,AL-目標REPZ(REPE)/REPNZ(REPE)重復前綴一般用于CMPS與SCAS判斷是否CMP一致或SCAS找到,一般用Z標志,而不用CX是否為0(剛好最后一個找到,CX=0)JMP段內轉移:只改變IP,CS不變直接轉移:JMP標號間接轉移:JMPM段間轉移:IP、CS都改變直接轉移:JMP標號間接轉移:JMPFARPTRM所有轉移與子程序調用指令,在DEBUG中只能用具體的地址,不能用標號條件轉移條件轉移只有短轉移(范圍-128~127)指令條件指令條件JC/JNAE<無符號數(shù)JNC/JAE>=JA/JNBE>JNA/JBE<=JZ/JE=JNZ/JNE<>JL/JNGE<有符號數(shù)JNL/JGE>=JG/JNLE>JNG/JLE<=JS/JNSSF=1/0JO/JNOOF=1/0JP/JNPPF=1/0JCXZCX=0LOOP/LOOPZ/LOOPNZ循環(huán)指令次數(shù)CX,執(zhí)行一次CX-1,當CX<>0時執(zhí)行循環(huán),CX=0時繼續(xù)執(zhí)行。當CX初始為0時,執(zhí)行65536次LOOPZ/LOOPE:ZF=1且CX<>0時循環(huán)LOOPNZ/LOOPNE:ZF=0且CX<>0時循環(huán)CALL段內調用:只改變IP,CS不變直接調用:CALL過程名間接調用,如:CALLSI CALLWORDPTR[SI]段間調用:IP、CS都改變直接調用:CALL過程名間接調用:CALLDWORDPTR[SI]直接調用根據(jù)調用與過程的位置,由匯編程序自動判斷是段內還是段間調用調用的過程:先把返回地址(下一條指令)壓入堆棧,再轉到目標地址。INTINTn:中斷指令,n=0-255,與CALL類似,除了CS、IP入棧以外,PWS也先入棧中斷向量表:在內存的0:0-400H中保存著256個中斷程序的入口地址,每項4字節(jié)(4n~4n+3),低字為偏移、高字為段部分中斷由硬件中斷自動調用,也可由軟件調用RET/IRETRET:子程序返回,分遠近。匯編中根據(jù)過程的屬性自動匯編。在DEBUG中用RETF代表遠返回RET從堆棧中彈出IP(遠返回則為IP與CS),即返回調用的位置IRET:中斷返回,與INT指令配對,依次從堆棧中彈出IP、CS、PWS在

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論