運(yùn)算程序設(shè)計(jì)及應(yīng)用舉例_第1頁(yè)
運(yùn)算程序設(shè)計(jì)及應(yīng)用舉例_第2頁(yè)
運(yùn)算程序設(shè)計(jì)及應(yīng)用舉例_第3頁(yè)
運(yùn)算程序設(shè)計(jì)及應(yīng)用舉例_第4頁(yè)
運(yùn)算程序設(shè)計(jì)及應(yīng)用舉例_第5頁(yè)
已閱讀5頁(yè),還剩39頁(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)介

微機(jī)原理與匯編語(yǔ)言第5章運(yùn)算程序設(shè)計(jì)及應(yīng)用舉例

5.1算術(shù)運(yùn)算5.2數(shù)碼轉(zhuǎn)換5.3邏輯運(yùn)算5.4字符串處理編輯ppt算術(shù)指令:

加法指令

ADD、ADC、INC

減法指令

SUB、SBB、DEC、NEG、CMP

乘法指令

MUL、IMUL

除法指令

DIV、IDIV

十進(jìn)制調(diào)整指令

DAA、DAS、AAA、AAS、AAM、AAD編輯ppt加法指令

加法指令:ADDDST,SRC執(zhí)行操作:(DST)(SRC)+(DST)

帶進(jìn)位加法指令:ADCDST,SRC執(zhí)行操作:(DST)(SRC)+(DST)+CF

加1指令:INCOPR執(zhí)行操作:(OPR)(OPR)+1注意:*除INC指令不影響CF標(biāo)志外,均對(duì)條件標(biāo)志位有影響。編輯ppt加法指令對(duì)條件標(biāo)志位的影響CF位表示無(wú)符號(hào)數(shù)相加的溢出。OF位表示帶符號(hào)數(shù)相加的溢出。1結(jié)果為負(fù)0否則SF=1結(jié)果為00否則ZF=1和的最高有效位有向高位的進(jìn)位0否則CF=1兩個(gè)操作數(shù)符號(hào)相同,而結(jié)果符號(hào)與之相反0否則OF=編輯ppt舉例:n=8bit帶符號(hào)數(shù)(-128~127),無(wú)符號(hào)數(shù)(0~255)

00000100+0000101100001111帶:(+4)+(+11)=+15OF=0無(wú):4+11=15CF=0帶符號(hào)數(shù)和無(wú)符號(hào)數(shù)都不溢出00001001+0111110010000101帶:(+9)+(+124)=-123OF=1無(wú):9+124=133CF=0帶符號(hào)數(shù)溢出無(wú)符號(hào)數(shù)溢出00000111+11111011100000010帶:(+7)+(-5)=+2OF=0無(wú):7+251=2CF=1帶符號(hào)數(shù)和無(wú)符號(hào)數(shù)都溢出10000111+11110101101111100帶:(-121)+(-11)=+124OF=1無(wú):135+245=124CF=1編輯ppt例:雙精度數(shù)的加法

(DX)=0002H(AX)=0F365H(BX)=0005H(CX)=8100H指令序列

ADDAX,CX;(1)ADCDX,BX;(2)

(1)執(zhí)行后,(AX)=7465H

CF=1OF=1SF=0ZF=0(2)執(zhí)行后,(DX)=0008HCF=0OF=0SF=0ZF=0編輯ppt減法指令減法指令:SUBDST,SRC執(zhí)行操作:(DST)(DST)-(SRC)帶借位減法指令:SBBDST,SRC執(zhí)行操作:(DST)(DST)-(SRC)-CF減1指令:DECOPR執(zhí)行操作:(OPR)(OPR)-1求補(bǔ)指令:NEGOPR執(zhí)行操作:(OPR)-(OPR)比較指令:CMPOPR1,OPR2執(zhí)行操作:(OPR1)-(OPR2)注意:*除DEC指令不影響CF標(biāo)志外,均對(duì)條件標(biāo)志位有影響。編輯ppt減法指令對(duì)條件標(biāo)志位(CF/OF/ZF/SF)的影響:CF位表示無(wú)符號(hào)數(shù)減法的溢出。OF位表示帶符號(hào)數(shù)減法的溢出。1被減數(shù)的最高有效位有向高位的借位0否則CF=1兩個(gè)操作數(shù)符號(hào)相反,而結(jié)果的符號(hào)與減數(shù)相同0否則OF=1減法轉(zhuǎn)換為加法運(yùn)算時(shí)無(wú)進(jìn)位0否則CF=或編輯pptNEG指令對(duì)CF/OF的影響0操作數(shù)為01否則CF=1操作數(shù)為-128(字節(jié)運(yùn)算)或操作數(shù)為-32768(字運(yùn)算)0否則OF=00011110+00011111編輯pptNEG指令對(duì)CF/OF的影響0操作數(shù)為01否則CF=1操作數(shù)為-128(字節(jié)運(yùn)算)或操作數(shù)為-32768(字運(yùn)算)0否則OF=00001111+00011000010000111+00011000編輯ppt例:x、y、z均為雙精度數(shù),分別存放在地址為X,X+2;Y,Y+2;Z,Z+2的存儲(chǔ)單元中,用指令序列實(shí)現(xiàn)wx+y+24-z,并用W,W+2單元存放wMOVAX,XMOVDX,X+2ADDAX,YADCDX,Y+2;x+yADDAX,24ADCDX,0;x+y+24SUBAX,ZSBBDX,Z+2;x+y+24-zMOVW,AXMOVW+2,DX;結(jié)果存入W,W+2單元編輯ppt乘法指令

無(wú)符號(hào)數(shù)乘法指令:MULSRC帶符號(hào)數(shù)乘法指令:IMULSRC執(zhí)行操作:字節(jié)操作數(shù)(AX)(AL)*(SRC)字操作數(shù)(DX,AX)(AX)*(SRC)注意:

*AL(AX)為隱含的乘數(shù)寄存器。*AX(DX,AX)為隱含的乘積寄存器。*SRC不能為立即數(shù)。*除CF和OF外,對(duì)條件標(biāo)志位無(wú)定義。編輯ppt乘法指令對(duì)CF/OF的影響:例:(AX)=16A5H,(BX)=0611H

(1)

IMULBL

;(AX)(AL)*(BL)

;A5*115B*11=060BF9F5

;

(AX)=0F9F5H

CF=OF=1(2)

MULBX

;(DX,AX)(AX)*(BX)

;16A5*0611=00895EF5

;

(DX)=0089H(AX)=5EF5H

CF=OF=100乘積的高一半為零11否則MUL指令:CF,OF=00乘積的高一半是低一半的符號(hào)擴(kuò)展11否則

IMUL指令:CF,OF=1010010101011011編輯ppt除法指令

無(wú)符號(hào)數(shù)除法指令:DIVSRC帶符號(hào)數(shù)除法指令:IDIVSRC執(zhí)行操作:字節(jié)操作(AL)(AX)/(SRC)的商(AH)(AX)/(SRC)的余數(shù)字操作(AX)(DX,AX)/(SRC)的商(DX)(DX,AX)/(SRC)的余數(shù)注意:

*AX(DX,AX)為隱含的被除數(shù)寄存器。*AL(AX)為隱含的商寄存器。*AH(DX)為隱含的余數(shù)寄存器。*SRC不能為立即數(shù)。*對(duì)所有條件標(biāo)志位均無(wú)定義。如何判別結(jié)果有效?編輯ppt例:x,y,z,v均為16位帶符號(hào)數(shù),計(jì)算(v-(x*y+z–540))/xMOVAX,XIMULY;x*y→(DX,AX)MOVCX,AXMOVBX,DXMOVAX,ZCWD;Z→(DX,AX)ADDCX,AXADCBX,DX;x*y+z→(BX,CX)SUBCX,540SBBBX,0;x*y+z-540MOVAX,VCWD;V→(DX,AX)SUBAX,CXSBBDX,BX;v-(x*y+z-540)IDIVX;(v-(x*y+z-540))/x→(AX) 余數(shù)→(DX)編輯ppt十進(jìn)制調(diào)整指令BCD碼:用二進(jìn)制編碼的十進(jìn)制數(shù),又稱二--十進(jìn)制數(shù)壓縮的BCD碼:用4位二進(jìn)制數(shù)表示1位十進(jìn)制數(shù)

例:(59)10=(01011001)BCD非壓縮的BCD碼:用8位二進(jìn)制數(shù)表示1位十進(jìn)制數(shù)例:(59)10=(0000010100001001)BCD數(shù)字的ASCII碼是一種非壓縮的BCD碼DIGIT ASCII BCD0 30H 001100001 31H 001100012 32H 00110010… … …9 39H 00111001編輯ppt例:寫出(3590)10的壓縮BCD碼和非壓縮BCD碼,并分別把它們存入數(shù)據(jù)區(qū)PAKED和UNPAK壓縮BCD: (3590)10=(0011010110010000)BCD非壓縮BCD:(3590)10=(00000011000001010000100100000000)BCDPAKED90H35HUNPAK00H09H05H03H編輯ppt問(wèn)題的提出:十進(jìn)制調(diào)整指令19壓縮BCD:000110012700100001+110+08+00001000(00100111)BCDAF=1編輯ppt(1)壓縮的BCD碼調(diào)整指令●DAA加法的十進(jìn)制調(diào)整指令●DAS減法的十進(jìn)制調(diào)整指令(2)非壓縮的BCD碼調(diào)整指令●AAA加法的ASCII碼調(diào)整指令●AAS減法的ASCII碼調(diào)整指令●AAM乘法的ASCII碼調(diào)整指令●AAD除法的ASCII碼調(diào)整指令編輯ppt邏輯指令:

邏輯運(yùn)算指令A(yù)ND、OR、NOT、XOR、TEST移位指令SHL、SHR、SAL、SAR、ROL、ROR、RCL、RCR編輯ppt邏輯指令:AND“與”運(yùn)算兩個(gè)對(duì)應(yīng)位同時(shí)為1,運(yùn)算結(jié)果的對(duì)應(yīng)位為1,否則為0。OR“或”運(yùn)算兩個(gè)對(duì)應(yīng)位同時(shí)為0,運(yùn)算結(jié)果的對(duì)應(yīng)位為0,否則為1。XOR“異或”運(yùn)算兩個(gè)對(duì)應(yīng)位相同時(shí),運(yùn)算結(jié)果的對(duì)應(yīng)位為0,否則為1。NOT“非”運(yùn)算將原操作數(shù)的各位取反,即“1”變?yōu)椤?”,“0”變?yōu)椤?”ABAANDBAORBAXORBNOTA000001010111100110111100編輯ppt邏輯與指令:ANDDST,SRC執(zhí)行操作:(DST)(DST)(SRC)邏輯或指令:ORDST,SRC執(zhí)行操作:(DST)(DST)(SRC)異或指令:XORDST,SRC執(zhí)行操作:(DST)(DST)⊕

(SRC)測(cè)試指令:TESTOPR1,OPR2

執(zhí)行操作:(OPR1)(OPR2)邏輯非指令:NOTOPR*OPR不能為立即數(shù)執(zhí)行操作:(OPR)(OPR)*不影響標(biāo)志位

CFOFSFZFPFAF00***無(wú)定義

根據(jù)運(yùn)算結(jié)果設(shè)置邏輯運(yùn)算指令編輯ppt例:屏蔽AL的第0、1兩位

ANDAL,0FCH例:置AL的第5位為1

ORAL,20H

例:使AL的第0、1位變反

XORAL,3例:測(cè)試某些位是0是1

TESTAL,1JZEVEN

********OR00100000**1*****

******01XOR00000011

******10

********AND11111100******00********AND000000010000000*編輯ppt邏輯左移SHLOPR,CNT邏輯右移SHROPR,CNT算術(shù)左移SALOPR,CNT(同邏輯左移)算術(shù)右移SAROPR,CNT

CF0

0CFCF移位指令編輯ppt循環(huán)左移ROLOPR,CNT循環(huán)右移ROROPR,CNT帶進(jìn)位循環(huán)左移RCLOPR,CNT帶進(jìn)位循環(huán)右移RCROPR,CNTCF

CFCFCF編輯ppt注意:

*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無(wú)定義循環(huán)移位指令:

不影響SF、ZF、PF、AFOF=編輯ppt帶進(jìn)位的循環(huán)左移指令例:將32位數(shù)12345678H算術(shù)左移一位。MOVAX,5678HMOVDX,1234HSALAX,1RCLDX,1結(jié)果為(AX)=0ACF0H,(DX)=2468H編輯ppt例:(AX)=0012H,(BX)=0034H,把它們裝配成(AX)=1234H例:(BX)=84F0H(1)(BX)為無(wú)符號(hào)數(shù),求(BX)/2

SHRBX,1

;(BX)=4278H(2)(BX)為帶符號(hào)數(shù),求(BX)×2

SALBX,1

;(BX)=09E0H,OF=1(3)(BX)為帶符號(hào)數(shù),求(BX)/4MOVCL,2 SARBX,CL;(BX)=0E13CHMOVCL,8ROLAX,CLADDAX,BX編輯pptMOVCH,4;循環(huán)次數(shù)MOVCL,4;移位次數(shù)NEXT:ROLBX,CLMOVAX,BXANDAX,0FHPUSHAXDECCHJNZNEXT00080004000F0000(SP)(3)(BX)=84F0H,把

(BX)

中的16位數(shù)每4位壓入堆棧編輯ppt第4章8086指令系統(tǒng)及尋址方式4.5表達(dá)式與操作符常量、變量、標(biāo)號(hào)常量字符串常量用單引號(hào)‘’、或者雙引號(hào)“”括起來(lái)的一個(gè)或多個(gè)ASCⅡ字符,如‘A1’、‘B’、‘5’、‘GOOD’匯編程序把字符串常量表示成一個(gè)字節(jié)序列,一個(gè)字節(jié)對(duì)應(yīng)一個(gè)字符,并把該字符翻譯成它的ASCⅡ碼值進(jìn)行存儲(chǔ)。如‘5’轉(zhuǎn)換成ASCⅡ碼值就是273527H編輯ppt串處理指令:

設(shè)置方向標(biāo)志指令

CLD、STD

串處理指令

串重復(fù)前綴MOVSB/MOVSWREPSTOSB/STOSWREPE/REPZLODSB/LODSWREPNE/REPNZCMPSB/CMPSWSCASB/SCASW

編輯ppt與REP配合工作的MOVS/STOS/LODS

REP執(zhí)行操作:(1)如(CX)=0則退出REP,否則轉(zhuǎn)(2)(2)(CX)(CX)-1(3)執(zhí)行MOVS/STOS/LODS(4)重復(fù)(1)~(3)編輯pptMOVS串傳送指令: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í)用-。REPMOVS:將數(shù)據(jù)段中的整串?dāng)?shù)據(jù)傳送到附加段中。源串(數(shù)據(jù)段)→目的串(附加段)編輯ppt執(zhí)行REPMOVS之前,應(yīng)先做好:(1)源串首地址(末地址)→SI(2)目的串首地址(末地址)→DI(3)串長(zhǎng)度→CX(4)建立方向標(biāo)志(CLD使DF=0,STD使DF=1)編輯ppt(SI)(DI)

DF=0DF=1數(shù)據(jù)段附加段(SI)(DI)

編輯pptdatasegmentmess1db‘personal_computer’dataendsextrasegmentmess2db17dup(?)extraendscodesegmentmovax,datamov ds,axmov ax,extramoves,axleasi,mess1leadi,mess2movcx,17cldrepmovsb…codeendsleasi,mess1+16leadi,mess2+16movcx,17stdrepmovsb編輯pptdatasegmentmess1db‘personal_computer’mess2db17dup(?)dataendscodesegmentmovax,datamov ds,axmoves,axleasi,mess1leadi,mess2movcx,17cldrepmovsb…codeends編輯pptSTOS存入串指令:STOSDSTSTOSB(字節(jié))STOSW(字)執(zhí)行操作:

字節(jié)操作:((DI))←(AL),(DI)←(DI)±1字操作:((DI))←(AX),(DI)←(DI)±2

例:把附加段中的10個(gè)字節(jié)緩沖區(qū)置為20Hleadi,mess2moval,20Hmovcx,10cldrepstosbleadi,mess2movax,2020Hmovcx,5cldrepstosw編輯pptLODS從串取指令:LODSSRCLODSB(字節(jié))LODSW(字)執(zhí)行操作:字節(jié)操作:(AL)←((SI)),(SI)←(SI)±1字操作:(AX)←((SI)),(SI)←(SI)±2注意:*LOD

溫馨提示

  • 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)論