




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
二、算術運算類指令算術運算類指令用來執(zhí)行二進制的算術運算:加減乘除。這類指令會根據(jù)運算結(jié)果影響狀態(tài)標志,有時要利用某些標志才能得到正確的結(jié)果;使用他們時請留心有關狀態(tài)標志重點掌握加法指令:ADD、ADC、INC減法指令:SUB、SBB、DEC、CMP、NEG1加法和減法指令加法指令:ADD,ADC和INC減法指令:SUB,SBB,DEC,NEG和CMP他們分別執(zhí)行字或字節(jié)的加法和減法運算,除INC和DEC不影響CF標志外,其他按定義影響全部狀態(tài)標志位操作數(shù)組合:運算指令助記符reg,imm/reg/mem運算指令助記符mem,imm/reg加和減指令
ADD
dest,src
;加法:dest←dest+src
;ADD指令使目的操作數(shù)加上源操作數(shù),和的結(jié)果送到目的操作數(shù)
SUB
dest,src
;減法:dest←dest-src
;SUB指令使目的操作數(shù)減去源操作數(shù),差的結(jié)果送到目的操作數(shù)
例題加法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
例題減法subah,0f0h
;AH=B3H-F0H=C3H,AX=C36EH
;OF=0,SF=1,ZF=0,PF=1,CF=1movwordptr[200h],0ef00h
;[200H]=EF00H,標志不變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
帶進位加和減指令ADC
dest,src
;加法:dest←dest+src+CF
;ADC指令除完成ADD加法運算外,還要加上進位CF,結(jié)果送到目的操作數(shù)SBB
dest,src
;減法:dest←dest-src-CF
;SBB指令除完成SUB減法運算外,還要減去借位CF,結(jié)果送到目的操作數(shù)
例無符號雙字加法和減法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=0DX.AX=82347856H+12348998H-80004491H=1468BD5DH2.比較指令CMP(compare)CMP
dest,src
;做減法運算:dest-src
;CMP指令將目的操作數(shù)減去源操作數(shù),但差值不回送目的操作數(shù)比較指令通過減法運算影響狀態(tài)標志,用于比較兩個操作數(shù)的大小關系cmpax,bxcmpal,1003.增量和減量指令INC
reg/mem
;增量(加1):reg/mem←reg/mem+1DEC
reg/mem
;減量(減1):reg/mem←reg/mem-1INC指令和DEC指令是單操作數(shù)指令與加法和減法指令實現(xiàn)的加1和減1不同的是:INC和DEC不影響CF標志incsi ;si←si+1decbyteptr[si] ;[si]←[si]-14.求補指令NEG(negtive)NEGreg/mem
;reg/mem←0-reg/memNEG指令對操作數(shù)執(zhí)行求補運算,即用零減去操作數(shù),然后結(jié)果返回操作數(shù)求補運算也可以表達成:將操作數(shù)按位取反后加1NEG指令對標志的影響與用零作減法的SUB指令一樣NEG指令也是一個單操作數(shù)指令
例題求補運算movax,0ff64hnegal
;AL=0-64H=9CH,AX=FF9CH
;OF=0SF=1,ZF=0,PF=1,CF=1subal,9dh ;AL=9CH-9DH=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=05符號擴展指令符號擴展是指用一個操作數(shù)的符號位(最高位)形成另一個操作數(shù),后一個操作數(shù)的高位是全0(正數(shù))或全1(負數(shù))符號擴展雖然使數(shù)據(jù)位數(shù)加長,但數(shù)據(jù)大小并沒有改變,擴展的高部分僅是低部分的符號擴展符號擴展指令有兩條,用來將字節(jié)轉(zhuǎn)換為字,字轉(zhuǎn)換為雙字
CBW
;AL符號擴展成AX CWD
;AX符號擴展成DX
例題符號擴展moval,64h
;AL=64H(機器數(shù)),表示10進制數(shù)100(真值)cbw
;將符號0擴展,AX=0064H,仍然表示100movax,0ff00h
;AX=FF00H,表示有符號10進制數(shù)-256cwd
;將符號位“1”擴展,DX.AX=FFFFFF00H
;仍然表示-2566乘法和除法指令乘法指令分無符號和有符號乘法指令MULreg/mem ;無符號乘法IMULreg/mem ;有符號乘法除法指令分無符號和有符號除法指令DIVreg/mem ;無符號除法IDIVreg/mem ;有符號除法7十進制調(diào)整指令十進制數(shù)調(diào)整指令對二進制運算的結(jié)果進行十進制調(diào)整,以得到十進制的運算結(jié)果,以此實現(xiàn)十進制BCD碼運算8088指令系統(tǒng)支持兩種BCD碼調(diào)整運算壓縮BCD碼就是通常的8421碼;它用4個二進制位表示一個十進制位,一個字節(jié)可以表示兩個十進制位,即00~99非壓縮BCD碼用8個二進制位表示一個十進制位,只用低4個二進制位表示一個十進制位0~9,高4位任意,通常默認為0
編碼的比較真值(十進制) 8 64二進制編碼 08H 40H壓縮BCD碼 08H 64H非壓縮BCD碼 08H 0604HASCII碼 38H 3634H壓縮BCD碼加減法調(diào)整指令DAADAS非壓縮BCD碼加減乘除法調(diào)整指令AAAAASAAMAAD三、邏輯運算及移位指令邏輯運算及移位指令以二進制位為基本單位進行數(shù)據(jù)的操作當需要對字節(jié)或字數(shù)據(jù)中的各個二進制位操作時,可以考慮采用位操作類指令注意這些指令對標志位的影響1.邏輯運算指令ANDORXORNOTTEST2.移位指令SHLSHRSAR3.循環(huán)移位指令ROLRORRCLRCR1邏輯運算指令雙操作數(shù)邏輯指令AND、OR、XOR和TEST設置CF=OF=0,根據(jù)結(jié)果設置SF、ZF和PF狀態(tài),而對AF未定義;它們的操作數(shù)組合與ADD、SUB等一樣:運算指令助記符reg,imm/reg/mem運算指令助記符mem,imm/reg
單操作數(shù)邏輯指令NOT不影響標志位,操作數(shù)與INC、DEC和NEG一樣:NOTreg/mem邏輯與指令AND對兩個操作數(shù)執(zhí)行邏輯與運算,結(jié)果送目的操作數(shù)ANDdest,src
;dest←dest∧src
只有相“與”的兩位都是1,結(jié)果才是1;否則,“與”的結(jié)果為0
邏輯或指令OR對兩個操作數(shù)執(zhí)行邏輯或運算,結(jié)果送目的操作數(shù)ORdest,src
;dest←dest∨src只要相“或”的兩位有一位是1,結(jié)果就是1;否則,結(jié)果為0
邏輯異或指令XOR對兩個操作數(shù)執(zhí)行邏輯異或運算,結(jié)果送目的操作數(shù)XORdest,src
;dest←dest⊕src只有相“異或”的兩位不相同,結(jié)果才是1;否則,結(jié)果為0
測試指令TEST對兩個操作數(shù)執(zhí)行邏輯與運算,結(jié)果并不送目的操作數(shù),僅按AND指令影響標志TESTdest,src
;dest∧src
AND與TEST指令的關系,同SUB與CMP指令的關系一樣
邏輯非指令NOT對一個操作數(shù)執(zhí)行邏輯非運算NOTreg/mem
;reg/mem←~reg/mem
按位取反,原來是“0”的位變?yōu)椤?”;原來是“1”的位變?yōu)椤?”
例邏輯運算moval,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,標志不變
例邏輯運算指令的應用andbl,11110110b
;BL中D0和D3清0,其余位不變orbl,00001001b
;BL中D0和D3置1,其余位不變xorbl,00001001b
;BL中D0和D3求反,其余位不變
AND指令可用于復位某些位(同0相與),不影響其他位
OR指令可用于置位某些位(同1相或),不影響其他位
XOR指令可用于求反某些位(同1相異或),不影響其他位2移位指令將操作數(shù)移動一位或多位,分成邏輯移位和算術移位,分別具有左移或右移操作移位指令的第一個操作數(shù)是指定的被移位的操作數(shù),可以是寄存器或存儲單元;后一個操作數(shù)表示移位位數(shù):該操作數(shù)為1,表示移動一位該操作數(shù)為CL,CL寄存器值表示移位位數(shù)(移位位數(shù)大于1只能CL表示)按照移入的位設置進位標志CF,根據(jù)移位后的結(jié)果影響SF、ZF、PF
邏輯左移指令SHLSHLreg/mem,1/CL
;reg/mem左移1或CL位 ;最低位補0,最高位進入CF演示
邏輯右移指令SHRSHRreg/mem,1/CL
;reg/mem右移1/CL位 ;最高位補0,最低位進入CF演示
算術左移指令SALSALreg/mem,1/CL
;與SHL是同一條指令演示
算術右移指令SARSARreg/mem,1/CL
;reg/mem右移1/CL位 ;最高位不變,最低位進入CF演示
例數(shù)據(jù)移位movdx,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,標志不變sardx,cl
;DX=0000011100000011B
;CF=1,SF=0、ZF=0、PF=1
例將AL寄存器中的無符號數(shù)乘以10xorah,ah
;實現(xiàn)AH=0,同時使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
邏輯左移一位相當于無符號數(shù)乘以2
邏輯右移一位相當于無符號數(shù)除以2
循環(huán)移位指令循環(huán)移位指令類似移位指令,但要將從一端移出的位返回到另一端形成循環(huán)。分為:ROL
reg/mem,1/CL ;不帶進位循環(huán)左移ROR
reg/mem,1/CL ;不帶進位循環(huán)右移RCL
reg/mem,1/CL ;帶進位循環(huán)左移RCRreg/mem,1/CL ;帶進位循環(huán)右移循環(huán)移位指令的操作數(shù)形式與移位指令相同,按指令功能設置進位標志CF,但不影響SF、ZF、PF、AF標志演示演示演示演示32位數(shù)據(jù)移位;將DX.AX中32位數(shù)值左移一位shlax,1rcldx,1DXAXCF0考慮32位數(shù)據(jù)的右移等操作
例非壓縮BCD碼合并為壓縮BCD;DBCD有2位非壓縮BCD碼movdl,dbcd
;取低字節(jié)anddl,0fh
;只要低4位movdh,dbcd+1
;取高字節(jié)movcl,4shldh,cl
;低4位移到高4位ordl,dh
;合并到DLroldh,clrcrdh,clNo!
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 擺地攤教學合同協(xié)議書
- 競業(yè)合同協(xié)議書模板
- 家政代理合同協(xié)議書模板
- 運營和老板合作合同協(xié)議書
- 2025年中國納米水滑石項目創(chuàng)業(yè)計劃書
- 中國3,3-二甲基-1-丁酸項目創(chuàng)業(yè)計劃書
- 中國境外油田服務項目創(chuàng)業(yè)計劃書
- 直播游戲運營方案
- 常熟POCT試劑項目商業(yè)計劃書
- 病人陪護合同協(xié)議書范本
- SL631水利水電工程單元工程施工質(zhì)量驗收標準第1部分:土石方工程
- 2025年湖南出版中南傳媒招聘筆試參考題庫含答案解析
- 廣東省2024年中考數(shù)學試卷【附真題答案】
- (高清版)TDT 1075-2023 光伏發(fā)電站工程項目用地控制指標
- 監(jiān)控立桿基礎國家標準
- 場地平整土方開挖專項施工方案
- 預制梁場建設驗收標準
- 德魯克的績效觀
- 那洛巴尊者傳
- 包材產(chǎn)品HACCP計劃
- JX820D型便攜式吸引器使用說明書
評論
0/150
提交評論