PC硬件04章匯編語言基礎(chǔ):尋址方式.ppt
《PC硬件04章匯編語言基礎(chǔ):尋址方式.ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《PC硬件04章匯編語言基礎(chǔ):尋址方式.ppt(48頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
1 預(yù)備知識 2 CPU 寄存器 存儲(chǔ)器 8086 8088CPU的結(jié)構(gòu) 3 8086 8088CPU的結(jié)構(gòu) 內(nèi)存 外設(shè)I O DBABCB 數(shù)據(jù)總線DB地址總線AB控制總線CB 通用寄存器 指針與變址寄存器 段寄存器 標(biāo)志寄存器 4 8086 8088CPU的結(jié)構(gòu) 內(nèi)存 外設(shè)I O DBABCB 數(shù)據(jù)總線DB地址總線AB控制總線CB 通用寄存器 指針與變址寄存器 段寄存器 取指 令 譯碼 取數(shù) 數(shù)據(jù)或地址 執(zhí)行 標(biāo)志寄存器 5 CPU執(zhí)行程序的過程 從內(nèi)存取指令 執(zhí)行指令 從內(nèi)存取指令 執(zhí)行指令 從內(nèi)存取指令 執(zhí)行指令 傳統(tǒng)CPU執(zhí)行指令的過程 現(xiàn)代CPU執(zhí)行指令的過程 6 8086 8088CPU的寄存器 8086 8088的寄存器分為4種類型 1 通用寄存器 2 指針和變址寄存器 3 段寄存器 4 標(biāo)志寄存器 7 1 通用寄存器 8 2 指針與變址寄存器 9 3 段寄存器 10 4 標(biāo)志寄存器 標(biāo)志寄存器長度為16位 其中9個(gè)位有定義 溢出overflowFlag 方向directionFlag 中斷interruptFlag 符號symbol negative positive 零zero 輔助進(jìn)位AuxiliaryCarryFlag 奇偶parity 偶even 奇odd 進(jìn)位carry TF陷阱 單步trap 11 CF CarryFlag 進(jìn)位標(biāo)志兩數(shù)相加 最高位向前位的進(jìn)位 或兩數(shù)相減最高位向前位的借位舉例 有進(jìn)位CF 1 有借位CF 1 兩數(shù)相加 兩數(shù)相減 2 12 AF AuxiliaryCarryFlag輔助進(jìn)位標(biāo)志 半進(jìn)位 兩數(shù)相加 第3位向前位的進(jìn)位 或兩數(shù)相減第3位向前位的借位舉例 000010010001100000010001 000000000000000111111111 兩數(shù)相加 有輔助進(jìn)位AF 1 有輔助借位AF 1 兩數(shù)相減 2 13 PF ParityFlag 奇偶標(biāo)志算術(shù)或邏輯運(yùn)算結(jié)果的低8位中含有1的位數(shù)是偶數(shù)時(shí) PF 1 是奇數(shù)時(shí) PF 0舉例 100001011010110010011101100101111000010110000100 AND 運(yùn)算結(jié)果AL中有2個(gè) 1 偶性 結(jié)果為 PF 1 14 ZF ZeroFlag零標(biāo)志計(jì)算處理結(jié)果為0 則ZF為1 舉例 111111110000000100000000 進(jìn)位1 相加結(jié)果為0 ZF 1 相加結(jié)果有進(jìn)位 CF 1 15 SF SignFlag 符號標(biāo)志操作結(jié)果的符號位 即最高位的狀態(tài) 結(jié)果為正SF 0 為負(fù)SF 1舉例 100001011010110010011101100101111000010110000100 AND 結(jié)果為負(fù) SF 1 16 OF OverflowFlag 溢出標(biāo)志算術(shù)操作 結(jié)果超過目標(biāo)所能容納的范圍舉例 01111110 126 00000011 3 10000001 127 進(jìn)位到符號位 值被改變 溢出 CF 1 17 IFinterrupt中斷允許標(biāo)志 允許中斷否 DFdirection方向標(biāo)志 存取方向 TFtrap陷阱標(biāo)志 單步標(biāo)志 用于調(diào)試程序 標(biāo)志位在匯編語言程序設(shè)計(jì)中非常重要 必須掌握好 18 中為英文全拼或簡拼 為簡化部分 單詞中的大寫部分為簡寫所取字符 標(biāo)志名中文標(biāo)志為1時(shí)標(biāo)志為0時(shí)OF OverflowFlag 溢出標(biāo)志ov OVerflow nv NotoVerflow DF DirectionFlag 方向dn DowN up UP IF InterruptFlag 中斷ei EnableI t di DisableI t SF SignFlag 符號ng NeGativesign pl PLussign ZF ZeroFlag 零zr ZeRo nz NotZero AF AuxiliarycarryFlag 輔進(jìn)位ac AuxiliaryCarry na NotAux PF ParityFlag 奇偶校驗(yàn)pe ParityEven po ParityOdd CF CarryFlag 進(jìn)位cy CarrY nc NotCarry 19 debug中查看狀態(tài)寄存器 debug中查看狀態(tài)寄存器of 溢出 df 方向 if 中斷 sf 符號 zf 零 af 輔助進(jìn)位 pf 奇偶 cf 進(jìn)位 為1的時(shí)候ov OVerflow dn DowN ei EnableInterrupt ng NeGtive zr ZeRo ac AuxiliaryCarry pe ParityEven cy CarrY 為0的時(shí)候nv NotoVerflow up UP di DIsableinterrupt pl PLus nz NotZero na NotAuxiliary po ParityOdd nc NotCarry 20 3 2 1存儲(chǔ)器的分段結(jié)構(gòu) 21 第四章匯編語言 一 尋址方式 8086CPU 80X86CPU 22 通用寄存器 8086 Accumulator累加器Base基址寄存器Count計(jì)數(shù)寄存器Data數(shù)據(jù)寄存器Stackpointer堆棧指示器Basepointer基址指示器Sourceindex源變址器Destinationindex目的變址器 23 通用寄存器 80486 8086 Accumulator累加器Base基址Count計(jì)數(shù)Data數(shù)據(jù)Stackpointer堆棧指示器Basepointer基址指示器Sourceindex源變址器Destinationindex目的變址器 24 通用寄存器 80486 8086 Accumulator累加器Base基址Count計(jì)數(shù)Data數(shù)據(jù)Stackpointer堆棧指示器Basepointer基址指示器Sourceindex源變址器Destinationindex目的變址器 指示器和變址寄存器訪問內(nèi)存必須指出要訪問的內(nèi)存單元地址 這些地址值會(huì)增加指令的長度 把地址存放在特定的寄存器中 則指令中只要給出這些寄存器的名稱即可 它們是 變址寄存器指針寄存器SIDISPBP與DS聯(lián)用與SS聯(lián)用數(shù)據(jù)段寄存器堆棧段寄存器 數(shù)據(jù)段尋址 堆棧段尋址 25 8086是16位CPU內(nèi)部寄存器和內(nèi)部數(shù)據(jù)線 外部數(shù)據(jù)線均為16位地址線20位 可直接尋址1MB 220 1MB 如何使用16位寄存器生成20位地址呢 存儲(chǔ)器分段 使用段寄存器CS DS SS ES存儲(chǔ)段基址 將1MB空間分為若干段 每段64KB 216 64K 每段的起始地址值為1MB空間中任一個(gè)能被16整除的地址值 即每段起始地址值的低4位恒為0 二進(jìn)制數(shù) 物理地址由二部分組成 段起始地址相對段起始地址的偏移量 段可以相互重疊 故存儲(chǔ)器分段方案眾多 存儲(chǔ)器分段 段基址與內(nèi)存單元的距離偏移地址 段起始地址 物理地址 段基址左移4位 偏移量 26 8086是16位CPU內(nèi)部寄存器和內(nèi)部數(shù)據(jù)線 外部數(shù)據(jù)線均為16位地址線20位 可直接尋址1MB 220 1MB 如何使用16位寄存器生成20位地址呢 將1MB空間分為若干段 每段64KB 216 64K 使用段寄存器CS DS SS ES存儲(chǔ)段基址 存儲(chǔ)器分段 27 3 2 2實(shí)際物理地址的產(chǎn)生 舉例 CS 9482 IP 2350 實(shí)際地址為 1001010010000010001000110101000010010110101101110000 一個(gè)實(shí)際地址可以對應(yīng)多個(gè)邏輯地址 CS 9482 IP 2350 物理地址 28 存儲(chǔ)器分段 例如 某個(gè)段寄存器內(nèi)容為C018H 即表示該段物理地址從C0180H開始 該段最后一個(gè)地址為 C0180H FFFFH D017FH 64KB 29 存儲(chǔ)器分段 存儲(chǔ)器分段從8086開始 使用段寄存器 CS 0000 DS 0000 SS 0000 ES 0000 代碼段共64K字節(jié) 附加段共64K字節(jié) 堆棧段共64KB字節(jié) 數(shù)據(jù)段共64KB字節(jié) 重疊部分 存儲(chǔ)器分段可以相互重疊 1MB 段末地址 CS 0ffffH 段末地址 ES 0ffffH 64KB 64KB 30 尋址方式 8086指令集 1 在指令中2 在寄存器中3 在存儲(chǔ)器中4 I O端口操作數(shù) 立即數(shù) 寄存器操作數(shù) 存儲(chǔ)器操作數(shù) I O操作數(shù) 立即數(shù)尋址 寄存器尋址 存儲(chǔ)器尋址 I O端口尋址 第1種尋址方式 movax 1234 第2種尋址方式 movbx ax 有7種尋址方式 第3 9種 有2種尋址方式 第10 11種 立即數(shù) 4個(gè)位置 4種操作數(shù) 11種尋址方式 尋找操作數(shù)的方式叫尋址方式 尋址方式越多 CPU的功能越強(qiáng)大 31 每段起始地址值的低4位恒為0 二進(jìn)制數(shù) 物理地址由二部分組成 段起始地址相對段起始地址的偏移量 段可以相互重疊 故存儲(chǔ)器分段方案眾多 存儲(chǔ)器分段 段基址與內(nèi)存單元的距離偏移地址 物理地址 段基址左移4位 偏移量 32 尋址方式 8086指令集 操作數(shù)可能存放在4個(gè)位置 1 在指令中 立即數(shù) 立即數(shù)尋址 movax 1234 movax 1234 movbx 5bcfH 1 11種尋址方式的第1種 ax 1234ah 12al 34 bx 5bcfHbl cfHbh 5bH 立即數(shù)尋址 33 movbx ax 2 2 在寄存器中 寄存器操作數(shù) 寄存器尋址 movbx ax 11種尋址方式的第2種 movcx bx bx ax cx bx 寄存器尋址 34 moval 1000H 直接尋址 movax 1000H 3 xx 地址 內(nèi)容 地址 內(nèi)容 al 1000H al 1000H ah 1001H 段寄存器為DS 2000H 段寄存器為DS 4000H 若操作數(shù)不在DS段 須指明moval ES 1000H 直接尋址 moval ES 1000H movax ES 1000H 2 2 2 2 2 2 偏移地址 物理地址 DS 偏移地址 2000H 1001H 20000H 1001H 21001H 即DS左移4位加偏移地址 3456H 物理地址 35 moval 1000H 直接尋址 movax 1000H 3 xx 地址 內(nèi)容 地址 內(nèi)容 al 1000H al 1000H ah 1001H 段寄存器為DS 段寄存器為DS 段寄存器為DSDS xxxxHDS 1000HDS 1002H 若操作數(shù)不在DS段 須指明moval ES 1000H 直接尋址 moval ES 1000H movax ES 1000H 36 寄存器間接尋址 si di bx bp 使用的寄存器 基址尋址 bx bp 4 mov bp al bp用段寄存器SS 除BP外 均用DS mov bx al 段寄存器為DS 34 bp al 即 DS bx al 寄存器間接尋址 SS bp al 物理 10fffH 物理 21002H 37 5 變址尋址 si di mov di ax 段寄存器為DS movax 7864H movdi 1001H 64 78 DS di ax di 1001H ax 7864H 物理 11001H 若先執(zhí)行 設(shè) 若操作數(shù)不在DS段 須指明moval ES 1000H 周四34節(jié)9 27至此 38 6 基址加變址尋址 bx bp si di mov bp di al 基址寄存器 mov bx si r sr mov bx si ax 變址寄存器 bx si bx di bp si bp di bx bp si di bp bx di si bp di al bp si al bx si 1 ah 16位數(shù)據(jù)傳送 39 7 帶位移量寄存器相對間接尋址 8 nnnn BX BP 例 mov100 bp ah bp 100 ah BX BP nnnn 例 mov bx 18 cx bx 18 cx BX BP nnnn例 mov bp 87 dl bp 87 dl 帶位移基址尋址 有效地址 基地址 位移量 帶位移變址尋址 有效地址 變地址 位移量 nnnn SI DI 例 mov200 di bl di 200 bl SI DI nnnn 例 mov si 11 ch si 11 ch SI DI nnnn例 mov di 26 dx di 26 dx 9 帶位移基址加變址尋址 有效地址 基地址 變地址 位移量 nn BX BP SI DI 例 mov100 bx si cl bx si 100 cl BX BP SI DI nn 例 mov bx si 100 ch bx si 100 cl BX BP SI DI nn例 mov bx si 100 ch bx si 100 cl BX BP nnnn SI DI nnnn 三種格式功能相同 三種格式功能相同 40 字段0 字段n 字段n 1 字段2 字段1 基址寄存器 位移量 MOVAX BX 100H 變 不變 變 不變 7 帶位移基址尋址 有效地址 基地址 位移量 用于查表數(shù)據(jù)結(jié)構(gòu)尋址 100H BX 例 反之 100H固定不變 改變BX的值進(jìn)行查表 亦可 41 位移量 數(shù)據(jù)陣列尋址 查表 單元0 單元n 單元n 1 單元2 單元1 變址寄存器 MOVAX SI 100H 不變 變 變 不變 8 帶位移變址尋址 有效地址 變地址 位移量 SI 100H 編程中 變 與 不變 的內(nèi)容可以靈活掌握 100H固定不變 改變SI的值進(jìn)行查表 未尚不可 42 單元 0 0 單元 0 1 單元 0 n 位移量 二維數(shù)據(jù)尋址 基址寄存器 MOVAX BX SI 100H 單元 m n 變址寄存器 變 不變 變 9 帶位移基址加變址尋址 有效地址 基地址 變地址 位移量 BX SI 100H 43 操作數(shù)可能存放在4個(gè)位置 1 在指令中 立即數(shù) 立即數(shù)尋址 第1種尋址方式2 在寄存器中 寄存器操作數(shù) 寄存器尋址 第2種尋址方式3 在存儲(chǔ)器中 存儲(chǔ)器操作數(shù) 存儲(chǔ)器尋址 7種尋址方式 3 9 10 I O端口尋址 inal ax nn例 inal 77h al 77h outnn al ax例 out77h ax 77h ax 直接I O端口尋址 8位口 dx寄存器間接I O端口尋址 16位口 8位I O端口地址 inal ax dx例 inal dx al dx outdx al ax例 outdx al dx ax 16位I O端口地址 11 movdx 378H 共11種尋址方式 已學(xué)習(xí)了9種 4 I O端口操作數(shù) I O操作數(shù) I O端口尋址 2種尋址方式 10 11 還有2種 44 I O端口尋址 寄存器間接尋址 立即數(shù) 括號內(nèi)是地址 基址R 源 變址R 8位端口地址 16位端口地址 尋址方式復(fù)習(xí) 偏移量 1 立即數(shù)尋址MOVAX 1234H2 寄存器尋址MOVAX BX3 直接尋址MOVAX 1234H 4 基址尋址MOVAX BX 5 變址尋址MOVAX SI 6 基址加變址尋址MOVAX BX SI 7 帶位移基址尋址MOVAX BX 100H 8 帶位移變址尋址MOVAX SI 100H 9 帶位移基址加變址尋址MOVAX BX SI 100H 10 I O端口直接尋址 8位口 INAL 71HOUT70H AL11 DX寄存器I O端口間接尋址 16位口 INAL DXOUTDX AL 基址加變址R 45 作業(yè)4 指出每條指令的尋址方式及操作結(jié)果 1 MOVAX 44fdH2 MOVAX CX3 MOVAX 6657H 4 MOVAX BX 5 MOVAX SI 6 MOVAX BX SI 7 MOVAX BX 220H 8 MOVAX SI 340H 9 MOVAX BX SI 780H 10 INAL 40HOUT41H AL11 INAL DXOUTDX AL 46 授課結(jié)束 47 48 二 尋址方式 8086指令集 操作數(shù)可能存放在4個(gè)位置 1 在指令中 立即數(shù) 立即數(shù)尋址 movax 12342 在寄存器中 寄存器操作數(shù) 寄存器尋址 movbx ax3 在存儲(chǔ)器中 存儲(chǔ)器操作數(shù) 存儲(chǔ)器尋址 7種尋址方式 3 9 4 I O端口操作數(shù) I O操作數(shù) I O端口尋址 2種尋址方式 10 11 movax 1234 Movbx ax Moval 1000H Mov si ah Mov bp al Mov di ax Mov bp di al Mov bp di ax Mov100 bp bh Mov200 di bl Mov 100 bx si ch 3 4 5 6 7 9 Mov100 bx si cl 8 I O端口操作數(shù) I O端口尋址 直接尋址 8位口 outnn al axdx寄存器間接尋址 16位口 out dx al ax out77h al inal dx inal 77h outdx al 10 11 1 2 SS 存儲(chǔ)器操作數(shù)存儲(chǔ)器尋址 直接尋址 movax 1000H 寄存器間接尋址 si di bx bp 基址尋址 bx bp 變址尋址 si di 基址加變址尋址 bx bp si di mov bx si nn nnnn r sr寄存器相對尋址 帶位移 相對基址尋址nnnn BX BP 相對變址尋址nn SI DI 相對基址加變址尋址nn BX BP SI DI DS 11種尋址方式 有效地址 基地址 變地址 位移量- 1.請仔細(xì)閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- PC 硬件 04 匯編語言 基礎(chǔ) 尋址 方式
鏈接地址:http://www.820124.com/p-6398387.html