




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
匯編語言邏輯指令:
邏輯運(yùn)算指令
AND、OR、NOT、XOR、TEST移位指令
SHL、SHR、SAL、SAR、ROL、ROR、RCL、RCR匯編語言邏輯非指令:NOT
OPR
*OPR不能為立即數(shù)執(zhí)行操作:(OPR)
(OPR)*
不影響標(biāo)志位
邏輯與指令:ANDDST,SRC執(zhí)行操作:(DST)(DST)(SRC)邏輯或指令:OR
DST,SRC執(zhí)行操作:(DST)(DST)(SRC)異或指令:
XORDST,SRC執(zhí)行操作:(DST)(DST)(SRC)測試指令:TESTOPR1,OPR2
執(zhí)行操作:(OPR1)(OPR2)CFOFSFZFPFAF00***無定義
根據(jù)運(yùn)算結(jié)果設(shè)置邏輯運(yùn)算指令匯編語言例:屏蔽AL的第0、1兩位
ANDAL,0FCH例:置AL的第5位為1
ORAL,20H
例:使AL的第0、1位變反
XORAL,3例:測試某些位是0是1
TESTAL,1JZEVEN
********
OR00100000**1*****
********
XOR00000011
********
********
AND11111100******00匯編語言邏輯左移
SHLOPR,CNT邏輯右移SHROPR,CNT算術(shù)左移
SALOPR,CNT(同邏輯左移)算術(shù)右移SAROPR,CNT
CF
0移位指令
0
CFCF匯編語言循環(huán)左移ROLOPR,CNT循環(huán)右移ROROPR,CNT帶進(jìn)位循環(huán)左移RCLOPR,CNT帶進(jìn)位循環(huán)右移RCROPR,CNTCF
CFCFCF匯編語言注意:
*OPR可用除立即數(shù)以外的任何尋址方式*
CNT=1,SHLOPR,1CNT>1,MOVCL,CNTSHLOPR,CL;以
SHL為例*條件標(biāo)志位:
CF=移入的數(shù)值
1CNT=1時(shí),最高有效位的值發(fā)生變化0CNT=1時(shí),最高有效位的值不變
移位指令:
SF、ZF、PF根據(jù)移位結(jié)果設(shè)置,AF無定義
循環(huán)移位指令:
不影響SF、ZF、PF、AFOF=匯編語言例:(AX)=0012H,(BX)=0034H,把它們裝配成(AX)=1234H
例:(BX)=84F0H(1)(BX)為無符號數(shù),求
(BX)/2
SHRBX,1
;(BX)=4278H(2)(BX)為帶符號數(shù),求
(BX)/2
SARBX,1
;(BX)=0C278HMOVCL,8ROLAX,CLADDAX,BX匯編語言MOVCH,4;循環(huán)次數(shù)MOVCL
,4
;移位次數(shù)NEXT:ROLBX,CLMOVAX,BXANDAX,0FHPUSHAXDECCHJNZNEXT00080004000F
0000
(SP)(3)(BX)=84F0H,把(BX)中的16位數(shù)每4位壓入堆棧匯編語言串處理指令:
設(shè)置方向標(biāo)志指令
CLD、STD
串處理指令
串重復(fù)前綴
MOVSB/MOVSWREP
STOSB/STOSW
REPE/REPZ
LODSB/LODSW
REPNE/REPNZ
CMPSB/CMPSWSCASB/SCASW
匯編語言MOVS串傳送指令:MOVSDST,SRCMOVSB(字節(jié))
MOVSW(字)例:MOVSES:BYTEPTR[DI],DS:[SI]
執(zhí)行操作:
(1)((DI))←((SI))(2)字節(jié)操作:(SI)←(SI)±1,(DI)←(DI)±1
字操作:(SI)←(SI)±2,(DI)←(DI)±2
方向標(biāo)志DF=0時(shí)用+,DF=1時(shí)用-匯編語言與REP配合工作的MOVS/STOS/LODSREPMOVS/STOS/LODS執(zhí)行操作:(1)如(CX)=0則退出
REP,否則轉(zhuǎn)(2)(2)(CX)(CX)-1(3)執(zhí)行MOVS/STOS/LODS(4)重復(fù)(1)~(3)REPMOVS:將數(shù)據(jù)段中的整串?dāng)?shù)據(jù)傳送到附加段源串(數(shù)據(jù)段)→目的串(附加段)匯編語言執(zhí)行REPMOVS之前,應(yīng)先做好:(1)源串首地址(末地址)→
SI(2)目的串首地址(末地址)→
DI(3)串長度→
CX(4)建立方向標(biāo)志
(CLD
使DF=0,STD
使DF=1)匯編語言
(SI)(DI)
DF=0DF=1數(shù)據(jù)段附加段
(SI)(DI)
匯編語言datasegmentmess1db‘personal_computer’dataendsextrasegmentmess2db17dup(?)extraendscodesegment…
leasi,mess1leadi,mess2
mov
cx,17
cld
repmovsb…codeendsleasi,mess1+16leadi,mess2+16mov
cx,17stdrepmovsb匯編語言STOS存入串指令:STOSDSTSTOSB(字節(jié))
STOSW(字)執(zhí)行操作:字節(jié)操作:((DI))←(AL),(DI)←(DI)±1
字操作:((DI))←(AX),(DI)←(DI)±2
例:把附加段中的
10個(gè)字節(jié)緩沖區(qū)置為20Hleadi,mess2moval,20Hmov
cx,10cldrepstosbleadi,mess2movax,2020Hmov
cx,5cldrepstosw匯編語言LODS從串取指令:
LODSSRCLODSB(字節(jié))
LODSW(字)執(zhí)行操作:字節(jié)操作:(AL)←((SI)),(SI)←(SI)±1
字操作:(AX)←((SI)),(SI)←(SI)±2注意:*LODS指令一般不與REP聯(lián)用*
源串一般在數(shù)據(jù)段中(允許使用段跨越前綴來修改),
目的串必須在附加段中*不影響條件標(biāo)志位匯編語言CMPS串比較指令:
CMPSSRC,DSTCMPSB(字節(jié))
CMPSW(字)
執(zhí)行操作:
(1)((SI))-((DI))
根據(jù)比較結(jié)果置條件標(biāo)志位:相等ZF=1
不等ZF=0(2)字節(jié)操作:(SI)←(SI)±1,(DI)←(DI)±1
字操作:(SI)←(SI)±2,(DI)←(DI)±2匯編語言SCAS串掃描指令:
SCASDSTSCASB(字節(jié))
SCASW
(字)執(zhí)行操作:字節(jié)操作:(AL)-((DI)),(DI)←(DI)±1
字操作:(AX)-((DI)),(DI)←(DI)±2匯編語言與REPE/REPZ(REPNE/REPNZ)配合工作的
CMPS
和SCASREPE/REPZCMPS/SCAS
或REPNE/REPNZCMPS/SCAS
執(zhí)行操作:
(1)如(CX)=0或ZF=0(ZF=1)則退出,否則轉(zhuǎn)(2)(2)(CX)←(CX)-1(3)執(zhí)行CMPS/SCAS(4)重復(fù)(1)~(3)匯編語言例:從一個(gè)字符串中查找一個(gè)指定的字符
messdb‘COMPUTER’leadi,mess
moval,‘T’
mov
cx,8
cld
repne
scasbCOMPUTER(di)
(di):相匹配字符的下一個(gè)地址
(cx):剩下還未比較的字符個(gè)數(shù)(di)匯編語言例:比較兩個(gè)字符串,找出它們不相匹配的位置例:反向傳送COMPUTERCOMPUTERleasi,mess1leadi,mess2mov
cx,8cldrepe
cmpsb匯編語言控制轉(zhuǎn)移指令:無條件轉(zhuǎn)移指令JMP條件轉(zhuǎn)移指令JZ/JNZ、JE/JNE、JS/JNS、JO/JNO、JP/JNP、JB/JNB、JL/JNL、JBE/JNBE、JLE/JNLE、JCXZ循環(huán)指令
LOOP、LOOPZ/LOOPE、LOOPNZ/LOOPNE子程序調(diào)用和返回指令
CALL、RET中斷與中斷返回指令
INT、INTO、IRET匯編語言無條件轉(zhuǎn)移指令:段內(nèi)直接短轉(zhuǎn)移:JMPSHORTOPR
執(zhí)行操作:(IP)←(IP)+8位位移量段內(nèi)直接近轉(zhuǎn)移:JMPNEARPTROPR
執(zhí)行操作:(IP)←(IP)+16位位移量段內(nèi)間接轉(zhuǎn)移:JMPWORDPTROPR
執(zhí)行操作:(IP)←(EA)匯編語言段間直接遠(yuǎn)轉(zhuǎn)移:JMPFARPTROPR
執(zhí)行操作:(IP)←OPR的段內(nèi)偏移地址
(CS)←OPR所在段的段地址段間間接轉(zhuǎn)移:JMPDWORDPTROPR
執(zhí)行操作:(IP)←(EA)(CS)←(EA+2)匯編語言條件轉(zhuǎn)移指令:(只能使用段內(nèi)直接尋址的8位位移量)(1)根據(jù)單個(gè)條件標(biāo)志的設(shè)置情況轉(zhuǎn)移
格式測試條件JZ(JE)OPRZF=1JNZ(JNE)OPRZF=0JSOPRSF=1JNSOPRSF=0JOOPROF=1JNOOPROF=0JPOPRPF=1JNPOPRPF=0JCOPRCF=1JNCOPRCF=0匯編語言(2)比較兩個(gè)無符號數(shù),并根據(jù)比較結(jié)果轉(zhuǎn)移*
格式測試條件
<JB(JNAE,JC)OPRCF=1>=JNB(JAE,JNC)OPRCF=0<=JBE(JNA)OPRCF∨ZF=1>JNBE(JA)OPRCF∨ZF=0*
適用于地址或雙精度數(shù)低位字的比較匯編語言(3)比較兩個(gè)帶符號數(shù),并根據(jù)比較結(jié)果轉(zhuǎn)移*
格式測試條件<JL(JNGE)OPRSFOF=1>=JNL(JGE)OPRSFOF=0<=JLE(JNG)OPR(SFOF)∨ZF=1>JNLE(JG)OPR(SFOF)∨ZF=0*
適用于帶符號數(shù)的比較(4)測試CX的值,為0則轉(zhuǎn)移
格式測試條件
JCXZOPR(CX)=0匯編語言例:如果X>50,轉(zhuǎn)到TOO_HIGH;計(jì)算
X-Y,如果溢出轉(zhuǎn)到OVERFLOW,否則|X-Y|→RESULT JGJOJNS
MOVAX,XCMPAX,50
TOO_HIGHSUBAX,Y
OVERFLOW
NONNEGNEGAXNONNEG:MOVRESULT,AXTOO_HIGH:……OVERFLOW:……匯編語言例:、是雙精度數(shù),分別存于DX,AX及BX,CX中,
>時(shí)轉(zhuǎn)L1,否則轉(zhuǎn)L2
CMPDX,BXJGL1JLL2CMPAX,CXJAL1L2:……L1:……匯編語言循環(huán)指令:注意:*
CX中存放循環(huán)次數(shù)*
只能使用段內(nèi)直接尋址的8位位移量LOOPLOOPZ/LOOPELOOPNZ/LOOPNE執(zhí)行步驟:
(1)(CX)←(CX)-1(2)是否滿足測試條件:滿足則(IP)←(IP)+8位位移量,實(shí)行循環(huán);不滿足則IP不變,退出循環(huán)。匯編語言循環(huán)指令:LOOPOPR測試條件:(CX)0為零或相等時(shí)循環(huán)指令:LOOPZ(LOOPE)OPR測試條件:ZF=1且(CX)0不為零或不相等時(shí)循環(huán)指令:LOOPNZ(LOOPNE)OPR測試條件:ZF=0且(CX)0LOOPAGAIN
DECCXJNZAGAIN匯編語言例:求首地址為ARRAY的M個(gè)字之和,結(jié)果存入TOTAL……MOVCX,MMOVAX,0MOVSI,AXAGAIN:ADDAX,ARRAY[SI]ADDSI,2LOOPAGAINMOVTOTAL,AX……匯編語言例:在多重循環(huán)的程序結(jié)構(gòu)中,CX計(jì)數(shù)器的保存和恢復(fù)
MOVCX,MAGAIN:……PUSHCX
MOVCX,NNEXT:……LOOPNEXT……POPCXLOOPAGAIN
MOVDI,MAGAIN:……
MOVCX,NNEXT:……LOOPNEXT……DECDIJNZAGAIN匯編語言子程序調(diào)用和返回指令:code1segmentmainprocfar……
callsub……retmainendpcode1endscode2segmentsubprocfar……
retsubendpcode2ends
段間調(diào)用和返回codesegmentmainprocfar……
callsub……retmainendpsubprocnear……
retsubendpcodeends
段內(nèi)調(diào)用和返回匯編語言
CALL調(diào)用指令段內(nèi)直接近調(diào)用:CALLDST執(zhí)行操作:(SP)←(SP)-2((SP)+1,(SP))←(IP)(IP)←(IP)+16位位移量段內(nèi)間接近調(diào)用:CALLDST執(zhí)行操作:(SP)←(SP)-2((SP)+1,(SP))←(IP)(IP)←(EA)匯編語言段間直接遠(yuǎn)調(diào)用:CALLDST執(zhí)行操作:(SP)←(SP)-2((SP)+1,(SP))←(CS)(SP)←(SP)-2((SP)+1,(SP))←(IP)(IP)←偏移地址
(CS)←段地址段間間接遠(yuǎn)調(diào)用:CALLDST執(zhí)行操作:(SP)←(SP)-2((SP)+1,(SP))←(CS)(SP)←(SP)-2((SP)+1,(SP))←(IP)(IP)←(EA)(CS)←(EA+2)匯編語言RET返回指令段內(nèi)近返回:RET執(zhí)行操作:(IP)←((SP)+1,(SP))(SP)←(SP)+2段內(nèi)帶立即數(shù)近返回:RETEXP段間遠(yuǎn)返回:RET執(zhí)行操作:(IP)←((SP)+1,(SP))(SP)←(SP)+2(CS)←((SP)+1,(SP))(SP)←(SP)+2段間帶立即數(shù)遠(yuǎn)返回:RETEXP匯編語言例:帶立即數(shù)返回(SP)
堆棧段codesegmentmainprocfar……pushaxpushbxpushcx
callsub……retmainendpsubprocnear……ret6sub
endpcodeends(IP)(cx)(bx)(ax)(SP)(SP)匯編語言中斷指令:
類型0的(IP)
類型0的(CS)
類型1的(IP)
類型1的(CS)
類型N的(IP)
類型N的(CS)
類型255的(IP)
類型255的(CS)0000000004
4*N003FC中斷向量區(qū)中斷向量:中斷例行程序的入口地址,存放于中斷向量區(qū)。
00000H003FFHA0000HC0000HF0000H640K(RAM)128K(RAM)192K(ROM)64K(ROM)匯編語言中斷指令:INTTYPE
或INT執(zhí)行操作:(SP)←(SP)-2((SP)+1,(SP))←(PSW
)(SP)←(SP)-2((SP)+1,(SP))←(CS
)(SP)←(SP)-2((SP)+1,(SP))←(IP
)(IP)←(TYPE*4)(CS)←(TYPE*4+2)溢出中斷指令:INTO執(zhí)行操作:若OF=1,
(IP)←(10H)(CS)←(12H)匯編語言從中斷返回指令:IRET執(zhí)行操作:(IP
)←((SP)+1,(SP))(SP)←(SP)+2(CS
)←((SP)+1,(SP))(SP)←(SP)+2(PSW
)←((SP)+1,(SP))(SP)←(SP)+2
注意:*
TYPE(0~255)是中斷類型號,隱含的類型號為3*
INT指令還把IF和TF置0,但不影響其它標(biāo)志位*
IRET指令執(zhí)行完,標(biāo)志位由堆棧中取出的值確定匯編語言處理機(jī)控制與雜項(xiàng)操作指令:
標(biāo)志處理指令
CLC、STC、CMC、
CLD、STD、
CLI、STI
其他處理機(jī)控制與雜項(xiàng)操作指令
NOP、HLT、WAIT、ESC、LOCK
匯編語言標(biāo)志處理指令:
CLCCF←0
CMCCF←CF
STCCF←1
CLDDF←0
STDDF←1
CLIIF←0
STIIF←1注意:*
只影響本指令指定的標(biāo)志匯編語言其他處理機(jī)控制與雜項(xiàng)操作指令:
NOP
無操作(機(jī)器碼占一個(gè)字節(jié))HLT
暫停機(jī)(等待一次外中斷,之后繼續(xù)執(zhí)行程序)WAIT
等待(等待外中斷,之后仍繼續(xù)等待)ESC
換碼LOCK
封鎖
(維持總線的鎖存信號,直到其后的指令執(zhí)行完)
注意:*
不影響條件標(biāo)志
匯編語言80x86的指令系統(tǒng):(1)
指令集的32位擴(kuò)展
*所有16位指令都可擴(kuò)展到32位
MOVEAX,1*可使用32位的存儲器尋址方式
MOVEAX,[EDX](2)使用方式的擴(kuò)展
*IMUL:單操作數(shù)指令→
雙操作數(shù)指令/三操作數(shù)指令
IM
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2025學(xué)年(下)第一次階段性檢測高二語文(學(xué)科)-學(xué)生用卷
- 疫情防控員協(xié)議合同協(xié)議
- 電動自行車租賃合同協(xié)議
- 申請長期無固定合同協(xié)議
- 環(huán)境咨詢服務(wù)合同協(xié)議
- 白酒合作經(jīng)營合同協(xié)議
- 電腦維修協(xié)議合同書
- 電子商務(wù)行業(yè)合同協(xié)議
- 電商平臺售票合同協(xié)議
- 電線來料加工協(xié)議合同
- 3 春夜喜雨課件(共16張PPT)
- DB32∕T 3921-2020 居住建筑浮筑樓板保溫隔聲工程技術(shù)規(guī)程
- 基樁低應(yīng)變檢測2
- 中長期人才隊(duì)伍建設(shè)戰(zhàn)略規(guī)劃
- 圖解副熱帶高壓
- 鋁合金腳手架操作規(guī)程
- 視覺形象設(shè)計(jì)VIS清單
- 林海雪原閱讀題及答案
- 動火作業(yè)前安全檢查表
- 工具鉗工技能操作鑒定要素細(xì)目表09版
- 公務(wù)車輛定點(diǎn)裝飾通知與公務(wù)車配備標(biāo)準(zhǔn)和使用管理通告匯編
評論
0/150
提交評論