版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
匯編語言邏輯指令:
邏輯運算指令
AND、OR、NOT、XOR、TEST移位指令
SHL、SHR、SAL、SAR、ROL、ROR、RCL、RCR匯編語言邏輯非指令:NOT
OPR
*OPR不能為立即數(shù)執(zhí)行操作:(OPR)
(OPR)*
不影響標志位
邏輯與指令: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ù)運算結(jié)果設(shè)置邏輯運算指令匯編語言例:屏蔽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帶進位循環(huán)左移RCLOPR,CNT帶進位循環(huán)右移RCROPR,CNTCF
CFCFCF匯編語言注意:
*OPR可用除立即數(shù)以外的任何尋址方式*
CNT=1,SHLOPR,1CNT>1,MOVCL,CNTSHLOPR,CL;以
SHL為例*條件標志位:
CF=移入的數(shù)值
1CNT=1時,最高有效位的值發(fā)生變化0CNT=1時,最高有效位的值不變
移位指令:
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è)置方向標志指令
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
方向標志DF=0時用+,DF=1時用-匯編語言與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)建立方向標志
(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個字節(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ù)段中(允許使用段跨越前綴來修改),
目的串必須在附加段中*不影響條件標志位匯編語言CMPS串比較指令:
CMPSSRC,DSTCMPSB(字節(jié))
CMPSW(字)
執(zhí)行操作:
(1)((SI))-((DI))
根據(jù)比較結(jié)果置條件標志位:相等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)匯編語言例:從一個字符串中查找一個指定的字符
messdb‘COMPUTER’leadi,mess
moval,‘T’
mov
cx,8
cld
repne
scasbCOMPUTER(di)
(di):相匹配字符的下一個地址
(cx):剩下還未比較的字符個數(shù)(di)匯編語言例:比較兩個字符串,找出它們不相匹配的位置例:反向傳送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)匯編語言段間直接遠轉(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ù)單個條件標志的設(shè)置情況轉(zhuǎn)移
格式測試條件JZ(JE)OPRZF=1JNZ(JNE)OPRZF=0JSOPRSF=1JNSOPRSF=0JOOPROF=1JNOOPROF=0JPOPRPF=1JNPOPRPF=0JCOPRCF=1JNCOPRCF=0匯編語言(2)比較兩個無符號數(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)比較兩個帶符號數(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;計算
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中,
>時轉(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位位移量,實行循環(huán);不滿足則IP不變,退出循環(huán)。匯編語言循環(huán)指令:LOOPOPR測試條件:(CX)0為零或相等時循環(huán)指令:LOOPZ(LOOPE)OPR測試條件:ZF=1且(CX)0不為零或不相等時循環(huán)指令:LOOPNZ(LOOPNE)OPR測試條件:ZF=0且(CX)0LOOPAGAIN
DECCXJNZAGAIN匯編語言例:求首地址為ARRAY的M個字之和,結(jié)果存入TOTAL……MOVCX,MMOVAX,0MOVSI,AXAGAIN:ADDAX,ARRAY[SI]ADDSI,2LOOPAGAINMOVTOTAL,AX……匯編語言例:在多重循環(huán)的程序結(jié)構(gòu)中,CX計數(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)匯編語言段間直接遠調(diào)用:CALLDST執(zhí)行操作:(SP)←(SP)-2((SP)+1,(SP))←(CS)(SP)←(SP)-2((SP)+1,(SP))←(IP)(IP)←偏移地址
(CS)←段地址段間間接遠調(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段間遠返回:RET執(zhí)行操作:(IP)←((SP)+1,(SP))(SP)←(SP)+2(CS)←((SP)+1,(SP))(SP)←(SP)+2段間帶立即數(shù)遠返回: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,但不影響其它標志位*
IRET指令執(zhí)行完,標志位由堆棧中取出的值確定匯編語言處理機控制與雜項操作指令:
標志處理指令
CLC、STC、CMC、
CLD、STD、
CLI、STI
其他處理機控制與雜項操作指令
NOP、HLT、WAIT、ESC、LOCK
匯編語言標志處理指令:
CLCCF←0
CMCCF←CF
STCCF←1
CLDDF←0
STDDF←1
CLIIF←0
STIIF←1注意:*
只影響本指令指定的標志匯編語言其他處理機控制與雜項操作指令:
NOP
無操作(機器碼占一個字節(jié))HLT
暫停機(等待一次外中斷,之后繼續(xù)執(zhí)行程序)WAIT
等待(等待外中斷,之后仍繼續(xù)等待)ESC
換碼LOCK
封鎖
(維持總線的鎖存信號,直到其后的指令執(zhí)行完)
注意:*
不影響條件標志
匯編語言80x86的指令系統(tǒng):(1)
指令集的32位擴展
*所有16位指令都可擴展到32位
MOVEAX,1*可使用32位的存儲器尋址方式
MOVEAX,[EDX](2)使用方式的擴展
*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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 個人兼職勞務(wù)費合同
- 臨海市農(nóng)業(yè)勞動合同
- 企業(yè)勞動合同中止協(xié)議書
- 二手包裝設(shè)備轉(zhuǎn)讓合同
- 會展攝影攝像合同
- 倉儲服務(wù)合同模板
- 代持協(xié)議書范本指南
- 互聯(lián)網(wǎng)大數(shù)據(jù)分析合作協(xié)議書
- 倉儲設(shè)施建設(shè)征用土地協(xié)議
- 倉儲用地土地租賃協(xié)議書
- 職業(yè)院校技能大賽教學(xué)能力比賽備賽經(jīng)驗分享如何對標備賽
- JOA腰痛疾病治療效果評分標準
- 注塑模具設(shè)計英文參考文獻
- ALC輕質(zhì)內(nèi)隔墻施工工藝
- 第15講 橢圓中6大最值問題題型總結(jié)(原卷版)
- 2023年河北省中考數(shù)學(xué)真題(原卷版)
- 銅陵市銅官區(qū)法院系統(tǒng)書記員招聘考試真題
- 硝酸安全應(yīng)急預(yù)案
- 神經(jīng)外科運用PDCA對危重患者晨間床旁交接班不完整原因分析品管圈魚骨圖柏拉圖對策擬定
- 6.3∕ 8.1∕ 8.5.6-質(zhì)量管理體系要求-“質(zhì)量管理體系與運行(生產(chǎn)服務(wù)提供)變更管理”條文理解與實施指導(dǎo)材料(雷澤佳編制-2023)
- 王戎不取道旁李-“江南聯(lián)賽”一等獎
評論
0/150
提交評論