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

正文內(nèi)容

第3章8086的尋址方式和指令系統(tǒng)(編輯修改稿)

2024-08-16 09:55 本頁面
 

【文章內(nèi)容簡介】 以判斷兩數(shù)是否相等 。 2) 兩個操作數(shù)不等 兩個無符號數(shù)的比較 無符號數(shù)相減時 , CF就是借位標志 。 如果 CF=0, 表示無借位 , 即被減數(shù)大 , 減數(shù)小 。 如果 CF=1, 表示有借位 , 即被減數(shù)小 , 減數(shù)大 。 兩個有符號數(shù)的比較 兩個有符號的比較時 , 同符號數(shù)相比較 , 相減的結(jié)果不會超出帶符號數(shù)的表示范圍 , 即不會產(chǎn)生溢出 , OF=0;兩個不同號的帶符號數(shù)比較 ,相減的結(jié)果有可能產(chǎn)生溢出 。 這時可以用如下結(jié)論判斷 。 當 OF⊕ SF=0時 , OPRD1OPRD2。 當 OF⊕ SF=1時 , OPRD1OPRD2。 CMP AL, 0 ; AL和 0進行比較 JGE NEXT ;若 AL≥ 0則轉(zhuǎn)到 NEXT執(zhí)行 例如,若自 BLOCK開始的內(nèi)存緩沖區(qū)中,有 100個帶符號的數(shù),希望找到其中最大的一個值,并將它放到 MAX單元中。 MOV SI, OFFSET BLOCK MOV AL, [SI] INC SI MOV CX, 99 AGAIN: CMP AL, [SI] JG NEXT MOV AL, [SI] NEXT: INC SI DEC CX JNE AGAIN MOV MAX, AL HLT 3. 乘法指令 8086的乘法指令分為無符號數(shù)乘法指令和帶符號數(shù)乘法指令兩種 。 ( 1) 無符號數(shù)乘法指令 MUL 指令格式: MUL OPRD 指令功能: 若 OPRD為字節(jié)數(shù)據(jù) , 則執(zhí)行 AX← ( AL) ( OPRD) 若 OPRD為字數(shù)據(jù) , 則執(zhí)行 DX、 AX← ( AX) ( OPRD) 目的操作數(shù)為: AL或 AX( 隱含給出 ) 源操作數(shù)為:通用寄存器 、 存儲器 。 不能為立即數(shù)和段寄存器 。 MUL指令對狀態(tài)標志 CF、 OF有影響, SF、 ZF、 AF、 PF不確定。 例如: MUL AL MUL BX MUL WORD PRT[SI] 要完成 14 15可以用下列指令: MOV AL, 14 MOV CL, 15 MUL CL ( 2) 帶符號數(shù)乘法指令 IMUL 指令格式: IMUL OPRD 指令功能: 若 OPRD為字節(jié)數(shù)據(jù) , 則執(zhí)行 AX← ( AL) ( OPRD) 若 OPRD為字數(shù)據(jù) , 則執(zhí)行 DX、 AX← ( AX) ( OPRD) 目的操作數(shù)為: AL或 AX( 隱含給出 ) 4. 除法指令 8086有兩條除法指令:無符號除法指令和帶符號除法指令 。它們都可以進行字節(jié)或字除法運算 , 并且規(guī)定 , 8位除法的被除數(shù)在 AX中; 16位除法的被除數(shù)在 DX與 AX中 , 除數(shù)均由指令指出 。 對 8位數(shù)除法 , 商與余數(shù)分別放在 AL與 AH中 ,對 16位除法 , 商與余數(shù)分別放在 AX與 DX中 。 ( 1) 無符號數(shù)除法指令 DIV 指令格式: DIV OPRD 指令功能: OPRD為字節(jié)數(shù)據(jù): AL← (AX)247。 (OPRD) 商 AH← (AX)247。 (OPRD) 余數(shù) OPRD為字數(shù)據(jù): AX← (DX) (AX)247。 (OPRD) 商 DX← (DX) (AX)247。 (OPRD) 余數(shù) ( 2) IDIV帶符號數(shù)除法指令 指令格式: IDIV OPRD 指令操作:與 DIV指令相同 , 但被除數(shù) 、 除數(shù) 、 商 、 余數(shù)全部均為帶符號數(shù) , 且余數(shù)的符號位同被除數(shù) 。 即IDIV執(zhí)行后 , CF、 OF、 AF、 PF、 ZF、 SF不確定 。 用 IDIV指令時 , 如果是一個雙字除以一個字 , 則商的范圍為- 32768~ 32767;如果是一個字除以一個字節(jié) , 則商的范圍為- 128~ 127。 運算結(jié)果超出了表示范圍 , 那么會作為除數(shù)為 0的情況來處理 , 即產(chǎn)生 0號中斷 。 例如:在存儲器中有 X和 Y兩個單元 , 存有無符號數(shù) ,現(xiàn)要求完成 X/Y, 將商存入 Z單元 。 執(zhí)行的指令如下: MOV AL, X MOV AH, 0 DIV Y MOV Z, AL ( 3) CBW字節(jié)轉(zhuǎn)換為字指令 指令格式: CBW 指令功能: AL中的符號位擴展到 AH中 。 若 AL中的D7=0, 則 ( AH) =00H;若 AL的 D7=1, 則 ( AH)=FFH。 ( 4) CWD字轉(zhuǎn)換為雙字指令 指令格式: CWD 指令功能: AX中的符號位擴展到 DX中 。 若 AX中的D15=0, 則 ( DX) =0000H;若 AX的 D15=1, 則 ( DX)=FFFFH。 5. BCD碼調(diào)整指令 在計算機中 , 可用 4位二進制碼來表示一個十進制碼 ,這種代碼叫 BCD碼 。 當然 BCD碼只有 0~ 9共 10種編碼 。 BCD碼有兩類:一類叫壓縮的 BCD碼 , 所謂壓縮 , 就是用 1個字節(jié)表示 2位 BCD碼;另一類叫非壓縮的 BCD碼 ,用這類代碼時 , 1個字節(jié)只用低 4位來表示 BCD碼 , 高 4位為 0。 ( 1) AAA非壓縮十進制數(shù)加法調(diào)整指令 指令格式: AAA 指令功能: AL← 把 AL中的和調(diào)整為非組合的 BCD碼格式 。 AH← ( AH)+調(diào)整產(chǎn)生的進位值。 調(diào)整的步驟如下: ① 如 AL寄存器的低 4位在 0~ 9之間 , 且 AF=0, 則跳過第 ②步 , 執(zhí)行第 ③ 步; ② 如 AL寄存器的低 4位為十六進制數(shù)的 A~ F或 AF=1, 則 AL中的內(nèi)容加 6, AH中內(nèi)容加 1, 并將 AF置 1; ③ 清除 AL寄存器的高 4位; ④ AF位的值送 CF位 。 例如: ADD AL, BL AAA 指令執(zhí)行前 AX=0535H, BL=39H, 可見 AL和 BL中的內(nèi)容分別為 5和 9的 ASCⅡ 碼 。 第一條指令執(zhí)行后 , AL=6EH, AF=0;第二條指令進行 BCD碼調(diào)整的結(jié)果使 AX=0604H, AF=1, CF=1。 ( 2) AAS非壓縮十進制數(shù)減法調(diào)整指令 指令格式: AAS 指令功能: AL← 把 AL中的差調(diào)整為非壓縮的 BCD碼格式 。 AH← ( AH) -調(diào)整產(chǎn)生的借位值 。 這條指令主要用于 SUB或 SBB之后,減法指令必須把兩個非壓縮的 BCD碼相減,并把結(jié)果存放在 AL寄存器中。 ( 3) AAM乘法的 BCD碼調(diào)整指令 指令格式: AAM 指令功能: AX← 把 AL中的積調(diào)整為非壓縮的 BCD碼格式 。 這條指令之前必須執(zhí)行 MUL指令把兩個非組合的 BCD碼相乘 ( 此時要求其高 4位為 0) , 結(jié)果放在 AL中 。 本指令的調(diào)整方法是:把 AL寄存器的內(nèi)容除以 0AH, 商放在 AH中 , 余數(shù)保存在 AL中 。 本指令根據(jù) AL寄存器的內(nèi)容設(shè)置條件標志 SF、 ZF、 PF, 但 OF、 CF、 AF位無定義 。 ( 4) AAD除法的 BCD碼調(diào)整指令 對 BCD碼進行除法運算時 , 也要求除數(shù)和被除數(shù)都用非壓縮的 BCD碼形式來表示 , 這是與對 BCD碼乘法的要求類似的地方 。 這里要特別注意一點 , 對 BCD碼除法運算的調(diào)整是在進行除法之前 , 通過對除數(shù)和被除數(shù)進行調(diào)整來實現(xiàn)的 。 調(diào)整操作如下: AL← 10 AH+ AL AH← 0 例如:一個數(shù)據(jù)為 65, 用非壓縮的 BCD碼表示 , 則 AH中為00000110, AL中為 00000101, 調(diào)整執(zhí)行 AAD指令 , 這條指令將 AH中的內(nèi)容乘以 10, 再加上 AL中的內(nèi)容 , 這樣得到 AL的結(jié)果為 41H。 AH為 0。 這條指令根據(jù) AL寄存器的結(jié)果設(shè)置 SF、 ZF和 PF, OF、 CF和 AF無定義。 1. 邏輯運算指令 8086邏輯運算指令包括 AND( 與 ) 、 OR( 或 ) 、 NOT( 非 ) 、 XOR( 異或 ) 指令和 TEST( 測試 ) 指令 。 ( 1) NOT邏輯求反指令 指令格式: NOT OPRD 指令功能: OPRD←OPRD 該指令對操作數(shù)進行求反操作 , 然后將結(jié)果送回 。 操作數(shù)可以是寄存器或存貯器的內(nèi) 容 。 該指令對標志位不產(chǎn)生影響 。 例如: MOV AL, 8FH NOT AL 兩條指令執(zhí)行后 AL=70H。 ( 2) AND 邏輯 “ 與 ” 指令 指令格式: AND OPRDl, OPRD2 指令功能: OPRD1← ( OPRD1) ∧ ( OPRD2) 該指令對兩個操作數(shù)進行按位相 “ 與 ” 的邏輯運算 。 即只有參加相與的兩位全為 “ 1”時 , 相 “ 與 ”結(jié)果才為 “ 1”, 否則相 “ 與 ” 結(jié)果為 “ 0”。 相 “ 與 ”結(jié)果送回目的操作數(shù) 。 AND指令可以進行字節(jié)操作 , 也可以進行字操作 。 目的操作數(shù) OPRDl:可以是累加器 , 也可以是通用寄存器 , 也可以是存儲器 。 源操作數(shù) OPRD2:可以是立即數(shù)、寄存器,也可以是存儲器。 AND AL, 0FH AND AL, 0CH AND AX, BX AND AX, DATA AND DX, BUFFER[SI+BX] AND DATA, 00FFH AND BLOCK[BP+DI], DX 某一個操作數(shù) , 如果自己與自己相 “ 與 ” , 操作數(shù)不變 ,但可以使進位標志位 CF清 0。 該指令執(zhí)行以后 , 標志位 CF=0, OF=0。 標志位 PF、 SF、ZF反映操作的結(jié)果 , 而標志位 AF未定義 。 ( 3) TEST測試指令 指令格式: TEST OPRD, im; im為立即數(shù) 指令功能: OPRD1← ( OPRD1) ∧ im 該指令的操作功能與 AND指令相同 , 其結(jié)果將反映在標志位上 , 但結(jié)果不送回 。 利用該指令 , 可以在不改變原有操作數(shù)的情況下 , 用來檢測某一位或某幾位是 “ 0”不是 “ 1”。 編程時作為條件轉(zhuǎn)移指令的先行指令 。 例如:若要檢測 AL中的最高位是否為 1, 且為 1時則轉(zhuǎn)移 。 在這種情況下可以用如下指令: TEST AL, 80H JNZ THERE ┇ THERE: MOV BL, 05H ( 4) OR 邏輯 “ 或 ” 指令 指令格式: OR OPRDl, OPRD2 指令功能: OPRD1← ( OPRD1) ∨ ( OPRD2) 該指令對兩個操作數(shù)進行按位相 “ 或 ” 的邏輯運算 。 即只要參加相 “ 或 ” 的兩位中任一位為 “ 1”時 , 相 “ 或 ” 結(jié)果為 “ 1”, 如果兩位都為 0時 , 其結(jié)果才為 0。 OR指令可以進行字節(jié)操作 , 也可以進行字操作 。 目的操作數(shù) OPRDl:可以是累加器 、 通用寄存器 、 也可 以是存儲器 。 源操作數(shù) OPRD2:可以是立即數(shù)、寄存器,也可以是 存儲器。 例如: OR AL, 80H OR AX, 05FFH OR BX, SI OR BX, DATA OR BUFFER[BX], SI OR BUFFER[BX+SI], 8000H ( 5) XOR邏輯 “ 異或 ” 指令 指令格式: XOR OPRDl, OPRD2 指令功能: OPRD1← ( OPRD1) ⊕ ( OPRD2) 該指令對兩個操作數(shù)進行按位相 “ 異或 ” 的邏輯運算 。 即只有參加相 “ 異或 ” 的兩位值不同時 , 其結(jié)果為 “ 1”;否則就為 0。 XOR指令可以進行字節(jié)操作 , 也可以進行字操作 。 目的操作數(shù) OPRDl:可以是累加器 、 通用寄存器 , 也可以是存儲器 。 源操作數(shù) OPRD2:可以是立即數(shù) 、 寄存器 , 也可以是存儲器 。 例如: XOR AL, 0FH XOR AX, BX XOR CX, [SI+ 4] XOR 10H[BX], CX XOR [BX+SI+ 5], AX 例如: XOR AX, AX
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1