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

正文內容

第二章80x86匯編語言程序設計-資料下載頁

2024-09-28 14:17本頁面

【導讀】操作碼--應包含操作類型和操作數類型;寄存器、存儲器、I/O接口,指令和堆棧。從0編址的寄存器空間、存儲器空間、I/O空間;②指令中,堆棧不用地址表示,通過操作碼表示。說明:與比例有關的尋址方式在80386及以后CPU中才出現;I/O空間和存儲器的對應尋址方式表示形式不同。有效地址—基于段的地址;取指操作和相對IP尋址的訪存操作—代碼段CS,除堆棧和串處理的除目的串外的訪存操作—數據段DS??墒褂枚纬角熬Y方式指明所訪問數據所在的段。段超越前綴種類:CS:、DS:、SS:、ES:、FS:、GS:。壓棧/出棧指令的目的/源段必須用SS段;與程序中指令有關的操作必須用CS段。的內容送AL,BUF以預先定義地址。若BUF=300H,則與上例一致。符號地址,與指令的地址標號不同。

  

【正文】 ( 3) AAM 非壓縮 BCD碼 乘 調整指令 格式: AAM 操作: 對兩個非壓縮 BCD碼數 相乘的結果 進行調整。 說明: 1) 隱含的源、目的操作數分別是 AL和 AX; 2)該指令僅 對 SF、 ZF和 PF標志有影響 ; 3)該指令一般緊跟在 MUL指令之后。 AAM指令調整算法: 將 AL除以 0AH,商放到 AH中,余數放到 AL中; 根據調整后的 AL設置 SF、 ZF、 PF。 71 ( 4) AAD 非壓縮 BCD碼 除 調整指令 格式: AAD 操作: 將非壓縮 BCD碼 數 調整為二進制數。 說明: 1) 隱含的源、目的操作數均是 AX; 2)該指令僅 對 SF、 ZF和 PF標志有影響 ; 3)該指令應放在 DIV指令 之前 。 AAD指令調整算法: AL←10 AH+AL AH←0 根據調整后的 AL設置 SF、 ZF、 PF 應用: 可用于將非壓縮 BCD碼數轉換成二進制數。 72 ( 5) DAA 壓縮 BCD碼 加 調整指令 格式: DAA 操作: 對兩個壓縮 BCD碼數 相加的結果 進行調整。 說明: 1) 隱含的源、目的操作數均是 AL; 2)該指令 對 AF、 CF、 PF、 SF和 ZF標志有影響 ; 3)該指令一般緊跟在 ADD指令之后。 DAA指令調整算法: 如果 (ALamp。0FH)9 或 (AF)=1 //個位和 10或個位和 16 則 AL←(AL) +6 AF←1 // 表示個位和有進位 如果 AL9FH 或 (CF)=1 //十位和 10或十位和 16 則 AL←(AL) +60H //第一版教材 P69有錯誤! CF←1 // 表示十位和有進位 73 ( 6) DAS 壓縮 BCD碼 減 調整指令 格式: DAS 操作: 對兩個壓縮 BCD碼數 相減的結果 進行調整。 說明: 1) 隱含的源、目的操作數均是 AL; 2)該指令 對 AF、 CF、 PF、 SF和 ZF標志有影響 ; 3)該指令一般緊跟在 SUB指令之后。 DAS指令調整算法: 如果 (ALamp。0FH)9 或 (AF)=1 //個位差 0或有借位 則 AL←(AL) 6 AF←1 // 表示個位差有借位 如果 AL9FH 或 (CF)=1 //十位差 0或有借位 則 AL←(AL) 60H CF←1 // 表示十位差有借位 74 DAA、 DAS指令示例: A~C處是 4位壓縮 BCD碼數,計算 AB+C,存入 C A B C 76H 35H … 12H 46H … 64H 02H … MOV AL, A SUB AL, B ;計算 AB的低兩位 DAS ;調整低兩位差 (36H,CF=1) MOV CL, AL MOV AL, A+1 SBB AL, B+1 ;計算 AB的高兩位 DAS ;調整高兩位差 (10H,CF=0) MOV CH, AL MOV AL, C ADD AL, CL ;計算 (AB)的低兩位與 C的低兩位的和 DAA ;調整底兩位和 (00H,CF=1) MOV C, AL MOV AL, C+1 ADC AL, CH ;計算 (AB)的高兩位與 C的高兩位的和 DAA ;調整高兩位和 (13H,CF=0) MOV C+1, AL 75 三、邏輯運算和移位類指令 邏輯運算類指令 有邏輯非、邏輯與、邏輯或、邏輯異或、測試指令。 ( 1) NOT 邏輯非指令 格式: NOT OPRD 操作: OPRD←(OPRD) 說明: 1) OPRD可為通用寄存器、存儲器操作數; 2)可進行 8位或 16位運算,根據 OPRD數據類型決定; 3)該指令不影響 FLAG的標志位。 示例: MOV AL, 52H ; 0101 0010 NOT AL ;執(zhí)行后 1010 1101 76 ( 2) AND/OR/XOR 邏輯與 /或 /異或指令 格式: AND DST, SRC OR DST, SRC XOR DST, SRC 操作: DST←(DST)amp。(SRC) amp。表示按位“與”運算 DST←(DST)|(SRC) |表示按位“或”運算 DST←(DST)^(SRC) ^表示按位“異或”運算 說明: 1) DST、 SRC可為通用寄存器、存儲器操作數, SRC還可為立即數操作數, DST和 SRC不可同時為存儲器操作數; 2) DST、 SRC數據類型必須一致,立即數可向上擴展; 3)可進行 8位或 16位運算,根據 DST數據類型決定; 4)該指令影響 PF、 SF、 ZF標志位,置 CF=0、 OF=0。 77 AND/OR/XOR指令示例: MOV AL, 32H AND AL, OFH ;屏蔽某些位,或忽略高位 AND AX, AX ;值不變,使 CF=0 OR AL, 30H ;置位某些位,或高位加某個值 XOR AL, 00H ;值不變,使 CF=0 XOR AL, 0FH ;部分位按位取反 XOR AL, AL ;值置為 0,并清除所有所有標志位 思考: 如何實現對某些位的置位和復位? 使寄存器值為零有哪些方法?哪種方案最好? 如何清除某些標志位? 78 ( 3) TEST 測試指令 格式: TEST OPRD1, OPRD2 操作: (OPRD1)amp。(OPRD2),結果不送給任何操作數 說明: 1)該指令無目的操作數,即不改變任何操作數值; 2)所有限制和對標志位的影響均與 AND指令相同; 3)該指令僅改變 FLAG標志位,常用作轉移條件。 轉 62頁 TEST指令示例: IN AL, 42H TEST AL, O1H ;測試 bit0是否為 1 JNZ SEND ; bit0=1(ZF≠1) 時轉 SEND處執(zhí)行 思考: TEST指令與 CMP指令作為轉移條件的應用范圍有何不同? 79 邏輯移位類指令 ( 1)指令種類 移位指令: SHL— 邏輯左移 SHR— 邏輯右移 SAL— 算術左移 SAR— 算術右移 循環(huán)移位指令: ROL— 循環(huán)左移 ROR— 循環(huán)右移 RCL— 帶進位循環(huán)左移 RCR— 帶進位循環(huán)右移 80 ( 2)指令功能 移位指令: 邏輯左移 SHL 或算術左移 SAL CF D7 D0 邏輯右移 SHR CF D7 D0 0 0 算術右移 SAR CF D7 D0 循環(huán)移位指令: 循環(huán)左移 ROL CF D7 D0 帶進位循環(huán)左移 RCL CF D7 D0 循環(huán)右移 ROR CF D7 D0 帶進位循環(huán)右移 RCR CF D7 D0 81 ( 3)指令格式 格式: OP DST, CNT 操作: 對 DST,按 OP的移動規(guī)則移動 CNT指定位數 說明: 1) DST可為寄存器、存儲器操作數; 2) CNT可為 立即數 (為 1時 )、 寄存器 (只能為 CL)操作數,8086以后機型, CNT為立即數時值域為 1~31; 3)可進行 8/16/32位移位操作,由 DST位數決定, DST為存儲器操作數時,由定義的數據類型決定; 4)循環(huán)移位指令結果僅影響 CF和 OF標志位,其余指令結果影響 OF、 PF、 SF、 ZF、 CF標志位, 其中 CF由移入位決定, 若最后一次移位后最高位變化時則 OF=1, SF、 ZF、 PF根據移位后的結果設置。 82 ( 4)指令示例 示例 1: MOV CL, 5 ; 若 (AL)=0110 0100 (64H=100) SAR AL, CL ;執(zhí)行后 (AL)=0000 0011 (03H=3) SAL AL, CL ;執(zhí)行后 (AL)=0110 0000 (60H=96) ;邏輯 /算術左移相當于無 /有符號數乘以 2N ;邏輯 /算術右移相當于無 /有符號數除以 2N 示例 2: 分析下列指令序列的功能 MOV CL, 4 SHL DX, CL MOV BL, AH SHL AX, CL SHR BL, CL OR DL, BL AX DX BL 4 4 4 功能:雙字 DX:AX左移 4位 (即雙字乘以 4) 83 示例 3: 將無符號字節(jié)變量 Y乘以 10, 積放在 AX中。 方法一 — 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’ 轉換成 AL中壓縮 BCD碼96。 MOV CL, 4 SHL AH, CL ; 39H→90H AND AL, 0FH ; 36H→06H OR AL, AH 84 四、控制轉移類指令 指令種類: 無條件轉移 JMP、條件轉移 Jx、循環(huán) LOOP、子程序調用 CALL/返回 RET、中斷 INT/中斷返回 IRET。 轉移地址: 為轉移目標處代碼地址 (段地址 :偏移地址 )。 *段地址 不一定是當前 CS內容; *偏移地址 有 EA和相對 IP的位移量兩種形式。 轉移地址的尋址方式種類: 尋址方式 目標段地址 目標段內偏移地址 段內 直接短轉移 當前段地址 (當前 CS) 相對 IP位移量 (8/16位位移量 ) 直接轉移 間接轉移 轉移處 EA (16位 EA) 段間 直接轉移 轉移處段地址 (非當前 CS) 間接轉移 說明:常規(guī)指令與控制轉移指令的相對尋址所用段 REG、基址 REG不同 85 轉移地址尋址方式格式及效果表: 段內轉移 段間轉移 地址格式 尋址效果 地址格式 尋址效果
點擊復制文檔內容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1