freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

第五章80868088指令系統(tǒng)(編輯修改稿)

2024-08-28 13:13 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 SBB dst, im ; dst dst—im—c SBB dst, r ; dst dst—r—c 其中 c為借位標(biāo)志的現(xiàn)行值 ADD 、 ADC 、 SUB 、 SBB均是作加減運(yùn)算的指令 , 其功能是源操作數(shù)與目的操作數(shù)進(jìn)行相加或相減 , 而ADC與ADD的差別是ADC為帶進(jìn)位的加 , 同樣SBB是帶借位的減 , 源操作數(shù)可以在寄存器 、 存儲(chǔ)器中或立即數(shù) ,目的操作數(shù)可以在寄存器 、 存儲(chǔ)器中 。 上述指令可完成8位 ( 字節(jié) ) 或16位運(yùn)算超過(guò)16位則需多條指令 。 比如操作數(shù)長(zhǎng)度大于16位的加法 , 用下面的指令 ADD AX , CX ;低16位相加 ADC BX , DX ;帶低16位進(jìn)位的高位相加 這兩條指令將把CX和DX中的32位數(shù)加到AX和BX中的32位數(shù)中 , 縣后面的一條指令 , 還將低16位的進(jìn)位也一起加上 , 結(jié)果在AX和BX中 。 又比如操作數(shù)長(zhǎng)度大于16位的減法 , 可用下面的指令 SUB AX,CX ;低16位相減 SBB BX,DX ;帶低16位借位的高位相減 SBB作減法時(shí),不僅BX和DX相減,還要減去上條指令執(zhí)行相減后的借位,最后的結(jié)果低16位將在AX中,高16位將在BX中。 這類指令不能用于存儲(chǔ)單元容的加減,也不能用立即數(shù)作為目的操作數(shù)。它們的運(yùn)算結(jié)果均將影響標(biāo)志寄存器的CF、OF、PF、SF、ZF和AF。 2、比較指令CMP 比較指令完成兩個(gè)操作數(shù)加減 , 使結(jié)果反映到標(biāo)志位上 ,并不送回相減的差值 。 指令格式如下: CMP r , src ;r-src CMP a , im ; a-im CMP dst , im ;dst-im CMP dst , r ;dst-r CMP指令是比較指令 , 用于目的操用數(shù) 與源操用數(shù) 進(jìn)行比較 , 即相減 , 類似于SUB指令 , 但不同的是 , 該指令不保存相減的結(jié)果 , 因而不變操作數(shù) , 它僅影響標(biāo)志寄存器 , 表5 .3 .2示出了比較指令影響標(biāo)志位的情況 。 目 的 操 作 數(shù) 與 源 操 作 數(shù) 比 較 CF ZF SF OF源<目的 0 0 / 1 0 / 1源=目的 0 1 0 0帶 符 號(hào) 操 作 數(shù)源<目的 0 0 / 1 0 / 1源<目的 0 0 源=目的 0 1 無(wú) 符 號(hào) 操 作 數(shù)源>目的 1 0 一般在使用CMP指令時(shí) , 后面總是跟著一條條件轉(zhuǎn)移命令 , 跟據(jù)比較結(jié)果標(biāo)志位的情況決定程序的執(zhí)行方向 , 由表5 .3 .2可看出: 兩位比較要等用零標(biāo)志位 ZF, 若 ZF= 1則表示相等 。 不帶符號(hào)數(shù)比較大小時(shí) , 當(dāng)借位標(biāo)志 CF= 1時(shí) , 說(shuō)明源>目的 , 否則目的>源 。 帶符號(hào)數(shù)比較大小時(shí) , 用符號(hào)標(biāo)志 SF與溢出 OF半加 ( 異或 ) 來(lái)判斷 , 若 SF⊕OF = 1, 則源>目的 , 否則源<目的 。例如: CMP AX, 8000H ; AX 與 8000H相比較 JL AGAIN ; 如 AX小于 8000H則轉(zhuǎn) AGAIN 當(dāng) CMP執(zhí)行后 , 若 SF≠OF 時(shí) , ( 即 SF⊕CF = 1) , 即源>目的 , 則轉(zhuǎn)移 。 INC、 DNC、 NEC指令 INC和 DEC指令僅有一個(gè)操作數(shù) , 其操作可以是8位或16位的通用寄存器值 , 也可以是存儲(chǔ)單元中的數(shù) , INC將執(zhí)行操作數(shù)加1的操作 , DEC指令將執(zhí)行操作數(shù)減1的操作 , 結(jié)果仍送回操作的位置中去 。 這兩條指令操作結(jié)果均不影響 CF標(biāo) .。 NEC指令為求補(bǔ)指令 , 它是從零中減去操作數(shù) , 形成 2 的補(bǔ) ,操作數(shù)僅有一個(gè) , 可以是寄存器的破除儲(chǔ)存單元的數(shù) 。例如: NEC DATA DATA存儲(chǔ)單元內(nèi)設(shè)有數(shù)為 00000101, 則執(zhí)行該指令后 ,其內(nèi)容就變?yōu)?11111011。 當(dāng)從一個(gè)立卻數(shù)中減去寄存器或存儲(chǔ)器中的數(shù)時(shí),不能用 SUB指令,但可以減數(shù)變補(bǔ),然后再和其相加得到減的果,如立即數(shù)為 100,則可用如下命令: NEG AL ADD AL,100 乘法與除法指令 MUL、 IMUL、 DIV、IDIV 8088提供乘法與除法指令 , 具體指令格式如下: MUL src 。 AX←AL*src( 無(wú)符號(hào)數(shù) ) MUL src 。 DX、 AX←AX*src ( 無(wú)符號(hào)數(shù) ) IMUL src 。 AX←AL*src ( 符號(hào)數(shù) ) IMUL src 。 DX 、 AX←AX*src ( 符號(hào)數(shù) ) DIV src 。 AL←AX/src,AH← 余數(shù) DIV src 。 AX←DX . AX/src, DX← 余數(shù) IDIV src 。AL←AX/src, AH← 余數(shù) ( 符號(hào)數(shù) ) IDIV src 。 AX←DX 、 AX/src,DX← 余數(shù) ( 符號(hào)數(shù) ) MUL是無(wú)符號(hào)數(shù)乘法指令 , IMUL是帶符號(hào)數(shù)的乘法指令( 整數(shù)乘法 ) , 它們都可以完成字節(jié)與字節(jié)相乘 , 字與字的相乘 , 這些乘法指令均認(rèn)為目的操作數(shù)在 AL和 AX中 , 源操作數(shù)由指令指出 , 當(dāng) 16位乘法時(shí) , 32位的乘積規(guī)定高 16位在 DX中 , 低 16位在 AX中 。 在 8位或 16乘法若擴(kuò)展部分 AH或 DX為 0則 CF=0, OF=0, 反之 CF=1。 OF=1。 IMUL是帶符號(hào)數(shù)乘法 , 執(zhí)行情況同 MUL, 不過(guò)在 16位或31位乘積中 , 包括一位符號(hào)位 。 DIV是無(wú)符號(hào)除法指令 , 它可以進(jìn)行字節(jié)或字除法 , DIV規(guī)定:對(duì)于 8位除法 , 被除數(shù)在 AX 中 , 對(duì)于 16位除法 , 被除數(shù)則在 DX與 AX中 , 而除數(shù)在指令中指出 。 除完的結(jié)果 , 對(duì) 8位數(shù)除法 , 商與余數(shù)分別放在 AX與 DX中 。 IDIV是帶符號(hào) 數(shù)除法,情況同 DIV, 除后余數(shù)符號(hào)和被除數(shù)相同 。這兩條除法指令都不能用立即數(shù)作源操作,但若需要時(shí),可用如下指令來(lái)實(shí)現(xiàn),例如: MOV BX, 10 DIV BX ; 用 10去除 DX: AX CBW與 CWD指令 上述的除法 , 被除數(shù)均是除數(shù)的雙倍字長(zhǎng) , 若要進(jìn)行相同字長(zhǎng)的除法 , 則需將被除數(shù)擴(kuò)展為雙倍字長(zhǎng) , 這就要用下面兩條指令: CBW是將字節(jié)擴(kuò)展為字指令 , 它是將 AL 中的符號(hào)擴(kuò)展到 AH的所有位去 , CWD是擴(kuò)展為雙字指令 , 它是將 AX的符號(hào) ( 第 15) 擴(kuò)展到 DX的所有位去 , 例如 AL中的內(nèi)容為 2,執(zhí)行 CBW后 AH AL 11111111←- 11111110=2 下面是一個(gè)四則運(yùn)算的例子: 設(shè) BH=FB( 即 5) BL=FE( 2) CH=( 20) CL=05 計(jì)算 ( BH*BL) +( CH/CL) AX MOV AL, BH 。 AX=ⅹⅹ FB IMUL BL 。 AX=000A=5ⅹ (2) MOV DX,AX 。 暫時(shí)保存結(jié)果 MOV AL,CH 。 AX=00EC(20) CBW 。AX=FFEC,擴(kuò)展為雙 字節(jié) IDIV CL 。 AX=00FC(4) CBW 。 AX=FFFC ADD AX、 DX 。 AX=0006=+6 6.十進(jìn)調(diào)整指令 ? ( 1) DAA指令 ? ( 2) AAA指令 ? ( 3) DAS和 AAS 指令 ? ( 4) AAM與 AAD指令 ( 1) DAA指令 當(dāng) BCD碼的十進(jìn)制運(yùn)算用二進(jìn)制進(jìn)行時(shí) , 有兩種情況需要進(jìn)行調(diào)整: 運(yùn)算的結(jié)果出現(xiàn)非法的 BCD碼 ( 即大于的數(shù) ) 。 運(yùn)算產(chǎn)生半字節(jié)間的進(jìn)位 。 調(diào)整的方法是加 6進(jìn)行修正 。 DAA指令就是按上述原則進(jìn)行十進(jìn)制調(diào)整的 , 它是一條無(wú)操作數(shù)指令 , 與 ADD指令配合實(shí)現(xiàn)壓縮型十進(jìn)制加法 。 ( 2) AAA指令 AAA是非壓縮型十進(jìn)制加法調(diào)整指令 , 它的作用是將 AL中的數(shù)換成一個(gè)非壓縮型十進(jìn)制數(shù) , 即 AAA指令執(zhí)行時(shí) , 檢查 AL的低 4位 , 若是一個(gè)合法的 BCD碼 , 則清除 AL的高 4位 ,否則按上述修正原則進(jìn)行低 4位修正 , 并將 AL的高 4位清零 。例如 AL中的內(nèi)容為 00001001=9, CL的內(nèi)容為 00001000=8, 執(zhí)行如下指令: ADD AL,CL AAA 執(zhí)行 ADD后 , AL中的內(nèi)容為 00010001, 因 AF=1, 故 AAA指令進(jìn)行調(diào)整 , 將 AL中的低 4位加 6, 即變成 00010111, 然后高4位清零成為 00000111, 并且 AH加 1, 因此 AH中為 00000001,AL中為 00000111, 得到兩個(gè)非壓縮型十進(jìn)制數(shù) 。 (3)DAS和 AAS 指令 DAS是壓縮型十進(jìn)制數(shù)減法調(diào)整指令 , AAS是非壓縮型十進(jìn)制數(shù)減法調(diào)整指令 , 它們同 ADD和 AAA指令一樣 , 不要操作數(shù) , 且假定要調(diào)整的數(shù)在 AL中 。 DAS的調(diào)整過(guò)程是:若 AL的低 4位大于 9或 AF=1, 則從 AF中減去 6, 并置 AF=1, 若 AL的高 4位大于 9, 或 CF=1, 則從 AL中高 4位減去 6, 并置 CF=1, 如用下述指令: SUB AL, BL ; AL中的數(shù) ( 壓縮的 BCD碼 ) 減去 BL( 壓縮的 BCD碼 ) DAS ; 調(diào)整結(jié)果 , AL中為正確的碼 。 AAS指令將 AL中的內(nèi)容調(diào)整成非壓縮型十進(jìn)制碼 , 即如果 AL低 4位大于 9, 或 AF=1, 則減去 6, AH減 1, 并置 AF=1,CF=1, 并清除 AL高 4位 。 ( 4) AAM與 AAD指令 AAM是非壓縮型十進(jìn)制乘法調(diào)整指令 , 它與指令配合使用 , 把中的兩個(gè)非壓縮型十進(jìn)制數(shù)相乘所得結(jié)果加以校正 。AAM指令必須跟在 MUL指令后 。 AAD是非壓縮型十進(jìn)制除法調(diào)整指令 , 它要在執(zhí)行除法之前使用 , 它是將非壓縮十進(jìn)制表示的被除數(shù)換成第二進(jìn)制值送到 AL中 , 即 AAD將被除數(shù)高位 ( AH) 乘 10, 然后加到低位 ( AL) 上 , 并將 AH清零 , ADD用法如下所示: AAD ; 將非壓縮型十進(jìn)制數(shù)調(diào)整 DIV BL ; 完成除法 。 第四節(jié) 邏輯運(yùn)算指令 8086/8088邏輯運(yùn)算指令組包括邏輯運(yùn)算指令 、移位指令和循環(huán)移位指令 。它們是對(duì)寄存器或存儲(chǔ)單元進(jìn)行位操作的指令 , 也稱位操作指令 。 邏輯運(yùn)算指令如表 . 一、邏輯運(yùn)算指令 二、移位指令 三、循環(huán)指令 匯 編 格 式 操 作邏輯指令N O T d e s tA N D d e s t , s o u r c eO R d e s t , s o u r c eX O R d e s t , s o u r c eT E S T d e s t , s o u r c e對(duì) 字 節(jié) 或 字 求 反對(duì) 字 節(jié) 或 字 按 位 與 運(yùn) 算對(duì) 字 節(jié) 或 字 按 位 或 運(yùn) 算對(duì) 字 節(jié) 或 字 按 位 異 或 運(yùn) 算同 與 運(yùn) 算 , 但 只 影 響 標(biāo) 志 位 ,不回送結(jié)果移位指令SHR d e s t , c o u n tS A R d e s t , c o u n tSAL/SHL dest,count邏輯右移算術(shù)右移算術(shù) / 邏輯右移循環(huán)移位R O R d e s t , c o u n tR C R d e s t , c o u n tR O L d e s t , c o u n tR C L d e s t , c o u n t循環(huán)右移帶 進(jìn) 位 循 環(huán) 右 移循環(huán)左移帶 進(jìn) 位 循 環(huán) 左 移一、邏輯運(yùn)算指令 NOT指令 這條指令對(duì)原操作數(shù)求反 , 然后再送回原操作數(shù) 。 指令格式為:
點(diǎn)擊復(fù)制文檔內(nèi)容
語(yǔ)文相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1