計算機指令系統(tǒng)培訓教程課件_第1頁
計算機指令系統(tǒng)培訓教程課件_第2頁
計算機指令系統(tǒng)培訓教程課件_第3頁
計算機指令系統(tǒng)培訓教程課件_第4頁
計算機指令系統(tǒng)培訓教程課件_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

第3章指令系統(tǒng)本章主要內(nèi)容8086尋址方式8086指令系統(tǒng)CPU指令集1什么是指令系統(tǒng)–指令是指揮計算機進行操作的命令計算機的指令系統(tǒng)就是指該計算機能夠執(zhí)行的全部指令的集合不同的微處理器有不同的指令系統(tǒng),其中每一條指令對應著微處理器的一種基本操作,這在設計微處理器時確定。微處理器的主要功能由它的指令系統(tǒng)來體現(xiàn)程序是一系列按一定順序排列的指令,執(zhí)行程序的過程就是計算機的工作過程。–16位8086指令系統(tǒng)是Intel

80x86系列微處理器指令系統(tǒng)的基礎2指令的組成指令由操作碼和操作數(shù)兩部分組成操作碼說明計算機要執(zhí)行哪種操作,如傳送、運算、移位、跳轉(zhuǎn)等操作,它是指令中不可缺少的組成部分操作數(shù)是指令執(zhí)行的參與者,即各種操作的對象有些指令不需要操作數(shù),通常的指令都有一個或兩個操作數(shù),也有個別指令有3個甚至4個操作數(shù)操作碼操作數(shù)3指令的操作碼和操作數(shù)每種指令的操作碼:用一個唯一的助記符表示(指令功能的英文縮寫)對應著機器指令的一個二進制編碼指令中的操作數(shù):可以是一個具體的數(shù)值可以是存放數(shù)據(jù)的寄存器或指明數(shù)據(jù)在主存位置的存儲器地址4指令的助記符格式操作碼

操作數(shù)1,操作數(shù)2

;注釋操作數(shù)2,稱為源操作數(shù)src,它表示參與指令操作的一個對象操作數(shù)1,稱為目的操作數(shù)dest,它不僅可以作為指令操作的一個對象,還可以用來存放指令操作的結果分號后的內(nèi)容是對指令的解釋5例:傳送指令MOV的格式6MOV

dest,src

;dest←srcMOV指令的功能是將源操作數(shù)src傳送至目的操作數(shù)dest,例如:MOVAL,05H;AL←05HMOVBX,AX;BX←AXMOVAX,[SI];AX←DS:[SI]MOVAX,[BP+06H];AX←SS:[BP+06H]MOVAX,[BX+SI];AX←DS:[BX+SI]尋址方式尋址方式:指令中用于說明操作數(shù)所在地址的方法–指令系統(tǒng)設計了多種操作數(shù)的來源。操作數(shù)采取哪一種尋址方式,會影響機器運行的速度和效率如何尋址一個操作數(shù)對程序設計很重要73.1.1

與數(shù)據(jù)有關的尋址方式立即尋址寄存器尋址?????直接尋址寄存器間接尋址寄存器相對尋址基址變址尋址相對基址變址尋址MOV AX

,

3069HMOV AL

,

BHMOV AX

,

[

2000H

]MOV AX

,

[

BX

]MOV AX

,

COUNT

[

SI

]MOV AX

,

[

BP

]

[

DI

]MOV AX

,

MASK

[

BX

]

[

SI3.1. 8086的尋址方式]存儲器尋址8

操作數(shù)在指令中直接給出。

立即數(shù)緊跟在操作碼后面,一起存放在代碼段中指令格式舉例:

MOV AL,5MOV AX,

3064HMOV AL,

‘A’*

只能用于SRC

字段MOV

40H,

AL

×*

SRC和DST

的長度(數(shù)據(jù)類型)要一致:MOV AH,3064H

×(1)

立即尋址方式9(1)

立即尋址方式MOV AX,3064H的執(zhí)行情況如圖:執(zhí)行結果:(AX)=3064H10(1)

立即尋址方式11操作數(shù)在指定的寄存器中MOV

AX,

BXMOV

AL,

BHMOV

AX,

3064H(2)

寄存器尋址方式12(2)

寄存器尋址方式例:假設MOV AX,

BX指令執(zhí)行

前(AX)=3064H,(BX)=1234H,則指令執(zhí)行后:(AX)=

1234H,(BX)保持不變。注:可用通用寄存器(16位或8位)SRC

和DST

的長度(數(shù)據(jù)類型)要一致:MOV AH,

BX

MOV BX,

AH

CS

不能用MOV指令改變MOV CS,

AX

13(2)

寄存器尋址方式14存儲器尋址方式除上述兩種尋址方式外,下面五種尋址方式的操作數(shù)都在除代碼段以外的存儲區(qū)中,因此可以統(tǒng)稱為存儲器尋址方式。雙操作數(shù)指令的兩個操作數(shù)中,只能有一個使用存儲器尋址方式(即兩個操作數(shù)不能同時用存儲器尋址方式)這里先引入有效地址EA(Effective

Address)的概念:在8086里,把操作數(shù)的偏移地址稱為有效地址,下面五種計算EA的方法體現(xiàn)了五種尋址方式。15有效地址EA由指令直接給出例:MOV AX,[

2000H

]在這種尋址方式中,操作數(shù)存放在存儲單元中,而這個存儲單元的有效地址就在指令的操作碼之后,如操作數(shù)在數(shù)據(jù)段中,則:物理地址=(DS)×10H+EA。如操作數(shù)存放在數(shù)據(jù)段以外的其他段中,則:物理地址=(指定的段寄存器)×10H+EA

。例:MOV AX,

ES:[

2000H

](3)

直接尋址方式16MOV AX,[2000H]

EA=2000H,假設(DS)=3000H,那么PA=32000H直接尋址方式舉例:結果:(AX)=3050H17直接尋址方式18直接尋址方式總結:*

隱含的段為數(shù)據(jù)段DS*

可使用段跨越前綴

MOV AX,

ES:

[2000H]*

SRC和DST的長度(數(shù)據(jù)類型)要一致:19例:MOVMOVAL,

[

3000H

]AX,

[3000H

];[3000H]指示一個字節(jié)單元;[3000H]指示一個字單元*

s,d不能同時用存儲器尋址方式例:

MOV [3000H],

[2000H]

*

操作數(shù)地址可由變量(符號地址)表示,例如:MOVMOVAX,

[VALUE]AX,VALUE通常寫成如下形式:比較:MOVAX,2000HMOVAX,[2000H](4)寄存器間接尋址EA

在基址寄存器(BX/BP)或變址寄存器(SI/DI)中如果指令中使用的寄存器是SI、DI和BX,則操作數(shù)在數(shù)據(jù)段中,則:物理地址=(DS)×10H+(BX)或物理地址=(DS)×10H+(SI)或物理地址=(DS)

×10H+(DI)

;如指令中指定BP寄存器,則操作數(shù)在堆棧段中,段地址在SS中,所以操作數(shù)的物理地址為:物理地址=(SS)

×10H+(BP)20寄存器間接尋址舉例:例3.5:MOV

AX,[BX]如果(DS)=2000H,(BX)=1000H,則物理地址=20000H+1000H=21000H執(zhí)行情況如圖所示,最后的執(zhí)行結果為(AX)=50A0H。指令中也可以指定段跨越前綴來取得其他段中的數(shù)據(jù)。如:MOV

AX,ES:[BX]21寄存器間接尋址22寄存器間接尋址總結:*

存放EA的寄存器只能是BX,SI,DI,BP(指16位尋址的情況)例:

MOV AX,

[CX]

* SRC

和DST

的長度(數(shù)據(jù)類型)一致23例:

MOV DL,

[

BX

]MOV DX,

[

BX

];[BX]指示一個字節(jié)單元;[BX]指示一個字單元* s,d不能同時用存儲器尋址方式例:MOVMOV[SI],

[

BX

]

[2000H],

[

BX

]

比較:MOVMOVAX,BXAX,

[BX]有效地址=8位16位(BX)(BP)(SI)(DI)+位移量物理地理=段地址×10H+有效地址如果指令中使用的寄存器是SI、DI和BX,則操作數(shù)在數(shù)據(jù)段中,段地址在DS寄存器中:物理地理=(DS)×10H+有效地址如指令中指定BP寄存器,則操作數(shù)在堆棧段中,段地址在SS中:物理地理=(SS)×10H+有效地址(5)

寄存器相對尋址方式操作數(shù)的有效地址是一個基址或變址寄存器的內(nèi)容和指令中指定的8位或16位位移量(displacement)之和。即24指令格式:MOVAX,COUNT[SI]或MOVAX,[COUNT+SI]假設(DS)=3000H,(SI)=2000H,COUNT=3000H,則:PA=35000H指令的執(zhí)行情況如圖,執(zhí)行結果是:(AX)=1234H(5)

寄存器相對尋址方式25(5)

寄存器相對尋址方式26*

存放EA的寄存器只能是BX,SI,DI,BP

(指16位尋址的27情況)MOV AX,

COUNT[CX]

×*

SRC

和DST

的長度(數(shù)據(jù)類型)要一致例:

MOV DL,

AADR[

BX

]

;MOV DX,

AADR[

BX

]

;ADDR[BX]指示一個字節(jié)單元

ADDR[BX]指示一個字單元*

s,d不能同時用存儲器尋址方式例:

MOV [SI],

COUNT[

BX

]

×MOV [2000H],

COUNT[

BX

]

×MOV [2000H+SI],COUNT[

BX

]

×(5)

寄存器相對尋址方式總結(6)

基址變址尋址方式操作數(shù)的有效地址是一個基址寄存器和一個變址寄存器的內(nèi)容之和。兩個寄存器均由指令指定。如基址寄存器為BX時,段寄存器使用DS;物理地址=(DS)×10H+(BX)+(SI)或物理地址=(DS)×10H+(BX)+(DI)如基址寄存器為BP時,段寄存器則用SS。 物理地址=(SS)×10H+(BP)+(SI)或物理地址=(SS)×10H+(BP)+(DI)28例:MOV

AX,[BX][DI](或?qū)憺镸OV

AX,[BX+DI])如(DS)=2100H,(BX)=0158H,(DI)=10A5H則EA=0158H

+10A5H=11FDH物理地址=21000H

+11FDH=221FDH指令執(zhí)行情況如圖所示,最后的執(zhí)行結果是(AX)=1234H。(6)

基址變址尋址方式29(6)

基址變址尋址方式30可以指定段跨越前綴,例:MOV

AX,

ES:[BX][SI]存放EA的寄存器只能是BX,SI,DI,BP

(指16位尋址的情況),并且必須是一個基址寄存器和一個變址寄存器的組合。即:(BX)+(SI)(BX)+(DI)(BP)+(SI)(BP)+(DI)以下是錯誤的:MOV

AX,

[BX]

[BP]

×MOV

AX,

[SI]

[DI]

×MOV AX,[BX][CX]

×(6)

基址變址尋址方式總結31SRC

和DST

的字長應該一致MOV DL,

[

BX

][SI]

;

[

BX

][SI]指示一個字節(jié)單元MOV DX,

[

BX

][SI]; ADDR[

BX

]指示一個字單元s,d不能同時用存儲器尋址方式32例:

MOV [SI],

COUNT[

BX

]

×MOV [2000H],

COUNT[

BX

]

×MOVMOV[2000H+SI],

COUNT[

BX

]

×[2000H],

[

BX

][SI]

×(6)

基址變址尋址方式總結(7)

相對基址變址尋址方式操作數(shù)的有效地址是一個基址寄存器和一個變址寄存器的內(nèi)容和8位或16位位移量之和。同樣,當基址寄存器為BX時,使用DS為段寄存器物理地址=

(DS)×10H

+

(BX)

+

(SI)

+ 8位位移量16位位移量物理地址=(DS)×10H+(BX)+(DI)+8位位移量16位位移量而當基址寄存器為BP時,則使用SS為段寄存器。物理地址=(SS)×10H+(BP)+(SI)+8位位移量16位位移量物理地址=(SS)×10H+(BP)+(DI)+8位位移量16位位移量33MOV

AX,

MASK

[BX]

[SI]34或MOVAX,MASK[BX+SI]或MOVAX,[MASK+BX+SI](7)相對基址變址尋址方式例:MOV

AX

溫馨提示

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

最新文檔

評論

0/150

提交評論