版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
算術(shù)運(yùn)算指令有5類指令:加法指令減法指令乘法指令除法指令十進(jìn)制調(diào)整指令算術(shù)運(yùn)算指令表2算術(shù)運(yùn)算類指令一覽表指令類型指令指令功能加法SUBd,sSBBd,sDECdNEGdCMPd,s加法(d)(d)+(s)帶進(jìn)位加法(d)(d)+(s)+CF加1(d)(d)+1減法ADDd,sADCd,sINCd減法(d)(d)-(s)帶借位減法(d)(d)-(s)-CF減1(d)(d)-1取負(fù)(求補(bǔ))(d)0-(d)比較(d)-(s)乘法MULsIMULs無符號(hào)數(shù)乘法帶符號(hào)數(shù)乘法字節(jié):(AX)(AL)*(s)字:(DX:AX)(AX)*(s)算術(shù)運(yùn)算指令表2算術(shù)運(yùn)算類指令一覽表(續(xù)
)指令類型指令指令功能除法DIVsIDIVsCBWCWD無符號(hào)數(shù)除法帶符號(hào)數(shù)除法字節(jié)擴(kuò)展成字字?jǐn)U展成雙字字節(jié):(AL)(AX)/(s)的商
(AH)(AX)/(s)余數(shù)字:
(AX)
(DX:AX)/(s)的商
(DX)
(DX:AX)/(s)余數(shù)AL的符號(hào)位擴(kuò)展至AHAX的符號(hào)位擴(kuò)展至DX十進(jìn)制調(diào)整AAADAAAASDASAAMAAD加法分離BCD碼調(diào)整加法組合BCD碼調(diào)整減法分離BCD碼調(diào)整減法組合BCD碼調(diào)整乘法分離BCD碼調(diào)整減法分離BCD碼調(diào)整加法指令共3條:ADD加法ADC帶進(jìn)位加法INC加1指令加法指令A(yù)DD指令
?
基本格式和功能指令格式:
ADDDST,SRC執(zhí)行的操作:
(DST)←(DST)+(SRC)尋址方式:
ADDmem/reg,mem/reg/data加法指令A(yù)DD指令
?
說明相加操作影響標(biāo)志位OF、SF、ZF、AF、PF、CF。src可以為通用寄存器、存儲(chǔ)器或立即數(shù)。dest可以是通用寄存器或存儲(chǔ)器,但不能是立即數(shù)。src
和dest不能同時(shí)為存儲(chǔ)器操作數(shù)。src
和dest不能使用段寄存器??蛇M(jìn)行8位或者16位的加法,但d與s長度要相同。相加后源操作數(shù)不變。加法指令A(yù)DD指令
?
例子例1:指令舉例:
ADDAX,0FF00HADDBytePTR[SI],13HADDAX,BX例2:錯(cuò)誤的指令:
ADDAX,BLADD[SI+3],[BX][DI]ADDDS,DX加法指令A(yù)DC指令
?
基本格式和功能指令格式:
ADCDST,SRC執(zhí)行的操作:
(DST)
←(DST)+(SRC)+CF尋址方式:
ADCmem/reg,mem/reg/data
加法指令A(yù)DC指令
?
說明與ADD指令一樣,ADC同樣影響6個(gè)狀態(tài)標(biāo)志位。其中CF在指令中參與計(jì)算,計(jì)算后根據(jù)結(jié)果重新設(shè)置CF的值。加法指令A(yù)DC指令
?
用途ADC指令常用在多字節(jié)數(shù)相加的場合,利用CF把低字節(jié)的進(jìn)位加到高字節(jié)中去。加法指令A(yù)DC指令
?例子例:用指令實(shí)現(xiàn)以下兩個(gè)32位數(shù)的相加運(yùn)算:
107C932AH+55667788H解:
MOVAX,932AHMOVBX,107CHADDAX,7788HADCBX,5566H加法指令I(lǐng)NC指令
?
基本格式和功能指令格式:
INC
dest執(zhí)行的操作:
(dest)←(dest)+1尋址方式:
INCmem/reg加法指令I(lǐng)NC指令
?
基本格式和功能目的操作數(shù)dest可以是8位或16位通用寄存器或存儲(chǔ)單元,但不能為立即數(shù)。指令執(zhí)行時(shí)把操作數(shù)看成是無符號(hào)數(shù),加1后設(shè)置PF,AF,ZF,SF和OF,但特別要注意,INC指令不影響CF。加法指令I(lǐng)NC指令
?
基本格式和功能例1:AL=05H,則INCAL后,AL=06H例2:AX=0FFFFH,則INCAX后,AX=?答案:AX=0000H減法指令共5條:
SUB減法
SBB帶借位減
CMP比較
DEC減1指令
NEG求補(bǔ)指令
減法指令SUB,SBB和CMP指令
?
基本格式和功能指令格式:
SUB/SBB/CMPDST,SRC執(zhí)行的操作:
SUB:(DST)←(DST)-(SRC)SBB:(DST)←(DST)-(SRC)-CF
CMP:(DST)-(SRC)
不保存結(jié)果,但影響各標(biāo)志位
減法指令SUB,SBB和CMP指令
?
基本格式和功能尋址方式:
SUB(SBB,CMP)mem/reg,mem/regSUB(SBB,CMP)mem/reg,data說明:d和s不能同為存儲(chǔ)器操作數(shù)d不能為立即數(shù)。減法指令SUB,SBB和CMP指令
?
一些說明這三條指令均可進(jìn)行字節(jié)或字的減法運(yùn)算;均影響所有6個(gè)狀態(tài)標(biāo)志位;SBB指令主要用于大于16位的減法,利用CF把低位部分產(chǎn)生的借位引入高位部分的減法中。減法指令SUB與SBB指令
?
例子例:寫指令,完成32位減法:
12345678H-0123ABCDH參考答案:
movax,5678H
mov
bx,1234Hsubax,0ABCDH
sbb
bx,0123H減法指令CMP指令
?
一些說明CMP指令執(zhí)行后,d與s均保持不變;CMP指令常用于判斷2個(gè)數(shù)的大?。贿M(jìn)行大小比較時(shí),無符號(hào)數(shù)與有符號(hào)數(shù)有不同的判斷依據(jù):無符號(hào)數(shù)有符號(hào)數(shù)ZF=1d=sOFSF=0dsZF=0CF=0d>sCF=1d<sOFSF=1d<s減法指令DEC指令
?
基本格式和功能指令格式:
DECd執(zhí)行的操作:
(d)←(d)-1影響標(biāo)志位:
與INC指令一樣,不影響CF標(biāo)志,但影響其它5個(gè)狀態(tài)標(biāo)志。減法指令NEG指令
?
基本格式和功能指令格式:
NEGd功能:
(d)0-(d)減法指令NEG指令
?
說明說明:d可以是8位或16位寄存器或存儲(chǔ)器操作數(shù);不能是立即數(shù)或段寄存器。NEG指令影響6個(gè)狀態(tài)標(biāo)志位,指令執(zhí)行后,CF被置1,SF、ZF、OF、PF、AF根據(jù)NEG的結(jié)果取值。減法指令NEG指令
?例子例:設(shè)AL=00000100=+4,則執(zhí)行指令
NEGAL
后,AL=11111100=[-4]補(bǔ)乘法指令共兩條指令
MUL無符號(hào)數(shù)乘法
IMUL有符號(hào)數(shù)乘法乘法指令MUL指令
?
基本格式和功能指令格式:
MUL
s功能:字節(jié)乘法:(AX)(AL)*(s)字乘法:(DX:AX)(AX)*(s)
乘法指令MUL指令
?說明說明:此指令為無符號(hào)數(shù)乘法指令,不能用于有符號(hào)數(shù)相乘,否則結(jié)果可能錯(cuò)誤。影響標(biāo)志位情況:若運(yùn)算結(jié)果的高位字節(jié)或高位字有效,即AH0或DX0,則將CF和OF同時(shí)置1,其他位任意。S可為8/16位通用寄存器或存儲(chǔ)器操作數(shù),不允許為立即數(shù)。乘法指令MUL指令
?
例子例1:計(jì)算兩個(gè)無符號(hào)數(shù)12H×56H,請寫出指令序列。解:
MOVAL,12HMOVBL,56HMULBL乘法指令MUL指令
?
例子例2:計(jì)算兩個(gè)無符號(hào)數(shù)1234H×5678H,請寫出指令序列。解:
MOVAX,1234HMOVBX,5678HMULBX乘法指令I(lǐng)MUL指令
?
基本格式和功能指令格式:
IMUL
s功能&說明:具體功能與MUL指令類似;但此指令為有符號(hào)數(shù)相乘指令,它完成兩個(gè)帶符號(hào)的8/16位二進(jìn)制數(shù)乘的功能。尋址方式要求、標(biāo)志位影響均與MUL指令相同。乘法指令I(lǐng)MUL指令
?
例子例:計(jì)算兩個(gè)有符號(hào)數(shù)0F2H×56H,請寫出指令序列。解:
MOVAL,0F2HMOVBL,56HIMULBL注意:程序運(yùn)行后AX中的內(nèi)容不是514CH,也不是04B4H,而是0FB4CH除法指令共4條相關(guān)指令DIV無符號(hào)數(shù)除法IDIV有符號(hào)數(shù)除法CBW符號(hào)擴(kuò)展,字節(jié)擴(kuò)展為字CWD符號(hào)擴(kuò)展,字?jǐn)U展為雙字除法指令DIV和IDIV指令
?
基本格式和功能指令格式:
DIVS
IDIVS執(zhí)行的操作:字節(jié)字(AL)(AX)/(S)的商(AH)(AX)/(S)的余數(shù)(AX)(DX:AX)/(S)的商(DX)(DX:AX)/(S)的余數(shù)除法指令DIV和IDIV指令
?
說明與標(biāo)志位的關(guān)系:除法指令對標(biāo)志位的影響不確定,而且這些影響沒有意義。尋址方式:
DIVmem/regIDIVmem/reg
S可以是8/16位的通用寄存器或存儲(chǔ)器操作數(shù),但不能為立即數(shù)或段寄存器。除法指令DIV和IDIV指令
?
說明DIV用于無符號(hào)數(shù)除法,IDIV用于有符號(hào)數(shù)除法。除法是字還是字節(jié)除法,由S的寬度決定。若除法運(yùn)算所得的商數(shù)超出累加器的容量,則系統(tǒng)將其當(dāng)作除數(shù)為0處理,自動(dòng)產(chǎn)生類型0中斷,CPU轉(zhuǎn)去執(zhí)行類型0中斷服務(wù)程序作適當(dāng)處理,此時(shí)所得商數(shù)和余數(shù)均無效。除法指令DIV和
IDIV指令
?
例子例:進(jìn)行無符號(hào)數(shù)除法:20017,寫出指令。解:
MOVAX,00C8HMOVBL,11HDIVBL除法指令DIV和IDIV指令
?
例子例:進(jìn)行有符號(hào)數(shù)除法:(-3200)(+269),寫出指令。解:
MOVAX,0C80HNEGAX;MOVAX,F(xiàn)380H也可以
MOVDX,0FFFFH;用CWD指令更準(zhǔn)確
MOVBX,010DHIDIVBX除法指令?符號(hào)擴(kuò)展指令CBW和CWD指令
?
基本格式和功能格式:
CBW
CWD功能:CBW:將AL中的符號(hào)位擴(kuò)展到AHCWD:將AX中的符號(hào)位擴(kuò)展到DX除法指令?符號(hào)擴(kuò)展指令CBW和CWD指令
?
說明除法指令的被除數(shù)的數(shù)據(jù)寬度應(yīng)該是除數(shù)的2倍。當(dāng)被除數(shù)寬度不夠時(shí),必須進(jìn)行擴(kuò)展,例如:要用存放在AX中的數(shù)65535除以存放BX中的數(shù)256,需要把AX中的被除數(shù)擴(kuò)展為32位,為此,只要(DX)←0即可。但有符號(hào)數(shù)除法,情況更復(fù)雜一些,擴(kuò)展時(shí)必須考慮符號(hào)。有符號(hào)數(shù)的最高位是符號(hào)位,擴(kuò)展時(shí),只需用其填充擴(kuò)展累加器的高位即可。十進(jìn)制調(diào)整指令共六條:AAA分離BCD碼的加法十進(jìn)制調(diào)整DAA組合BCD碼的加法十進(jìn)制調(diào)整AAS分離BCD碼的減法十進(jìn)制調(diào)整DAS組合BCD碼的減法十進(jìn)制調(diào)整AAM乘法的十進(jìn)制調(diào)整(分離BCD碼)AAD除法的十進(jìn)制調(diào)整(分離BCD碼)十進(jìn)制調(diào)整指令DAA指令
?
基本格式和功能格式:
DAA功能:進(jìn)行組合BCD碼加法調(diào)整。十進(jìn)制調(diào)整指令DAA指令
?
說明DAA指令對AL中的組合型BCD碼(1個(gè)字節(jié)2個(gè)碼)進(jìn)行調(diào)整(僅對AL進(jìn)行調(diào)整)當(dāng)AL中的運(yùn)算結(jié)果出現(xiàn)非法碼或產(chǎn)生半進(jìn)位或進(jìn)位時(shí),DAA自動(dòng)加6修正。DAA必須緊跟在ADD或ADC指令之后使用。DAA指令影響SF、ZF、AF、PF、CF,而OF的值任意。十進(jìn)制調(diào)整指令DAA指令
?
例子例:設(shè)AX=6698H,BX=2877H,它們均為組合型BCD碼。請寫出能正確實(shí)現(xiàn)AX+BX的指令序列。(運(yùn)算結(jié)果放回AX中。)解:
ADDAL,BL;低字節(jié)相加
DAA;低字節(jié)調(diào)整
MOVCL,ALMOVAL,AHADCAL,BH;高字節(jié)相加
DAA;高字節(jié)調(diào)整
MOVAH,ALMOVAL,CL十進(jìn)制調(diào)整指令DAS指令
?
基本格式和功能格式:
DAS功能:進(jìn)行組合BCD碼減法調(diào)整。除了是對減法進(jìn)行修正外,其余均與DAA指令類似。
十進(jìn)制調(diào)整指令A(yù)AA和AAS指令
?
基本格式和功能格式:
AAAAAS功能:對AL中的分離BCD碼加法/減法運(yùn)算的結(jié)果進(jìn)行二——十進(jìn)制修正。十進(jìn)制調(diào)整指令A(yù)AA和AAS指令
?
說明AAA和AAS指令負(fù)責(zé)把AL中的結(jié)果調(diào)整為正確的分離型BCD碼,
AL中高四位清零,調(diào)整后結(jié)果仍保留在AL中;低四位如果向高四位有進(jìn)/借位(AF=1),則傳遞到AH中。十進(jìn)制調(diào)整指令A(yù)AM指令
?
基本格式和功能格式:
AAM功能:對AL中的乘
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 山東省濟(jì)寧市第七中學(xué)2024--2025學(xué)年七年級上學(xué)期第一次月考數(shù)學(xué)試題(無答案)
- 2024年度云南省高校教師資格證之高等教育心理學(xué)全真模擬考試試卷A卷含答案
- 贛南師范大學(xué)《教育政策法規(guī)與教師職業(yè)道德》2021-2022學(xué)年第一學(xué)期期末試卷
- 2024年激光合作目標(biāo)項(xiàng)目資金需求報(bào)告代可行性研究報(bào)告
- 阜陽師范大學(xué)《形式與政策三》2022-2023學(xué)年第一學(xué)期期末試卷
- 南京市2024-2025學(xué)年五年級上學(xué)期11月期中調(diào)研數(shù)學(xué)試卷一(有答案)
- 福建師范大學(xué)《資本論選讀》2021-2022學(xué)年第一學(xué)期期末試卷
- 2024年二級建造師實(shí)務(wù)集訓(xùn)模擬題一
- 財(cái)務(wù)管理-物業(yè)公司清算報(bào)告模板
- 福建師范大學(xué)《景觀設(shè)計(jì)三》2022-2023學(xué)年第一學(xué)期期末試卷
- 卡通學(xué)生班干部競選自我介紹
- 江蘇民歌課件
- DB11T 1448-2017 城市軌道交通工程資料管理規(guī)程
- 骨質(zhì)疏松癥-PPT課件
- 施耐德APC1-20K不間斷電源內(nèi)部培訓(xùn)(ppt可編輯修改)課件
- 八年級環(huán)境教育教案全冊各課
- 藍(lán)色炫酷科技風(fēng)新品上市發(fā)布會(huì)PPT模板課件
- 小小建筑師公開課-PPT課件
- 類風(fēng)濕性關(guān)節(jié)炎護(hù)理查房ppt
- 空氣質(zhì)量遠(yuǎn)程監(jiān)測系統(tǒng)設(shè)計(jì)畢業(yè)設(shè)計(jì)(論文)
- 2020新外研版新教材高二英語選擇性必修四課文及翻譯(中英文Word)
評論
0/150
提交評論