計(jì)算機(jī)硬件技術(shù)基礎(chǔ):第3章 指令系統(tǒng)1_第1頁
計(jì)算機(jī)硬件技術(shù)基礎(chǔ):第3章 指令系統(tǒng)1_第2頁
計(jì)算機(jī)硬件技術(shù)基礎(chǔ):第3章 指令系統(tǒng)1_第3頁
計(jì)算機(jī)硬件技術(shù)基礎(chǔ):第3章 指令系統(tǒng)1_第4頁
計(jì)算機(jī)硬件技術(shù)基礎(chǔ):第3章 指令系統(tǒng)1_第5頁
已閱讀5頁,還剩53頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 第第3章章尋址方式和指令系統(tǒng)尋址方式和指令系統(tǒng)3.1 基本概念基本概念 指令系統(tǒng)指令系統(tǒng)微處理器所能執(zhí)行的各種指微處理器所能執(zhí)行的各種指令的集合。令的集合。 指令類型:六類指令類型:六類 指令格式:變字節(jié)指令格式:變字節(jié) Pentium Pentium 由由1 11616個(gè)字節(jié)組成個(gè)字節(jié)組成 8086/80888086/8088由由1 16 6個(gè)字節(jié)組成個(gè)字節(jié)組成 基本尋址方式:基本尋址方式:8 8種種 數(shù)據(jù)處理能力:數(shù)據(jù)處理能力:8 8位、位、1616位位3.1 基本概念基本概念指令代碼內(nèi)部可分為:指令代碼內(nèi)部可分為: 操作碼字段操作碼字段:操作碼字段用來規(guī)定該指令要執(zhí)行的操作:操作碼字段

2、用來規(guī)定該指令要執(zhí)行的操作 尋址方式碼字段尋址方式碼字段:表示該指令的操作數(shù),應(yīng)按哪一種尋:表示該指令的操作數(shù),應(yīng)按哪一種尋址方式來獲得址方式來獲得 形式地址碼字段形式地址碼字段:表示操作數(shù)所在單元的形式地址。:表示操作數(shù)所在單元的形式地址。 通常,由尋址方式字段和形式地址字段便可確定操通常,由尋址方式字段和形式地址字段便可確定操作數(shù)的有效地址作數(shù)的有效地址EA(偏移地址偏移地址)。 位移量字段位移量字段(disp):屬于存儲(chǔ)器地址的一部分,其長度屬于存儲(chǔ)器地址的一部分,其長度為為0、1、2或或4個(gè)字節(jié)個(gè)字節(jié) 立即數(shù)字段立即數(shù)字段(data):長度為:長度為0、1、2或或4個(gè)字節(jié)。個(gè)字節(jié)。 前

3、綴字段前綴字段(Prefix):用于修改指令操作的某些屬性:用于修改指令操作的某些屬性 3.1 基本概念基本概念操作碼操作碼說明計(jì)算機(jī)要執(zhí)行哪種操作,如傳送、運(yùn)算、說明計(jì)算機(jī)要執(zhí)行哪種操作,如傳送、運(yùn)算、移位、跳轉(zhuǎn)等操作,它是指令中不可缺少的組成部移位、跳轉(zhuǎn)等操作,它是指令中不可缺少的組成部分分操作數(shù)操作數(shù)是指令執(zhí)行的參與者,即各種操作的對(duì)象是指令執(zhí)行的參與者,即各種操作的對(duì)象有些指令不需要操作數(shù),通常的指令都有一個(gè)或兩有些指令不需要操作數(shù),通常的指令都有一個(gè)或兩個(gè)操作數(shù)個(gè)操作數(shù).操作碼操作碼操作數(shù)操作數(shù)指令由操作碼和操作數(shù)兩部分組成指令由操作碼和操作數(shù)兩部分組成3.1 基本概念基本概念操作數(shù)

4、操作數(shù)2 2,常被稱為,常被稱為源操作數(shù)源操作數(shù)srcsrc,它表示參與指,它表示參與指令操作的一個(gè)對(duì)象令操作的一個(gè)對(duì)象操作數(shù)操作數(shù)1 1,成被稱為,成被稱為目的操作數(shù)目的操作數(shù)destdest,它不僅可以,它不僅可以作為指令操作的一個(gè)對(duì)象,還可以用來存放指令作為指令操作的一個(gè)對(duì)象,還可以用來存放指令操作的結(jié)果操作的結(jié)果分號(hào)后的內(nèi)容是對(duì)指令的解釋分號(hào)后的內(nèi)容是對(duì)指令的解釋 操作碼操作碼 操作數(shù)操作數(shù)1,操作數(shù)操作數(shù)2 ;注釋注釋匯編語句格式匯編語句格式3.1 基本概念基本概念如:如: HLT零地址零地址 無操作數(shù)無操作數(shù)INC BX一地址一地址單操作數(shù)單操作數(shù)ADD BX,AX二地址二地址雙操

5、作數(shù)雙操作數(shù)注意:注意:可無操作數(shù)可無操作數(shù) 不可無操作碼不可無操作碼 操作碼操作碼 操作數(shù)操作數(shù)1,操作數(shù)操作數(shù)2 ;注釋注釋3.1 基本概念基本概念每種指令的每種指令的操作碼操作碼:用一個(gè)助記符表示(指令功能的英文縮寫)用一個(gè)助記符表示(指令功能的英文縮寫)對(duì)應(yīng)著機(jī)器指令的一個(gè)或多個(gè)二進(jìn)制編碼對(duì)應(yīng)著機(jī)器指令的一個(gè)或多個(gè)二進(jìn)制編碼指令中的指令中的操作數(shù)操作數(shù):可以是一個(gè)具體的數(shù)值可以是一個(gè)具體的數(shù)值可以是存放數(shù)據(jù)的寄存器可以是存放數(shù)據(jù)的寄存器或指明數(shù)據(jù)在主存位置的存儲(chǔ)器地址或指明數(shù)據(jù)在主存位置的存儲(chǔ)器地址3.2 操作數(shù)的尋址方式操作數(shù)的尋址方式指令系統(tǒng)設(shè)計(jì)了多種操作數(shù)的來源指令系統(tǒng)設(shè)計(jì)了多種

6、操作數(shù)的來源尋找操作數(shù)的過程就是操作數(shù)的尋址尋找操作數(shù)的過程就是操作數(shù)的尋址把尋找操作數(shù)的方式叫做(操作數(shù))把尋找操作數(shù)的方式叫做(操作數(shù))尋址方式尋址方式理解操作數(shù)的尋址方式是理解指令功能的前提理解操作數(shù)的尋址方式是理解指令功能的前提操作數(shù)采取哪一種尋址方式操作數(shù)采取哪一種尋址方式一方面,會(huì)影響處理器執(zhí)行指令的速度和效率一方面,會(huì)影響處理器執(zhí)行指令的速度和效率另一方面,另一方面,對(duì)程序設(shè)計(jì)也很重要對(duì)程序設(shè)計(jì)也很重要MOV指令指令3.2 操作數(shù)的尋址方式操作數(shù)的尋址方式操作數(shù)的來源有三種可能:操作數(shù)的來源有三種可能:()() 操作數(shù)包含在指令中操作數(shù)包含在指令中 即指令的操作數(shù)字段包含操作數(shù)本

7、身。這種操作數(shù)為即指令的操作數(shù)字段包含操作數(shù)本身。這種操作數(shù)為立即數(shù)立即數(shù)。 例:例:MOV AL , 08H 這種尋址方式稱為這種尋址方式稱為立即尋址立即尋址。()操作數(shù)包含在的一個(gè)內(nèi)部寄存器中()操作數(shù)包含在的一個(gè)內(nèi)部寄存器中 例:例:INC CX指令中的操作數(shù)字段是指令中的操作數(shù)字段是C內(nèi)部寄存器的一個(gè)內(nèi)部寄存器的一個(gè)編碼編碼 (reg 名)名)。這種尋址方式稱為這種尋址方式稱為寄存器尋址寄存器尋址。 3.2 操作數(shù)的尋址方式操作數(shù)的尋址方式()操作數(shù)在內(nèi)存數(shù)據(jù)區(qū)()操作數(shù)在內(nèi)存數(shù)據(jù)區(qū) 操作數(shù)在內(nèi)存數(shù)據(jù)區(qū),操作數(shù)字段包含著此操作數(shù)在內(nèi)存數(shù)據(jù)區(qū),操作數(shù)字段包含著此操作數(shù)地址操作數(shù)地址。 (

8、段內(nèi)偏移量)(段內(nèi)偏移量) 在在8086/8088中,任何中,任何內(nèi)存地址是由兩部分組成:內(nèi)存地址是由兩部分組成: 段的基地址段的基地址:?jiǎn)卧诙蔚幕刂罚簡(jiǎn)卧诙蔚幕刂罚ù蟛糠智闆r是數(shù)據(jù)段寄存器中);(大部分情況是數(shù)據(jù)段寄存器中); 段內(nèi)偏移量段內(nèi)偏移量:此單元與段基地址的距離。:此單元與段基地址的距離。 物理地址物理地址 = =段基址段基址16+16+段內(nèi)偏移量段內(nèi)偏移量 有效地址(有效地址(Effective Address) : 段內(nèi)偏移量為適應(yīng)各種數(shù)據(jù)結(jié)構(gòu)的需要,可以有幾個(gè)部分段內(nèi)偏移量為適應(yīng)各種數(shù)據(jù)結(jié)構(gòu)的需要,可以有幾個(gè)部分組成,所以也把它稱為組成,所以也把它稱為有效地址有效

9、地址。 EA=EA=基址寄存器基址寄存器+變址寄存器變址寄存器 * *比例因子比例因子+ +偏移量偏移量 偏移地址四元素(四分量)偏移地址四元素(四分量)尋址方式不同尋址方式不同EA的構(gòu)成不同。的構(gòu)成不同。歸納歸納EA可有多種情況構(gòu)成:可有多種情況構(gòu)成: 直接尋址,寄存器間接尋址,寄存器相對(duì)尋址,直接尋址,寄存器間接尋址,寄存器相對(duì)尋址, 基址加變址尋址,相對(duì)基址加變址尋址。基址加變址尋址,相對(duì)基址加變址尋址。 尋址方式尋址方式如何尋找內(nèi)存操作數(shù)。如何尋找內(nèi)存操作數(shù)。不同尋址方式實(shí)質(zhì)上是構(gòu)成它不同尋址方式實(shí)質(zhì)上是構(gòu)成它段內(nèi)的偏移量的方法段內(nèi)的偏移量的方法不同不同。3.2.1 操作數(shù)的尋址方式操

10、作數(shù)的尋址方式1. 立即數(shù)尋址立即數(shù)尋址指令中的操作數(shù)直接存放在機(jī)器指令中的操作數(shù)直接存放在機(jī)器代碼段代碼段中,緊跟中,緊跟在操作碼之后(操作數(shù)作為指令的一部分存放在在操作碼之后(操作數(shù)作為指令的一部分存放在操作碼之后的主存單元中)操作碼之后的主存單元中)這種操作數(shù)被稱為這種操作數(shù)被稱為立即數(shù)立即數(shù)imm可以是可以是8位數(shù)值位數(shù)值i8(00HFFH)也可以是也可以是16位數(shù)值位數(shù)值i16(0000HFFFFH)常用于:給寄存器和存儲(chǔ)單元賦值,多以常量形常用于:給寄存器和存儲(chǔ)單元賦值,多以常量形式出現(xiàn)式出現(xiàn)MOV AX, 0102H;AX0102H1. 立即數(shù)尋址立即數(shù)尋址規(guī)定:規(guī)定:(1) (

11、1) 立即數(shù)只能為整數(shù)。立即數(shù)只能為整數(shù)。(2) (2) 立即數(shù)只能作為源操作數(shù),不能作為立即數(shù)只能作為源操作數(shù),不能作為目的操作數(shù)。目的操作數(shù)。例:例: MOV AL,05H指令執(zhí)行后指令執(zhí)行后: (AL)=05H例:例: MOV AX,3064H指令執(zhí)行后指令執(zhí)行后: (AX)=3064H立即尋址方式立即尋址方式.操作碼操作碼64H64H30H30H代代碼碼段段64H64H.30H30HALALAHAH指指令令.操作碼操作碼05H05H代代碼碼段段05H05H.ALAL指指令令2. 寄存器尋址寄存器尋址操作數(shù)存放在操作數(shù)存放在CPU的內(nèi)部寄存器的內(nèi)部寄存器reg中,而寄存器中,而寄存器名由

12、指令指出:名由指令指出:8位寄存器位寄存器r8:AH、AL、BH、BL、CH、CL、DH、DL16位寄存器位寄存器r16:AX、BX、CX、DX、SI、DI、BP、SP4個(gè)段寄存器個(gè)段寄存器seg:CS、DS、SS、ES寄存器名表示其內(nèi)容(操作數(shù))寄存器名表示其內(nèi)容(操作數(shù)) 這種尋址方式因?yàn)椴僮鲾?shù)在寄存器中這種尋址方式因?yàn)椴僮鲾?shù)在寄存器中不需要訪問存儲(chǔ)器不需要訪問存儲(chǔ)器, 運(yùn)算速度較高運(yùn)算速度較高。MOV AX, BX;AXBX例:例:指令執(zhí)行前指令執(zhí)行前:(AX)3064 (SS)1234 MOV SS,AX指令執(zhí)行后指令執(zhí)行后:(SS)3064H (AX)保持不變。)保持不變。 指令執(zhí)行

13、前:指令執(zhí)行前:指令執(zhí)行后指令執(zhí)行后:寄存器尋址方式寄存器尋址方式SSSSAXAX3064H3064H3064H3064H1234H1234H3064H3064H2. 寄存器尋址寄存器尋址 例:例:MOV DS, AX MOV AH, BL注意:注意: 源操作數(shù)與目的操作數(shù)應(yīng)該源操作數(shù)與目的操作數(shù)應(yīng)該位數(shù)位數(shù)相同。相同。存儲(chǔ)器尋址方式存儲(chǔ)器尋址方式操作數(shù)在主存儲(chǔ)器中,用主存地址表示操作數(shù)在主存儲(chǔ)器中,用主存地址表示 物理地址物理地址 = =段基址段基址16+16+段內(nèi)偏移量段內(nèi)偏移量程序設(shè)計(jì)時(shí),程序設(shè)計(jì)時(shí),8086/8088采用邏輯地址表示主存采用邏輯地址表示主存地址地址段地址段地址在默認(rèn)的或

14、用段超越前綴指定的在默認(rèn)的或用段超越前綴指定的段寄存器段寄存器中中指令中只需給出操作數(shù)的指令中只需給出操作數(shù)的偏移地址偏移地址(有效地址有效地址EA)8086/8088設(shè)計(jì)了多種設(shè)計(jì)了多種存儲(chǔ)器尋址方式存儲(chǔ)器尋址方式1、直接尋址方式、直接尋址方式2、寄存器間接尋址方式、寄存器間接尋址方式3、寄存器相對(duì)尋址方式(基址和變址尋址、寄存器相對(duì)尋址方式(基址和變址尋址)4、基址變址尋址方式、基址變址尋址方式5、基址變址相對(duì)尋址方式、基址變址相對(duì)尋址方式6、隱含尋址方式、隱含尋址方式 操作數(shù)操作數(shù)地址的位偏移量地址的位偏移量,直接包含在指令中直接包含在指令中, 存放在代碼段中指令操作碼之后,存放在代碼段

15、中指令操作碼之后, 但但操作數(shù)一般存放在數(shù)據(jù)段中(默認(rèn))操作數(shù)一般存放在數(shù)據(jù)段中(默認(rèn)), 必須先必須先求出操作數(shù)的物理地址求出操作數(shù)的物理地址, 然后再訪問存儲(chǔ)器才能取得操作數(shù)。然后再訪問存儲(chǔ)器才能取得操作數(shù)。 或(或(10H)物理地址物理地址 : PA16d(DS)+EA IBMPC機(jī)允許數(shù)據(jù)存放在數(shù)據(jù)段以外的其它段中。此機(jī)允許數(shù)據(jù)存放在數(shù)據(jù)段以外的其它段中。此時(shí)應(yīng)在指令中時(shí)應(yīng)在指令中指定段超越前綴(可以是指定段超越前綴(可以是CS,SS,ES)。)。3. 直接尋址直接尋址(Direct addressing)3. 直接尋址直接尋址用用中括號(hào)中括號(hào)包含有效地址,表達(dá)存儲(chǔ)單元的包含有效地址,

16、表達(dá)存儲(chǔ)單元的內(nèi)容內(nèi)容MOV AX, 2000H;AXDS:2000HMOV AX, ES: 2000H;AXES:2000HES: MOV AX, 2000H;AXES:2000H例:例:MOV AX,3100H(DS)=6000H , (63100H)=3050H 則則:(AX)=3050H又如:用符號(hào)地址代替數(shù)值地址。又如:用符號(hào)地址代替數(shù)值地址。 MOV AX,VALUE 或或 MOV AX,VALUEVALUE有效操作數(shù)單元的有效操作數(shù)單元的符號(hào)地址。符號(hào)地址。如:如:VALUE在附加段中,在附加段中, 則應(yīng)指定段超越。則應(yīng)指定段超越。 MOV AX,ES:VALUE 或或MOV A

17、X,ES:VALUE直接尋址方式直接尋址方式6000H6000H.操作碼操作碼00003131.50H50H30H30H.6 0 0 0 06 0 0 0 03 1 0 03 1 0 0+ +6 3 1 0 06 3 1 0 063100H63100H30H30H50H50HAHAHALAL代代碼碼段段數(shù)數(shù)據(jù)據(jù)段段DSDS注意:注意:(1)直接尋址方式適用于處理單個(gè)變量。)直接尋址方式適用于處理單個(gè)變量。(2)直接尋址方式)直接尋址方式隱含的段寄存器是隱含的段寄存器是 DS, 8086/8088允許段允許段跨越跨越,即即允許使用允許使用CS SS ES作為段寄存器,這作為段寄存器,這時(shí),必須在

18、指令中特別標(biāo)明。時(shí),必須在指令中特別標(biāo)明。 (3)IBM PC機(jī)中規(guī)定機(jī)中規(guī)定雙操作數(shù)指令必須有一個(gè)操作數(shù)使用寄雙操作數(shù)指令必須有一個(gè)操作數(shù)使用寄存器存器方式,這就是常常先要把一個(gè)變量送到寄存器去的原因。方式,這就是常常先要把一個(gè)變量送到寄存器去的原因。例:例:要處理某存放在存儲(chǔ)器里的變量,可以用直接尋址方式把變量要處理某存放在存儲(chǔ)器里的變量,可以用直接尋址方式把變量先取到一個(gè)寄存器中再作處理。先取到一個(gè)寄存器中再作處理。4. 寄存器間接尋址寄存器間接尋址(Register indirect addressing)操作數(shù)在存儲(chǔ)器中某單元,此單元地址操作數(shù)在存儲(chǔ)器中某單元,此單元地址(16位偏移

19、位偏移地址地址)在四個(gè)寄存器在四個(gè)寄存器 SI、DI、 BX 、 BP 之一中。之一中。又分為兩種情況:又分為兩種情況:(1) 若以若以SI、DI、BX間接尋址,間接尋址,默認(rèn)默認(rèn)操作數(shù)在操作數(shù)在數(shù)據(jù)數(shù)據(jù)段段中。中。 地址:地址:DS:(SI)/(DI)/(BX)(2) 若以寄存器若以寄存器BP間接尋址,則操作數(shù)間接尋址,則操作數(shù)默認(rèn)默認(rèn)在在堆堆棧段棧段中。中。 地址:地址:SS:(BP)可使用段超越前綴改變可使用段超越前綴改變4. 寄存器間接尋址寄存器間接尋址BX、BP基址基址SI、DI 變址變址MOV AX, BX;AXDS:BX例:例:MOV BX,DI (DS)=6000H (DI)=

20、2000H PA=62000H (62000H)=50A0H (BX)=50A0H寄存器間接尋址方式寄存器間接尋址方式 MOV BX,DI6000H6000H2000H2000HDSDSDIDI6 0 0 0 06 0 0 0 02 20 00 00 0+ +6 2 0 0 06 2 0 0 0.AOHAOH50H50H.62000H62000H50H50HA0HA0HBLBLBHBH數(shù)數(shù)據(jù)據(jù)段段若選擇若選擇BP寄存器作為間接尋址寄存器作為間接尋址 操作數(shù)在堆棧段區(qū)域中,用操作數(shù)在堆棧段區(qū)域中,用SS寄存器的內(nèi)容作為段地址。寄存器的內(nèi)容作為段地址。 操作數(shù)物理地址操作數(shù)物理地址: PA=16d

21、 (SS)+(BP)例:例: MOV BP, AX執(zhí)行前:執(zhí)行前: (SS)=1000H , (BP)=3000H , (AX)=1234H執(zhí)行后:執(zhí)行后:PA=13000H (13000H)=1234H這種尋址方法可以用于表格處理這種尋址方法可以用于表格處理。1000H1000H3000H3000HSSSSBPBP1 0 0 0 01 0 0 0 03 30 00 00 0+ +1 3 0 0 01 3 0 0 0.34H34H12H12H.13000H13000H12H12H34H34HALALAHAH堆堆棧棧段段寄存器間接尋址方式寄存器間接尋址方式 MOV BP, AX5. 寄存器相對(duì)尋

22、址寄存器相對(duì)尋址(Register relative addressing) 基址尋址和變址尋址基址尋址和變址尋址有效地址有效地址是寄存器內(nèi)容與有符號(hào)是寄存器內(nèi)容與有符號(hào)8位或位或16位位移位位移量之和,寄存器可以是量之和,寄存器可以是BX、BP或或SI、DI有效地址有效地址基址基址/變址寄存器變址寄存器+位移量位移量 BX SI 8/16BX SI 8/16 BP DI BP DI 段地址對(duì)應(yīng)段地址對(duì)應(yīng)BX/SI/DI寄存器寄存器默認(rèn)是默認(rèn)是DS,對(duì)應(yīng),對(duì)應(yīng)BP寄存器寄存器默認(rèn)是默認(rèn)是SS;可用段超越前綴改變;可用段超越前綴改變5. 寄存器相對(duì)尋址寄存器相對(duì)尋址MOV AX, SI+06H;

23、AXDS:SI+06HMOV AX, 06HSI;AXDS:SI+06H例:例: MOV AX, COUNT BP或或MOV AX, COUNT+BP或或MOV AX, COUNT+BP COUNT為為16位位移量。位位移量。指令執(zhí)行前指令執(zhí)行前: (SS)=5000H, (BP)=3000H,COUNT=2040H,(AX)=1234H指令執(zhí)行后指令執(zhí)行后:EA=5040HPA=55040H(55040H)=5548H(AX)=5548H 寄存器相對(duì)尋址方式寄存器相對(duì)尋址方式MOV AX,COUNTBPOPOPOPOP40H40H20H20H.48H48H55H55H.55H55H48H48

24、H存儲(chǔ)器存儲(chǔ)器操操作作碼碼位移量位移量COUNTCOUNT代代碼碼段段堆堆棧棧段段55040H55040H50000H50000HAHAHALAL用途:這種尋址方式同樣用于用途:這種尋址方式同樣用于表格處理表格處理。 表格首地址表格首地址COUNT 修改基址或變址寄存器來取得表格中的值。修改基址或變址寄存器來取得表格中的值。例:某數(shù)據(jù)表的首地址為例:某數(shù)據(jù)表的首地址為COUNT 欲讀取表中第欲讀取表中第10個(gè)數(shù)據(jù)個(gè)數(shù)據(jù),存放到(存放到(AL)中。中。 第第10個(gè)數(shù)據(jù)的有效地址個(gè)數(shù)據(jù)的有效地址: EA= COUNT + 9MOV SI , 09HMOV AL , SI+COUNT *直接變址尋址

25、方式也可以使用段跨越前綴直接變址尋址方式也可以使用段跨越前綴 MOV DL,ES:STRINGSI6. 基址加變址尋址基址加變址尋址(Based indexed addressing)有效地址有效地址由基址寄存器(由基址寄存器(BX或或BP)的內(nèi)容加上)的內(nèi)容加上變址寄存器(變址寄存器(SI或或DI)的內(nèi)容構(gòu)成:)的內(nèi)容構(gòu)成:有效地址有效地址BX/BPSI/DI段地址對(duì)應(yīng)段地址對(duì)應(yīng)BX基址寄存器基址寄存器默認(rèn)是默認(rèn)是DS,對(duì)應(yīng),對(duì)應(yīng)BP基基址寄存器址寄存器默認(rèn)是默認(rèn)是SS;可用段超越前綴改變;可用段超越前綴改變MOV AX, BX+SI;AXDS:BX+SIMOV AX, BXSI;AXDS:

26、BX+SI例:例: MOV AX, BXSI或或 MOV AX, BX+SI執(zhí)行指令前執(zhí)行指令前: (DS)=3200H, (BX)=0456H, (SI) =1094H (334EAH)=4567H執(zhí)行指令后執(zhí)行指令后: EA=14EAH PA=334EAH (AX)=4567H基址加變址尋址方式基址加變址尋址方式 MOV AX,BX+SI.67H67H45H45H存儲(chǔ)器存儲(chǔ)器32000H32000H334EAH334EAH45H45H67H67HALALAHAH數(shù)數(shù)據(jù)據(jù)段段.用途:這種尋址方式同樣適用于數(shù)組或表格處理。用途:這種尋址方式同樣適用于數(shù)組或表格處理。表格首地址表格首地址 基址寄

27、存器中基址寄存器中,用變址寄存器來訪問數(shù)組中的元素。用變址寄存器來訪問數(shù)組中的元素。 二個(gè)寄存器都能修改,二個(gè)寄存器都能修改,所以比直接變址方式更靈。所以比直接變址方式更靈。這種尋址方式允許段跨越。這種尋址方式允許段跨越。使用段跨越前綴格式使用段跨越前綴格式: MOV AX,ES:BXSI7. 基址加變址相對(duì)尋址基址加變址相對(duì)尋址(Relative based indexed addressing)有效地址有效地址是基址寄存器(是基址寄存器(BX/BP)、變址寄存器)、變址寄存器(SI/DI)與一個(gè))與一個(gè)8位或位或16位位移量之和:位位移量之和:有效地址有效地址BX/BPSI/DI8/16位

28、位移量位位移量段地址對(duì)應(yīng)段地址對(duì)應(yīng)BX基址寄存器基址寄存器默認(rèn)是默認(rèn)是DS,對(duì)應(yīng),對(duì)應(yīng)BP基基址寄存器址寄存器默認(rèn)是默認(rèn)是SS;可用段超越前綴改變;可用段超越前綴改變MOV AX, BX+DI+6;AXDS:BX+DI+6MOV AX, 6BX+DIMOV AX, 6BXDI例:例:MOV AX, MASKBXDIMOV AX, MASK BX+DIMOV AX,MASX+BX+DI執(zhí)行指令前執(zhí)行指令前:(DS)=3000H(BX)=1346H(DI)=0500HMASK=1234H(32A7AH)=4050H執(zhí)行指令后執(zhí)行指令后:EA=2A7AHPA=32A7AH(AX)=4050H 相對(duì)基

29、址加變址相對(duì)基址加變址MOV AX, MASK+BX+DIOPOPOPOP34H34H12H12H.50H50H40H40H存儲(chǔ)器存儲(chǔ)器30000H30000H32A7AH32A7AH40H40H50H50HALALAHAH數(shù)數(shù)據(jù)據(jù)段段操操作作碼碼位移位移量量MASKMASK代代碼碼段段用途:用途:這種尋址方式為堆棧處理提供方便:這種尋址方式為堆棧處理提供方便: (BP) 棧頂(一般棧頂(一般 BP 可指向棧頂)可指向棧頂)從棧頂?shù)綌?shù)組的首地址可以用位移量表示從棧頂?shù)綌?shù)組的首地址可以用位移量表示(MASK). 變址寄存器(變址寄存器(SI)或()或(DI)指向數(shù)組中某個(gè)元素。指向數(shù)組中某個(gè)元素

30、。8. 隱含尋址隱含尋址(Relative based indexed addressing)指令碼中不包含指明操作數(shù)地址的部分,指令碼中不包含指明操作數(shù)地址的部分,而其操作碼本身隱含地指明了操作地址,而其操作碼本身隱含地指明了操作地址,字符串操作類指令就屬于這種尋址。字符串操作類指令就屬于這種尋址。MOVSB ;DI SI小結(jié)小結(jié)1、三種類型操作數(shù)三種類型操作數(shù)2、三種類型操作數(shù)特點(diǎn)、三種類型操作數(shù)特點(diǎn) 3、8086/8088中的存儲(chǔ)器分段中的存儲(chǔ)器分段1、三種類型操作數(shù)、三種類型操作數(shù) 綜觀綜觀8086/ 8088尋址方式尋址方式,其操作數(shù)有三種類型:,其操作數(shù)有三種類型: 立即操作數(shù)、寄

31、存器操作數(shù)、存儲(chǔ)器操作數(shù)。立即操作數(shù)、寄存器操作數(shù)、存儲(chǔ)器操作數(shù)。2、三種類型操作數(shù)特點(diǎn):、三種類型操作數(shù)特點(diǎn):(1)立即操作數(shù))立即操作數(shù) 可以使用立即操作數(shù)指令有:可以使用立即操作數(shù)指令有: 數(shù)據(jù)傳送指令、算術(shù)運(yùn)算指令(乘、除運(yùn)算指令除外)、數(shù)據(jù)傳送指令、算術(shù)運(yùn)算指令(乘、除運(yùn)算指令除外)、 邏輯運(yùn)算指令等。邏輯運(yùn)算指令等。 立即數(shù)只能作為源操作數(shù),不能作為目標(biāo)操作數(shù)。立即數(shù)只能作為源操作數(shù),不能作為目標(biāo)操作數(shù)。 8位和位和16位無符號(hào)數(shù)和帶符號(hào)數(shù)的取值范圍:位無符號(hào)數(shù)和帶符號(hào)數(shù)的取值范圍:(2)寄存器操作數(shù)寄存器操作數(shù)寄存器操作數(shù)可能存放在:寄存器操作數(shù)可能存放在: 8086 /8088

32、的通用寄存器、地址指針或變址寄存器的通用寄存器、地址指針或變址寄存器以及段寄存器。以及段寄存器。8位數(shù)8位數(shù)16位數(shù)16位數(shù)無符號(hào)數(shù)無符號(hào)數(shù)00HFFH(0255)00HFFH(0255)0000H0FFFFH(065535)0000H0FFFFH(065535)帶符號(hào)數(shù)帶符號(hào)數(shù)80H7FH(-128+127)80H7FH(-128+127)8000H7FFFH(-32768+32767)8000H7FFFH(-32768+32767)通用寄存器包括通用寄存器包括4個(gè)個(gè)16位寄存器:位寄存器:AX、BX 、 CX 、 DX。用于存放字操作數(shù)。用于存放字操作數(shù)。4個(gè)個(gè)16位通用寄存器可以當(dāng)作位通

33、用寄存器可以當(dāng)作8位寄存器使用:位寄存器使用:AH 、AL、 BH 、BL、 CH、 CL、 DH 、DL存放字節(jié)操存放字節(jié)操作數(shù)。作數(shù)。通用寄存器、地址指針寄存器可以作為源操作數(shù),也可以作通用寄存器、地址指針寄存器可以作為源操作數(shù),也可以作為目標(biāo)操作數(shù)。為目標(biāo)操作數(shù)。與通用寄存器或存儲(chǔ)器傳送數(shù)據(jù)時(shí),段寄存器可以作為源操與通用寄存器或存儲(chǔ)器傳送數(shù)據(jù)時(shí),段寄存器可以作為源操作數(shù)或目標(biāo)操作數(shù)作數(shù)或目標(biāo)操作數(shù).段寄存器段寄存器DS、 ES、 SS 、CS存放當(dāng)前的段地址。存放當(dāng)前的段地址。對(duì)段寄存器對(duì)段寄存器ES 、DS 、SS進(jìn)行賦值,不能將立即數(shù)直接送進(jìn)行賦值,不能將立即數(shù)直接送段寄存器,要將立

34、即數(shù)送通用寄存器,再從通用寄存器送段段寄存器,要將立即數(shù)送通用寄存器,再從通用寄存器送段寄存器。寄存器。CS一般不用賦值。一般不用賦值。 隱含操作數(shù)隱含操作數(shù) 某些指令規(guī)定只能使用指定操作數(shù)寄存器,某些指令規(guī)定只能使用指定操作數(shù)寄存器, 從匯編形式看,似乎沒有指出操作數(shù),實(shí)際隱含某些從匯編形式看,似乎沒有指出操作數(shù),實(shí)際隱含某些特定寄存器操作數(shù)。該寄存器可能是:特定寄存器操作數(shù)。該寄存器可能是:累加器累加器 、通用寄存器、變址寄存器、某些段寄存器。、通用寄存器、變址寄存器、某些段寄存器。指令指令指令或隱含操作數(shù)寄存器指令或隱含操作數(shù)寄存器AAA,AAD,AAM.AASAAA,AAD,AAM.A

35、ASAL,AHAL,AHCBW,CWDCBW,CWDAL,AH或AX,DXAL,AH或AX,DXALALAL或AXAL或AXAL,AH或AX,DXAL,AH或AX,DXAHAHESESDSDSCLCLCX,SI,DICX,SI,DIDAA,DASDAA,DASIN,OUTIN,OUTMUL,IMUL,DIV,IDIVMUL,IMUL,DIV,IDIVLAHF,SAHFLAHF,SAHFLESLESLDSLDS移位及循環(huán)移位指令移位及循環(huán)移位指令串操作指令串操作指令A(yù)L,BXAL,BXXLATXLAT(3)、存儲(chǔ)器操作數(shù))、存儲(chǔ)器操作數(shù) 存儲(chǔ)器操作數(shù)可能存放在一個(gè)、二個(gè)、或四個(gè)存儲(chǔ)器單元中。存儲(chǔ)

36、器操作數(shù)可能存放在一個(gè)、二個(gè)、或四個(gè)存儲(chǔ)器單元中。 操作數(shù)類型分別為:字節(jié)、字、雙字。操作數(shù)類型分別為:字節(jié)、字、雙字。 存儲(chǔ)器操作數(shù)可以作為源操作數(shù),也可以作為目標(biāo)操作數(shù)。存儲(chǔ)器操作數(shù)可以作為源操作數(shù),也可以作為目標(biāo)操作數(shù)。 但不允許源操作數(shù)、目標(biāo)操作數(shù)同時(shí)為存儲(chǔ)器操作數(shù)。但不允許源操作數(shù)、目標(biāo)操作數(shù)同時(shí)為存儲(chǔ)器操作數(shù)。 存儲(chǔ)器操作數(shù)的存儲(chǔ)器操作數(shù)的有效地址有效地址EA的取得方法:的取得方法: 直接尋址直接尋址 寄存器間接尋址寄存器間接尋址 相對(duì)寄存器尋址相對(duì)寄存器尋址 基址加變址尋址基址加變址尋址 相對(duì)基址加變址尋址相對(duì)基址加變址尋址 有效地址有效地址EA基址基址變址變址位移量位移量 存儲(chǔ)

37、器操作數(shù)的物理地址存儲(chǔ)器操作數(shù)的物理地址PA的取得方法:的取得方法: 一般存儲(chǔ)器操作數(shù)指令中隱含段寄存器,有的指令允許段跨越,一般存儲(chǔ)器操作數(shù)指令中隱含段寄存器,有的指令允許段跨越, 需要在指令中標(biāo)明。需要在指令中標(biāo)明。3、8088中的存儲(chǔ)器分段中的存儲(chǔ)器分段段區(qū)域默認(rèn)狀態(tài):段區(qū)域默認(rèn)狀態(tài):可以在某一個(gè)段可以在某一個(gè)段64K字節(jié)范圍內(nèi)尋找一個(gè)內(nèi)存操作數(shù),字節(jié)范圍內(nèi)尋找一個(gè)內(nèi)存操作數(shù),以什么樣以什么樣 尋址尋址(寄存器間址、變址、與基址加變址),(寄存器間址、變址、與基址加變址),則操則操作數(shù)就在什么段區(qū)域中,在作數(shù)就在什么段區(qū)域中,在8088中有一個(gè)基本約定,只要在指中有一個(gè)基本約定,只要在指

38、令中不特別說明超越這個(gè)約定,則正常情況就按這個(gè)基本約定令中不特別說明超越這個(gè)約定,則正常情況就按這個(gè)基本約定來尋找操作數(shù),這就是所謂的來尋找操作數(shù),這就是所謂的默認(rèn)狀態(tài)默認(rèn)狀態(tài)。 段跨越:段跨越:數(shù)據(jù)操作數(shù)通常在數(shù)據(jù)段,但在程序中若需要的數(shù)據(jù)操作數(shù)通常在數(shù)據(jù)段,但在程序中若需要的話數(shù)據(jù)可以在碼段、堆棧段也可以在附加段。話數(shù)據(jù)可以在碼段、堆棧段也可以在附加段。* 程序段只能在碼段程序段只能在碼段 堆棧操作只能在堆棧段堆棧操作只能在堆棧段 目的串只能在附加段目的串只能在附加段 此外,其他情況都允許段跨越此外,其他情況都允許段跨越在在8088中的這些基本約定和允許超越的情況,如下表示:中的這些基本約

39、定和允許超越的情況,如下表示:訪問存儲(chǔ)器類型訪問存儲(chǔ)器類型約定段基值約定段基值可修改段基值可修改段基值邏輯地址邏輯地址取指令取指令CSCS無無IPIP堆棧操作堆棧操作SSSS無無SPSP源 串源 串DSDSCS、ES、SSCS、ES、SSSISI目的串目的串ESES無無DIDI用BP作基址寄存器用BP作基址寄存器SSSSCS、DS、ESCS、DS、ES有效地址有效地址通用數(shù)據(jù)讀寫通用數(shù)據(jù)讀寫DSDSCS、ES、SSCS、ES、SS有效地址有效地址第第3章:存儲(chǔ)器尋址方式中的變量章:存儲(chǔ)器尋址方式中的變量變量指示內(nèi)存中的數(shù)據(jù),變量名具有地址屬性。變量指示內(nèi)存中的數(shù)據(jù),變量名具有地址屬性。存儲(chǔ)器尋找方式中經(jīng)常采用變量形式存儲(chǔ)器尋找方式中經(jīng)常采用變量形式變量的定義變量的定義WVAR DW 1234H;定義;定義16位變量位變量WVAR,具有初值,具有初值1234H;假設(shè)其偏移地址為;假設(shè)其偏移地址為10H單獨(dú)引用變量名是直接尋址方式單獨(dú)引用變量名是直接尋址方式MOV AX,WVAR ;指令功能:

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論