版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
算術(shù)運(yùn)算類指令用來(lái)執(zhí)行二進(jìn)制的算術(shù)運(yùn)算:加減乘除。這類指令會(huì)根據(jù)運(yùn)算結(jié)果影響狀態(tài)標(biāo)志,有時(shí)要利用某些標(biāo)志才能得到正確的結(jié)果;使用他們時(shí)請(qǐng)留心有關(guān)狀態(tài)標(biāo)志重點(diǎn)掌握加法指令:ADD、ADC、INC減法指令:SUB、SBB、DEC、CMP、NEG4.3.2算術(shù)運(yùn)算類指令算術(shù)運(yùn)算類指令
可處理:不帶符號(hào)/帶符號(hào)的8/16位二進(jìn)制數(shù)不帶符號(hào)的壓縮型(2位BCD碼)/非壓縮型(一位BCD碼,高4位補(bǔ)0)十進(jìn)制數(shù)
對(duì)于加法和減法指令,帶符號(hào)和不帶符號(hào)的加減運(yùn)算的操作過(guò)程無(wú)區(qū)別,可用同一條加法/減法指令完成
對(duì)于乘法除法運(yùn)算,運(yùn)算過(guò)程完全不同,分別設(shè)有不帶符號(hào)和帶符號(hào)的乘法除法的指令
對(duì)于十進(jìn)制運(yùn)算,先采用二進(jìn)制運(yùn)算指令,后進(jìn)行十進(jìn)制調(diào)整的方式來(lái)實(shí)現(xiàn)加法指令:ADD,ADC和INC減法指令:SUB,SBB,DEC,NEG和CMP他們分別執(zhí)行字或字節(jié)的加法和減法運(yùn)算,除INC和DEC不影響CF標(biāo)志外,其他按定義影響全部狀態(tài)標(biāo)志位操作數(shù)組合:運(yùn)算指令助記符reg,imm/reg/mem運(yùn)算指令助記符mem,imm/reg4.3.2.1加法和減法指令
ADD
dest,src
;加法:dest←dest+src
;ADD指令使目的操作數(shù)加上源操作數(shù),和的結(jié)果送到目的操作數(shù)
SUB
dest,src
;減法:dest←dest-src
;SUB指令使目的操作數(shù)減去源操作數(shù),差的結(jié)果送到目的操作數(shù)1.加和減指令MOVAX,7348H ;AX=7348HADDAL,27H
;AL=48H+27H=6FH,AX=736FH
;OF=0,SF=0,ZF=0,PF=1,CF=0ADDAX,3fffH
;AX=736FH+3FFFH=B36EH
;OF=1,SF=1,ZF=0,PF=0,CF=0例4加法SUBAH,0F0H
;AH=B3H-F0H=C3H,AX=C36EH
;OF=0,SF=1,ZF=0,PF=1,CF=1MOVwordptr[200H],0EF00H
;[200H]=EF00H,標(biāo)志不變SUB[200H],AX
;[200H]=EF00H-C36EH=2B92H
;OF=0,SF=0,ZF=0,PF=0,CF=0SUBSI,SI ;SI=0
;OF=0,SF=0,ZF=1,PF=1,CF=0例5減法ADC
dest,src
;加法:dest←dest+src+CF
;ADC指令除完成ADD加法運(yùn)算外,還要加上進(jìn)位CF,結(jié)果送到目的操作數(shù)SBB
dest,src
;減法:dest←dest-src-CF
;SBB指令除完成SUB減法運(yùn)算外,還要減去借位CF,結(jié)果送到目的操作數(shù)2.帶進(jìn)位加和減指令MOVAX,7856H ;AX=7856HMOVDX,8234H ;DX=8234HADDAX,8998H ;AX=01EEH,CF=1ADCDX,1234H ;DX=9469H,CF=0SUBAX,4491H ;AX=BD5DH,CF=1SBBDX,8000H ;DX=1468H,CF=0例6無(wú)符號(hào)雙字加法和減法CMP
dest,src
;做減法運(yùn)算:dest-src
;CMP指令將目的操作數(shù)減去源操作數(shù),但差值不回送目的操作數(shù)比較指令通過(guò)減法運(yùn)算影響狀態(tài)標(biāo)志,用于比較兩個(gè)操作數(shù)的大小關(guān)系,后面跟轉(zhuǎn)移指令判斷兩個(gè)無(wú)符號(hào)數(shù)大小用JC/JNC或JA/JNBE或JB/JNAE指令判斷兩個(gè)帶符號(hào)數(shù)大小用JG/JNLE或JL/JNGE3.比較指令CMP(compare)INC
reg/mem
;增量(加1):reg/mem←reg/mem+1DEC
reg/mem
;減量(減1):reg/mem←reg/mem-1INC指令和DEC指令是單操作數(shù)指令與加法和減法指令實(shí)現(xiàn)的加1和減1不同的是:INC和DEC不影響CF標(biāo)志INCSI ;SI←SI+1DECbyteptr[SI] ;[SI]←[SI]-14.增量和減量指令例7比較指令CMP(compare)若自BLOCK開(kāi)始的內(nèi)存緩沖區(qū)中,有100個(gè)帶符號(hào)字?jǐn)?shù)據(jù),要找出其中的最大數(shù),把它存到MAX單元中
MOVBX,OFFSETBLOCKMOVAX,[BX]INCBXINCBXMOVCX,99AGAIN:CMPAX,[BX]JGNEXTMOVAX,[BX]NEXT:INCBX,INCBXDECCXJNZAGAINMOVMAX,AXHLTNEGreg/mem
;reg/mem←0-reg/memNEG指令對(duì)操作數(shù)執(zhí)行求補(bǔ)運(yùn)算,即用零減去操作數(shù),然后結(jié)果返回操作數(shù)求補(bǔ)運(yùn)算可表達(dá)成:將操作數(shù)按位取反后加1NEG指令對(duì)標(biāo)志的影響與用零作減法的SUB指令一樣NEG指令也是一個(gè)單操作數(shù)指令NEG指令執(zhí)行的結(jié)果一般總是使CF=1除非操作數(shù)為0時(shí)CF=05.求補(bǔ)指令NEG(negtive)MOVAX,0FF64HNEGAL
;AL=0-64H=9CH,AX=FF9CH
;OF=0SF=1,ZF=0,PF=1,CF=1SUBAL,9DH;AL=FFH,AX=FFFFH
;OF=0,SF=1,ZF=0,PF=1,CF=1NEGAX
;AX=0-FFFFH=0001H
;OF=0,SF=0,ZF=0,PF=0,CF=1DECAL
;AL=01H-1=0,AX=0000H
;OF=0,SF=0,ZF=1,PF=1,CF=1NEGAX
;AX=0-0=0
;OF=0,SF=0,ZF=1,PF=1,CF=0例8求補(bǔ)運(yùn)算十進(jìn)制數(shù)調(diào)整指令對(duì)二進(jìn)制運(yùn)算的結(jié)果進(jìn)行十進(jìn)制調(diào)整,以得到十進(jìn)制的運(yùn)算結(jié)果,以此實(shí)現(xiàn)十進(jìn)制BCD碼運(yùn)算8086指令系統(tǒng)支持兩種BCD碼調(diào)整運(yùn)算壓縮BCD碼就是通常的8421碼;它用4個(gè)二進(jìn)制位表示一個(gè)十進(jìn)制位,一個(gè)字節(jié)可以表示兩個(gè)十進(jìn)制位,即00~99非壓縮BCD碼用8個(gè)二進(jìn)制位表示一個(gè)十進(jìn)制位,只用低4個(gè)二進(jìn)制位表示一個(gè)十進(jìn)制位0~9,高4位為04.3.2.2十進(jìn)制調(diào)整指令十進(jìn)制調(diào)整指令DAA/DAS指令:十進(jìn)制調(diào)整指令它跟在ADD/ADC或SUB/SBB之后,功能是將AL中十進(jìn)制數(shù)相加/減后的結(jié)果進(jìn)行校正,產(chǎn)生一個(gè)組合的十進(jìn)制和/差,仍保留在AL中
AAA/AAS指令:十進(jìn)制調(diào)整指令它跟在ADD/ADC或SUB/SBB之后,對(duì)AL中兩個(gè)未組合的十進(jìn)制數(shù)相加/減后的結(jié)果進(jìn)行校正,產(chǎn)生一個(gè)未組合的十進(jìn)制和/差
,仍保留在AL中
乘法指令分無(wú)符號(hào)和有符號(hào)乘法指令
MULreg/mem ;無(wú)符號(hào)乘法
IMULreg/mem ;有符號(hào)乘法AL或AX與另一個(gè)操作數(shù)相乘,結(jié)果送到AL和AH(兩個(gè)字節(jié)相乘),或送到AX和它的擴(kuò)展部分DX(兩個(gè)字相乘)除法指令分無(wú)符號(hào)和有符號(hào)除法指令
DIVreg/mem ;無(wú)符號(hào)除法
IDIVreg/mem ;有符號(hào)除法字節(jié)除法:AX÷源操作數(shù)(8位),商在AL中,余數(shù)在AH中字除法:DX,AX
÷源操作數(shù)(16位),商在AX中,余數(shù)DX中4.3.2.3乘法和除法指令真值(十進(jìn)制)
8 64二進(jìn)制編碼
08H 40H壓縮BCD碼
08H 64H非壓縮BCD碼
08H 0604HASCII碼
38H 3634H壓縮BCD碼加減法調(diào)整指令DAADAS非壓縮BCD碼加減法調(diào)整指令A(yù)AAAASAAMAAD編碼的比較位操作類指令以二進(jìn)制位為基本單位進(jìn)行數(shù)據(jù)的操作當(dāng)需要對(duì)字節(jié)或字?jǐn)?shù)據(jù)中的各個(gè)二進(jìn)制位操作時(shí),可以考慮采用位操作類指令注意這些指令對(duì)標(biāo)志位的影響1.邏輯運(yùn)算指令A(yù)NDORXORNOTTEST2.移位指令SHLSHRSARSAL3.循環(huán)移位指令ROLRORRCLRCR4.3.3邏輯運(yùn)算指令雙操作數(shù)邏輯指令A(yù)ND、OR、XOR和TEST,根據(jù)結(jié)果設(shè)置SF、ZF和PF狀態(tài),而對(duì)AF未定義;指令的執(zhí)行使CF=OF=0
:運(yùn)算指令助記符
reg,imm/reg/mem運(yùn)算指令助記符
mem,imm/reg
單操作數(shù)邏輯指令NOT不影響標(biāo)志位:NOTreg/mem4.3.3.1邏輯運(yùn)算指令對(duì)兩個(gè)操作數(shù)執(zhí)行邏輯與運(yùn)算,結(jié)果送目的操作數(shù)ANDdest,src
;dest←dest∧src
只有相“與”的兩位都是1,結(jié)果才是1;否則,“與”的結(jié)果為01.邏輯與指令A(yù)ND對(duì)兩個(gè)操作數(shù)執(zhí)行邏輯或運(yùn)算,結(jié)果送目的操作數(shù)ORdest,src
;dest←dest∨src只要相“或”的兩位有一位是1,結(jié)果就是1;否則,結(jié)果為02.邏輯或指令OR對(duì)兩個(gè)操作數(shù)執(zhí)行邏輯異或運(yùn)算,結(jié)果送目的操作數(shù)XORdest,src
;dest←dest⊕src只有相“異或”的兩位不相同,結(jié)果才是1;否則,結(jié)果為03.邏輯異或指令XOR對(duì)兩個(gè)操作數(shù)執(zhí)行邏輯與運(yùn)算,結(jié)果并不送目的操作數(shù),僅按AND指令影響標(biāo)志TESTdest,src
;dest∧src
AND與TEST指令的關(guān)系,同SUB與CMP指令的關(guān)系一樣4.測(cè)試指令TEST對(duì)一個(gè)操作數(shù)執(zhí)行邏輯非運(yùn)算NOTreg/mem
;reg/mem←~reg/mem
按位取反,原來(lái)是“0”的位變?yōu)椤?”;原來(lái)是“1”的位變?yōu)椤?”5.邏輯非指令NOTMOVAL,75H ;AL=75HANDAL,32H ;AL=30H
;CF=OF=0,SF=0,ZF=0,PF=1ORAL,71H ;AL=71H
;CF=OF=0,SF=0,ZF=0,PF=1XORAL,0F1H ;AL=80H
;CF=OF=0,SF=1,ZF=0,PF=0NOTAL ;AL=7FH,標(biāo)志不變例9邏輯運(yùn)算ANDBL,11110110B
;BL中D0和D3清0,其余位不變ORBL,00001001B
;BL中D0和D3置1,其余位不變XORBL,00001001B
;BL中D0和D3求反,其余位不變
AND指令可用于復(fù)位某些位(同0相與),不影響其他位
OR指令可用于置位某些位(同1相或),不影響其他位
XOR指令可用于求反某些位(同1相異或),不影響其他位例10邏輯運(yùn)算指令的應(yīng)用將操作數(shù)移動(dòng)一位或多位,分成邏輯移位和算術(shù)移位,分別具有左移或右移操作移位指令的第一個(gè)操作數(shù)是指定的被移位的操作數(shù),可以是寄存器或存儲(chǔ)單元;后一個(gè)操作數(shù)表示移位位數(shù):該操作數(shù)為1,表示移動(dòng)一位該操作數(shù)為CL,CL寄存器值表示移位位數(shù)(移位位數(shù)大于1只能用CL表示)按照移入的位設(shè)置進(jìn)位標(biāo)志CF,根據(jù)移位后的結(jié)果影響SF、ZF、PF4.3.3.2移位指令SHLreg/mem,1/CL
;reg/mem左移1或CL位 ;最低位補(bǔ)0,最高位進(jìn)入CF演示1.邏輯左移指令SHLSHRreg/mem,1/CL
;reg/mem右移1/CL位 ;最高位補(bǔ)0,最低位進(jìn)入CF演示2.邏輯右移指令SHRSALreg/mem,1/CL
;與SHL是同一條指令演示3.算術(shù)左移指令SALSARreg/mem,1/CL
;reg/mem右移1/CL位 ;最高位不變,最低位進(jìn)入CF演示4.算術(shù)右移指令SARMOVDX,6075H
;DX=0110000001110101BSHLDX,1
;DX=1100000011101010B
;CF=0,SF=1、ZF=0、PF=0SARDX,1
;DX=1110000001110101B
;CF=0,SF=1、ZF=0、PF=0SHRDX,1
;DX=0111000000111010B ;CF=1,SF=0、ZF=0、PF=1MOVCL,4
;CL=4,標(biāo)志不變SARDX,CL
;DX=0000011100000011B
;CF=1,SF=0、ZF=0、PF=1例11數(shù)據(jù)移位XORAH,AH
;實(shí)現(xiàn)AH=0,同時(shí)使CF=0SHLAX,1
;AX←2×ALMOVBX,AX
;BX←AX=2×ALSHLAX,1
;AX←4×ALSHLAX,1
;AX←8×ALADDAX,BX
;AX←8×AL+2×AL=10×ALSUBAH,AHANDAH,0
邏輯左移一位相當(dāng)于無(wú)符號(hào)數(shù)乘以2
邏輯右移一位相當(dāng)于無(wú)符號(hào)數(shù)除以2例13將AL寄存器中的無(wú)符號(hào)數(shù)乘以10循環(huán)移位指令類似移位指令,但要將從一端移出的位返回到另一端形成循環(huán)。分為:ROL
reg/mem,1/CL;不帶進(jìn)位循環(huán)左移ROR
reg/mem,1/CL;不帶進(jìn)位循環(huán)右移RCL
reg/mem,1/CL;帶進(jìn)位循環(huán)左移RCRreg/mem,1/CL;帶進(jìn)位循環(huán)右移循環(huán)移位指令的操作數(shù)形式與移位指令相同,按指令功能設(shè)置進(jìn)位標(biāo)志CF,但不影響SF、ZF、PF、AF標(biāo)志演示演示演示演示4.3.3.3循環(huán)移位指令;將DX.AX中32位數(shù)值左移一位SHLAX,1RCLDX,1DXAXCF032位數(shù)據(jù)移位32位無(wú)符號(hào)數(shù)(DX.AX)右移一位32位無(wú)符號(hào)數(shù)(DX.AX)循環(huán)右移一位32位無(wú)符號(hào)數(shù)(DX.AX)左移一位例12把數(shù)字ASCII碼轉(zhuǎn)換為BCD碼
若是奇數(shù)個(gè)ASCII碼,則把地址最低位的一個(gè)轉(zhuǎn)換為BCD碼(高4位為0),然后把剩下的偶數(shù)個(gè)數(shù)按統(tǒng)一的方法處理(每?jī)蓚€(gè)ASCII碼轉(zhuǎn)換成一個(gè)壓縮的BCD碼,且地址高的放在
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 江蘇省南通市(2024年-2025年小學(xué)五年級(jí)語(yǔ)文)人教版期中考試((上下)學(xué)期)試卷及答案
- 遼寧省葫蘆島市(2024年-2025年小學(xué)五年級(jí)語(yǔ)文)人教版能力評(píng)測(cè)(上學(xué)期)試卷及答案
- 化學(xué)史期末作業(yè)化學(xué)史發(fā)展概論教案
- 2024年冶煉助劑項(xiàng)目資金申請(qǐng)報(bào)告代可行性研究報(bào)告
- 高中化學(xué)第四章非金屬及其化合物教案及練習(xí)新人教版必修
- 上海市市轄區(qū)(2024年-2025年小學(xué)五年級(jí)語(yǔ)文)人教版小升初模擬(下學(xué)期)試卷及答案
- 五年級(jí)數(shù)學(xué)(小數(shù)四則混合運(yùn)算)計(jì)算題專項(xiàng)練習(xí)及答案
- 電冰箱、空調(diào)器安裝與維護(hù)電子教案 2.3 電冰箱的故障判斷
- 電線電纜檢測(cè)培訓(xùn)
- DB11T 1102-2014 城市軌道交通工程規(guī)劃核驗(yàn)測(cè)量規(guī)程
- 部編2024版歷史七年級(jí)上冊(cè)第三單元《第14課 絲綢之路的開(kāi)通與經(jīng)營(yíng)西域》說(shuō)課稿
- 合同模板 交稅
- 社區(qū)計(jì)劃生育自查報(bào)告(3篇)
- 人教版小學(xué)數(shù)學(xué)六年級(jí)上冊(cè)第二單元《位置與方向》單元集體備課整體設(shè)計(jì)
- 人音版音樂(lè)三年級(jí)上冊(cè)全冊(cè)教案
- 2024年銀行考試-建設(shè)銀行紀(jì)檢監(jiān)察條線考試近5年真題集錦(頻考類試題)帶答案
- 南京六校聯(lián)合體2025屆高三上期10月聯(lián)考英語(yǔ)試題卷(含答案)
- 提升餐飲服務(wù)質(zhì)量
- 九年級(jí)語(yǔ)文上冊(cè)第一單元大單元教學(xué)設(shè)計(jì)
- 中國(guó)消費(fèi)名品申報(bào)書(shū);“數(shù)字三品”應(yīng)用場(chǎng)景典型案例申報(bào)書(shū)
- 《邏輯的力量-采用合理的論證方法》教學(xué)設(shè)計(jì) 2023-2024學(xué)年統(tǒng)編版高中語(yǔ)文選擇性必修上冊(cè)
評(píng)論
0/150
提交評(píng)論