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

正文內(nèi)容

第二章80x86匯編語言程序設(shè)計(jì)(參考版)

2024-10-02 14:17本頁面
  

【正文】 轉(zhuǎn)移地址的尋址方式種類: 尋址方式 目標(biāo)段地址 目標(biāo)段內(nèi)偏移地址 段內(nèi) 直接短轉(zhuǎn)移 當(dāng)前段地址 (當(dāng)前 CS) 相對(duì) IP位移量 (8/16位位移量 ) 直接轉(zhuǎn)移 間接轉(zhuǎn)移 轉(zhuǎn)移處 EA (16位 EA) 段間 直接轉(zhuǎn)移 轉(zhuǎn)移處段地址 (非當(dāng)前 CS) 間接轉(zhuǎn)移 說明:常規(guī)指令與控制轉(zhuǎn)移指令的相對(duì)尋址所用段 REG、基址 REG不同 85 轉(zhuǎn)移地址尋址方式格式及效果表: 段內(nèi)轉(zhuǎn)移 段間轉(zhuǎn)移 地址格式 尋址效果 地址格式 尋址效果 直。 轉(zhuǎn)移地址: 為轉(zhuǎn)移目標(biāo)處代碼地址 (段地址 :偏移地址 )。 方法一 — MOV AL, Y ; AL←(Y) MOV CL, 10 MUL CL ; DST為 AX 方法二 — MOV AL, Y MOV AH, 0 SHL AX, 1 ; (Y)*2 MOV BX, AX SHL AX, 1 ; (Y)*4 SHL AX, 1 ; (Y)*8 ADD AX, BX ; (Y)*10 為什么要這么做? 示例 4: 將 AX中 ASCII碼 ‘ 9’ 和‘ 6’ 轉(zhuǎn)換成 AL中壓縮 BCD碼96。 轉(zhuǎn) 62頁 TEST指令示例: IN AL, 42H TEST AL, O1H ;測(cè)試 bit0是否為 1 JNZ SEND ; bit0=1(ZF≠1) 時(shí)轉(zhuǎn) SEND處執(zhí)行 思考: TEST指令與 CMP指令作為轉(zhuǎn)移條件的應(yīng)用范圍有何不同? 79 邏輯移位類指令 ( 1)指令種類 移位指令: SHL— 邏輯左移 SHR— 邏輯右移 SAL— 算術(shù)左移 SAR— 算術(shù)右移 循環(huán)移位指令: ROL— 循環(huán)左移 ROR— 循環(huán)右移 RCL— 帶進(jìn)位循環(huán)左移 RCR— 帶進(jìn)位循環(huán)右移 80 ( 2)指令功能 移位指令: 邏輯左移 SHL 或算術(shù)左移 SAL CF D7 D0 邏輯右移 SHR CF D7 D0 0 0 算術(shù)右移 SAR CF D7 D0 循環(huán)移位指令: 循環(huán)左移 ROL CF D7 D0 帶進(jìn)位循環(huán)左移 RCL CF D7 D0 循環(huán)右移 ROR CF D7 D0 帶進(jìn)位循環(huán)右移 RCR CF D7 D0 81 ( 3)指令格式 格式: OP DST, CNT 操作: 對(duì) DST,按 OP的移動(dòng)規(guī)則移動(dòng) CNT指定位數(shù) 說明: 1) DST可為寄存器、存儲(chǔ)器操作數(shù); 2) CNT可為 立即數(shù) (為 1時(shí) )、 寄存器 (只能為 CL)操作數(shù),8086以后機(jī)型, CNT為立即數(shù)時(shí)值域?yàn)?1~31; 3)可進(jìn)行 8/16/32位移位操作,由 DST位數(shù)決定, DST為存儲(chǔ)器操作數(shù)時(shí),由定義的數(shù)據(jù)類型決定; 4)循環(huán)移位指令結(jié)果僅影響 CF和 OF標(biāo)志位,其余指令結(jié)果影響 OF、 PF、 SF、 ZF、 CF標(biāo)志位, 其中 CF由移入位決定, 若最后一次移位后最高位變化時(shí)則 OF=1, SF、 ZF、 PF根據(jù)移位后的結(jié)果設(shè)置。 77 AND/OR/XOR指令示例: MOV AL, 32H AND AL, OFH ;屏蔽某些位,或忽略高位 AND AX, AX ;值不變,使 CF=0 OR AL, 30H ;置位某些位,或高位加某個(gè)值 XOR AL, 00H ;值不變,使 CF=0 XOR AL, 0FH ;部分位按位取反 XOR AL, AL ;值置為 0,并清除所有所有標(biāo)志位 思考: 如何實(shí)現(xiàn)對(duì)某些位的置位和復(fù)位? 使寄存器值為零有哪些方法?哪種方案最好? 如何清除某些標(biāo)志位? 78 ( 3) TEST 測(cè)試指令 格式: TEST OPRD1, OPRD2 操作: (OPRD1)amp。(SRC) amp。 ( 1) NOT 邏輯非指令 格式: NOT OPRD 操作: OPRD←(OPRD) 說明: 1) OPRD可為通用寄存器、存儲(chǔ)器操作數(shù); 2)可進(jìn)行 8位或 16位運(yùn)算,根據(jù) OPRD數(shù)據(jù)類型決定; 3)該指令不影響 FLAG的標(biāo)志位。 DAS指令調(diào)整算法: 如果 (ALamp。0FH)9 或 (AF)=1 //個(gè)位和 10或個(gè)位和 16 則 AL←(AL) +6 AF←1 // 表示個(gè)位和有進(jìn)位 如果 AL9FH 或 (CF)=1 //十位和 10或十位和 16 則 AL←(AL) +60H //第一版教材 P69有錯(cuò)誤! CF←1 // 表示十位和有進(jìn)位 73 ( 6) DAS 壓縮 BCD碼 減 調(diào)整指令 格式: DAS 操作: 對(duì)兩個(gè)壓縮 BCD碼數(shù) 相減的結(jié)果 進(jìn)行調(diào)整。 說明: 1) 隱含的源、目的操作數(shù)均是 AL; 2)該指令 對(duì) AF、 CF、 PF、 SF和 ZF標(biāo)志有影響 ; 3)該指令一般緊跟在 ADD指令之后。 AAD指令調(diào)整算法: AL←10 AH+AL AH←0 根據(jù)調(diào)整后的 AL設(shè)置 SF、 ZF、 PF 應(yīng)用: 可用于將非壓縮 BCD碼數(shù)轉(zhuǎn)換成二進(jìn)制數(shù)。 71 ( 4) AAD 非壓縮 BCD碼 除 調(diào)整指令 格式: AAD 操作: 將非壓縮 BCD碼 數(shù) 調(diào)整為二進(jìn)制數(shù)。 說明: 1) 隱含的源、目的操作數(shù)分別是 AL和 AX; 2)該指令僅 對(duì) SF、 ZF和 PF標(biāo)志有影響 ; 3)該指令一般緊跟在 MUL指令之后。0FH)9或 (AF)=1 則 AL←(AL) 6 AH←(AH) 1 AF←1 AL←(AL)amp。 說明: 1) 隱含的源、目的操作數(shù)分別是 AL和 AX; 2)該指令僅 對(duì) AF和 CF標(biāo)志有影響 ; 3)該指令一般緊跟在 SUB指令之后。0FH)9 或 (AF)=1 //和 10或和 16 則 AL←(AL) +6 AH←(AH) +1 //非壓縮 BCD碼進(jìn)位到 AH中 AF←1 // 表示個(gè)位和有進(jìn)位 AL←(AL)amp。 說明: 1) 隱含的源、目的操作數(shù)分別是 AL和 AX; 2)該指令僅 對(duì) AF和 CF標(biāo)志有影響 ; 3)該指令一般緊跟在 ADD指令之后。 種類: 對(duì) 非壓縮 BCD碼 有: AAA、 AAS、 AAM、 AAD指令; 對(duì) 壓縮 BCD碼 有: DAA、 DAS指令。 當(dāng)商大于商寄存器最大范圍時(shí), OF=1;否則 OF=0 ( 2) IDIV 帶符號(hào)除法指令 格式: IDIV SRC 操作和說明: 與 DIV指令相同。 (SRC)BYTE 字除法 AX(商 )、 DX(余數(shù) )←(DX)(AX) 247。 字節(jié)或字相乘后 (AH)≠0 或 (DX)≠0 ,則 CF=OF=1; 否則, CF=OF=0 ( 2) IMUL 帶符號(hào)乘法指令 格式: IMUL SRC 操作和說明: 與 MUL指令相同。 62 ( 5) CMP 比較指令 格式: CMP OPRD1, OPRD2 操作 : (OPRD1)(OPRD2),結(jié)果不送給任何操作數(shù) 說明: 1)該指令無目的操作數(shù),即不改變?nèi)魏尾僮鲾?shù)值; 2)所有限制和對(duì)標(biāo)志位的影響均與 SUB指令相同; 3)該指令僅改變 FLAG標(biāo)志位,常用作轉(zhuǎn)移條件。 ( 3) DEC 減 1指令 格式: DEC DST 操作: DST←(DST) 1 說明: 所有限制與 INC指令相同。 ( 1) SUB 減法指令 格式: SUB DST, SRC 操作: DST←(DST) (SRC) 說明: 所有限制與 ADD指令相同。 ( 1) ADD 加法指令 格式: ADD DST, SRC 操作: DST←(DST)+(SRC) 說明: 1) DST、 SRC操作數(shù)允許類型見下圖 (5種組合 ) 2)可進(jìn)行無符號(hào)和有符號(hào)的 8位或 16位運(yùn)算 3)兩個(gè)操作數(shù)類型應(yīng)一致 4)運(yùn)算結(jié)果對(duì) CF、 SF、 OF、 PF、 ZF、 AF均有影響 存儲(chǔ)器 立即數(shù) 通用寄存器 AX BX CX DX BP SP SI DI SRC DST DST←(DST)+(SRC) 56 ADD指令示例 1: ADD DX, BX 設(shè) (DX)=4652H, (BX)=0F0F0H 4652H + F0F0H 1 3742H 0100 0110 0101 0010 + 1111 0000 1111 0000 1 0011 0111 0100 0010 進(jìn)位 進(jìn)位 執(zhí)行后: (DX)=3742H 標(biāo)志位 ZF=0 結(jié)果不為 0 SF=0 結(jié)果為正 CF=1 有進(jìn)位 OF=0 不溢出 (C16 + C15=0) 57 ADD指令示例 2: ADD WORD PTR[BX], 8F76H 設(shè) (DS)=2020H, (BX)=1000H 21000H 21001H A9H 88H 執(zhí)行前 A988H + 8F76H 1 38FEH 進(jìn)位 21000H 21001H 38H FEH 執(zhí)行后 標(biāo)志位 ZF=0 結(jié)果不為 0 SF=0 結(jié)果為正 CF=1 有進(jìn)位 OF=1 溢出 (C16 + C15=1) 58 ( 2) ADC 帶進(jìn)位加法指令 格式: ADC DST, SRC 操作: DST←(DST)+(SRC)+(CF) 說明: 所有限制與 ADD指令相同。 轉(zhuǎn)上頁 回下頁 54 8000H +8000H 0000H C000H +C000H 8000H 4008H +4008H 8010H 0808H +C000H C808H CF 1 1 0 0 PF 1 1 0 0 ZF 1 0 0 0 SF 0 1 1 1 OF 1 0 1 0 加法運(yùn)算及 FLAG標(biāo)志位關(guān)系例題: 匯編語言程序員編程時(shí)的處理方法: 對(duì)有 /無符號(hào)數(shù) 手工用補(bǔ)碼 /原碼表示; 對(duì)溢出問題 — 無符號(hào)運(yùn)算時(shí)應(yīng)關(guān)心 CF, 有符號(hào)運(yùn)算時(shí)應(yīng)關(guān)心 OF。 說明: Cn和 Cn1分別為最高位和次高位進(jìn)位信號(hào),見組成原理 P51。 52 0、算術(shù)運(yùn)算中的相關(guān)標(biāo)志及處理 ( 1) 8086標(biāo)志寄存器 FLAG的標(biāo)志位 OF DF IF TF SF ZF AF PF CF D15
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1