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

正文內(nèi)容

第二章80x86匯編語言程序設(shè)計(jì)-在線瀏覽

2024-12-01 14:17本頁面
  

【正文】 基址變址尋址 操作數(shù)的有效地址由指令所指定的基址 REG與變址REG的內(nèi)容相加而成,即: EA=(基址 REG)+(變址 REG)。 14 基址變址相對(duì)尋址 操作數(shù)的有效地址為相對(duì)于指令所指定的基址 REG與變址 REG的內(nèi)容相加的地址的偏移地址, 即: EA=(基址 REG)+(變址 REG)+位移量。 示例: MOV AX, 34H[BX][DI] (亦可表示為 MOV AX,34H[BX+DI]) 若 (DS)=2020H, (BX)=1000H, (DI)=100H 則 PA=(DS)*10H+(BX)+(DI)+34H=21134H 應(yīng)用: 適合于對(duì)多維數(shù)組等復(fù)雜結(jié)構(gòu)元素的訪問。 寄存器的使用限制 — 與 基址變址尋址方式中 變址 REG限制 相同。 16 基址比例變址尋址 操作數(shù)的有效地址為指令所指定的變址 REG內(nèi)容和比例因子相乘后與基址 REG內(nèi)容相加的地址, 即: EA=(基址 REG)+(變址 REG)*比例因子 。 示例: MOV AX, [EBX+ESI*8] 應(yīng)用: 適合于對(duì)結(jié)構(gòu)數(shù)組等復(fù)雜結(jié)構(gòu)元素的訪問。 寄存器的使用限制 — 與 基址變址尋址方式相同 。 18 各種尋址方式比較 尋址方式 物理地址 /操作數(shù) 立即尋址 操作數(shù) =(地址碼字段 ) 寄存器尋址 LA=寄存器號(hào),操作數(shù) =(寄存器 ) 直接尋址 LA=(SR)*10H+A 三個(gè)組成部分逐步增加 寄存器間接尋址 LA=(SR)*10H+(B或 I) 寄存器相對(duì)尋址 LA=(SR)*10H+(B或 I)+A 基址變址尋址 LA=(SR)*10H+(B)+(I) 基址變址相對(duì)尋址 LA=(SR)*10H+(B)+(I)+A 比例 變址尋址 LA=(SR)*10H+ (I)*S+A 基址 比例 變址尋址 LA=(SR)*10H+(B)+(I)*S 相對(duì)基址 比例 變址尋址 LA=(SR)*10H+(B)+(I)*S+A 注:① (X)— X的內(nèi)容; SR— 段 REG; A— 位移量; B— 基址 REG I— 變址 REG; S— 比例因子 ; LA— 線性地址 ②采用 32位寄存器時(shí), B、 I基本可為任意通用寄存器 19 第二節(jié) 80x86的指令系統(tǒng) 指令系統(tǒng)概況: 指令系統(tǒng) — {指令 i}, 1≤i≤N ; 指令格式 — 格式定義: [前綴 ]操作碼 {[操作數(shù) ][,操作數(shù) ]} 操作數(shù)類型: 整數(shù) (長度 /符號(hào) )、浮點(diǎn)數(shù)、指針、位域數(shù)、串?dāng)?shù)據(jù)、 SIMD數(shù)據(jù)、 BCD/壓縮 BCD數(shù)據(jù) 特性: 定長 /變長、尋址方式種類及其表示 指令表示形式: 二進(jìn)制格式 — 通過二進(jìn)制編碼串描述具體指令; ☆匯編語言格式 — 通過助記符形式描述具體指令。注釋 ] 說明 ① 標(biāo)號(hào) 又稱地址標(biāo)號(hào),表示 指令的地址 (符號(hào)地址 ) ② 80x86目的操作數(shù)在前 ,源操作數(shù)在后 ③操作數(shù)可用立即數(shù)、地址碼形式表示 80x86指令系統(tǒng)指令類型: ⑴數(shù)據(jù)傳送類指令 ⑷控制轉(zhuǎn)移類指令 ⑵算術(shù)運(yùn)算類指令 ⑸串操作類指令 ⑶邏輯運(yùn)算與移位類指令 ⑹處理器控制類指令 21 一、數(shù)據(jù)傳送類指令 包含通用數(shù)據(jù)傳送、地址傳送、標(biāo)志傳送、輸入輸出、類型轉(zhuǎn)換 5種子類型的指令。注意尋址方式中 REG PUSH 1234H PUSH 87654321H 30 ( 4) POP 出棧指令 格式: POP DST 16位操作: DST←((SP)+1,(SP)) SP←(SP)+2 32位操作: DST←((ESP)+3,(ESP)+2,(ESP)+1,(ESP)) ESP←(ESP)+4 說明: 1) DST可為寄存器、存儲(chǔ)器操作數(shù) 2) DST必須為 16/32位 3)該指令不影響任何狀態(tài)標(biāo)志位 31 示例 1: POP AX POP DAT[BX][SI] POP DX 示例 2: POP AX 低地址 SP 2502H 執(zhí)行前 6FH 43H 2501H 2500H 28H 33H 2503H AX 21 3D 出棧方向 低地址 SP 2502H 執(zhí)行后 6FH 43H 2501H 2500H 28H 33H 2503H AX 6F 43 32 ( 5) PUSHA/PUSHAD 所有寄存器壓棧指令 格式: PUSHA PUSHAD 16位操作: ① 16位通用寄存器 AX、 CX、 DX、 BX、 SP、BP、 SI、 DI的內(nèi)容按順序壓棧 ② SP←(SP) 16 32位操作: ① 32位通用寄存器 EAX、 ECX、 EDX、 EBX、ESP、 EBP、 ESI、 EDI的內(nèi)容按順序壓棧 ② ESP←(ESP) 32 說明: 1)壓棧時(shí)的 SP和 ESP的內(nèi)容為指令執(zhí)行前的內(nèi)容 2)該指令不影響任何狀態(tài)標(biāo)志位 33 ( 6) POPA/POPAD 所有寄存器出棧指令 格式: POPA POPAD 16位操作: ① 16位通用寄存器 DI、 SI、 BP、 SP、 BX、DX、 CX、 AX的內(nèi)容按順序出棧 ② SP←(SP)+16 32位操作: ① 32位通用寄存器 EDI、 ESI、 EBP、 ESP、EBX、 EDX、 ECX、 EAX的內(nèi)容按順序出棧 ② ESP←(ESP)+32 說明: 1)指令執(zhí)行后 SP或 ESP的內(nèi)容與棧中彈出的 SP或 ESP的內(nèi)容無關(guān) 2)該指令不影響任何狀態(tài)標(biāo)志位 34 ( 7) XCHG 交換指令 格式: XCHG OPER1, OPER2 操作 : (OPER1)←→(OPER2) 說明: 1) OPER1和 OPER2可為寄存器、存儲(chǔ)器操作數(shù),但絕不允許為段寄存器,且不允許同時(shí)為存儲(chǔ)器操作數(shù) 2) OPER1和 OPER2數(shù)據(jù)長度必須相同 3)該指令不影響任何狀態(tài)標(biāo)志位 示例: XCHG EAX, EBX ;寄存器間交換 XCHG BX, [BP+DI] ;寄存器與存儲(chǔ)器間交換 XCHG DS, EX ;不合法 XCHG [SI], [DI] ;不合法 35 ( 8) XLAT 查表指令 格式: XLAT TABLE 或 XLAT 操作 : AL←((BX)+(AL)) 或 AL←((EBX)+(AL)) 說明: 1)操作前必須先將表首址 (TABLE)送給 BX,再將目標(biāo)項(xiàng)與距表頭的偏移量送給 AL 2)該指令不影響任何狀態(tài)標(biāo)志位 示例: LEA BX,TABLE ; 表首址給 BX MOV AL,4 ; 偏移量給 AL XLAT 43H 42H +1 +2 +3 +4 +5 TABLE 45H 44H AL 44H 41H 40H 36 地址傳送指令 LEA (load effective address) 有效地址送寄存器 LDS (load DS with pointer) 地址指針?biāo)图拇嫫骱?DS LES (load ES with pointer) 地址 指針?biāo)图拇嫫骱?ES LFS (load FS with pointer) 地址 指針?biāo)图拇嫫骱?FS LGS (load GS with pointer) 地址 指針?biāo)图拇嫫骱?GS LSS (load SS with pointer) 地址 指針?biāo)图拇嫫骱?SS LFS、 LGS、 LSS非 8086指令。 41 ( 2) SAHF 存 FLAG標(biāo)志寄存器指令 格式: SAHF 操作: FLAG7~0←(AH) 將 AH的內(nèi)容存到 FLAG標(biāo)志寄存器的低 8位中。 ( 1) LAHF 取 FLAG標(biāo)志寄存器指令 格式: LAHF 操作: AH←(FLAG) 7~0 將 FLAG標(biāo)志寄存器的低 8位送到 AH中。 42 ( 4) POPF/POPFD FLAG標(biāo)志寄存器出棧指令 格式: POPF和 POPFD 操作: FLAG←((SP)+1,(SP)) SP←(SP)+2 和 EFLAG←((ESP)+3,(ESP)+2,(ESP)+1,(ESP)) ESP←(ESP)+4 ( 3) PUSHF/PUSHFD FLAG標(biāo)志寄存器進(jìn)棧指令 格式: PUSHF和 PUSHFD 操作: SP←(SP) 2 ((SP)+1,(SP))←(FLAG) 和 ESP←(ESP) 4 ((ESP)+3,(ESP)+2,(ESP)+1,(ESP)) ←(EFLAG) AND 0FCFFFFH 43 輸入輸出指令 IN(input) 從 I/O接口空間讀數(shù)據(jù) OUT(output) 向 I/O接口空間寫數(shù)據(jù) I/O接口空間大?。? 16根地址線、每個(gè)地址對(duì)應(yīng) 1個(gè) 8位空間; 即 64K個(gè) 8位空間 =32K個(gè) 16位空間 =16K個(gè) 32位空間。 8086不支持 32位數(shù)據(jù)傳輸。 說明 — ① 直接尋址只支持 8位的地址 (高 8位為 0); ② (寄存器 )間接尋址只能使用 DX寄存器 (16位 ); ③尋址方式格式與存儲(chǔ)器操作數(shù)的格式不同。 轉(zhuǎn)上頁 46 ( 2) OUT 向 I/O接口輸出數(shù)據(jù)指令 格式: OUT n, AL OUT n, AX 直接尋址 , n是地址常量 OUT n, EAX OUT DX, AL OUT DX, AX (寄存器 )間接尋址 OUT DX, EAX 操作: n或 (DX)←(AL) (n+1,n)或 ((DX)+1,(DX))←(AX) (n+3,?,n) 或 ((DX)+3,?,(DX))←(EAX) 說明: ①源操作數(shù)只能是 AL/AX/EAX寄存器; ②目的操作數(shù)要求參見尋址方式說明; ③寫出數(shù)據(jù)長度取決于源寄存器的位數(shù)。 ( 1) CBW 字節(jié)轉(zhuǎn)換為字指令 格式: CBW 操作: 擴(kuò)展 AL中符號(hào)位至 AH中, 將 8位數(shù)擴(kuò)展成等效的 16位數(shù)。 格式: CWDE 操作: 擴(kuò)展 AX中符號(hào)位至 EAX中 ,形成等效的 32位數(shù)。 ( 3) CDQ 雙字轉(zhuǎn)換為 4字指令 格式: CDQ 操作: 擴(kuò)展 EAX中符號(hào)位至 EDX中,形成 EDX:EAX形式的 4字?jǐn)?shù)據(jù)。 最常用指令: MOV、 IN/OUT、 LEA、 PUSH/POP、 XCHG、 CBW 51 二、算術(shù)運(yùn)算類指令 包含加法、減法、乘法、除法、十進(jìn)制調(diào)整運(yùn)算 5種子類型指令。 ⑷壓縮十進(jìn)數(shù) 一個(gè)字節(jié)存放兩位十進(jìn)數(shù)的 BCD碼。 8086運(yùn)算器 ALU對(duì)加、減法運(yùn)算的處理方式: ALU按 無符號(hào)數(shù) 進(jìn)行運(yùn)算,求得結(jié)果,設(shè)置 CF、 ZF、AF和 PF; ALU按 有符號(hào)數(shù) 方式設(shè)置 SF和 OF(OF=Cn1 + Cn)。 8086運(yùn)算器 ALU對(duì)乘、除法運(yùn)算的處理方式: 通過有 /無符號(hào)運(yùn)算指令可進(jìn)行相應(yīng)運(yùn)算。 轉(zhuǎn)上頁 55 加法指令 有 ADD、 ADC、 INC、 XADD四種, XADD非 8086指令 。 ADC指令示例: 雙字加法 設(shè)目的操作數(shù)在 DX(高位字 )和 AX、源操作數(shù)在 BX(高位字 )和CX中, (DX)=0418H,
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1