微型計(jì)算機(jī)原理與接口技術(shù)(中國科學(xué)技術(shù)大學(xué)出版社-第4版)第三章8086尋址方式和指令系統(tǒng)課件_第1頁
微型計(jì)算機(jī)原理與接口技術(shù)(中國科學(xué)技術(shù)大學(xué)出版社-第4版)第三章8086尋址方式和指令系統(tǒng)課件_第2頁
微型計(jì)算機(jī)原理與接口技術(shù)(中國科學(xué)技術(shù)大學(xué)出版社-第4版)第三章8086尋址方式和指令系統(tǒng)課件_第3頁
微型計(jì)算機(jī)原理與接口技術(shù)(中國科學(xué)技術(shù)大學(xué)出版社-第4版)第三章8086尋址方式和指令系統(tǒng)課件_第4頁
微型計(jì)算機(jī)原理與接口技術(shù)(中國科學(xué)技術(shù)大學(xué)出版社-第4版)第三章8086尋址方式和指令系統(tǒng)課件_第5頁
已閱讀5頁,還剩153頁未讀, 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

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

文檔簡介

大平臺課程系列《微機(jī)原理及接口技術(shù)》

38086尋址方式和指令系統(tǒng)

第三章8086/8088的指令系統(tǒng)

大平臺課程《微機(jī)原理及接口技術(shù)》LJ.ZHu第3章指令系統(tǒng)2/138

3-1匯編語言概述

■編程語言

■機(jī)器語言:計(jì)算機(jī)能直接識別并執(zhí)行某

種操作的二進(jìn)制代碼串

匯編語言:面向機(jī)器的用指令助記符、

符號地址和標(biāo)號等書寫程序的低級語

言;是對機(jī)器語言的符號化描述,不同

類型的CPU,其匯編指令也不盡相同

高級語言:面向過程的用自然語言書寫

的語言,不依賴于機(jī)器。如C語言等

■J:大平臺課程《微機(jī)原理及接口技術(shù)》C.J.Zhu第3章指令系統(tǒng)3/138

準(zhǔn)匯編語言概述

■機(jī)器語言與匯編語言

地址機(jī)器代碼對應(yīng)的匯編指令

E380:0000B40FMOVAH,OFH

E380:00023COACMPAL,OAH

E380:00047202JBNUM

E380:00060407ADDAL,07H

E380:00080430NUM:ADDAL,30H

E380:000AC3RET

大平臺課程《微機(jī)原理及接口技術(shù)》C.J.Zhu第3章指令系統(tǒng)4/138

穌匯編語言指令格式

標(biāo)號:助記符操作數(shù)1,操作數(shù)2

■標(biāo)號:指明符號地址(可選項(xiàng))

■助記符(操作碼)

標(biāo)明需要計(jì)算機(jī)執(zhí)行的操作,如MOV、ADD等

■操作數(shù)

■存放指令執(zhí)行過程中的操作數(shù)和操作結(jié)果

■數(shù)量取決于操作碼

■對雙操作數(shù)指令,操作數(shù)1為目的操作數(shù),操作數(shù)2為

源操作數(shù)

指令中說明操作數(shù)所在地址的方法稱尋址方法

■I:大平臺課程《微機(jī)原理及接口技術(shù)》C.J.Zhu第3章指令系統(tǒng)5/“4

毋3?28086操作數(shù)尋址方式

■立即數(shù)尋址

■寄存器操作數(shù)尋址

■存儲器操作數(shù)尋址

■1O端口操作數(shù)尋址

大平臺課程《微機(jī)原理及接口技術(shù)》C.J.Zhu第3章指令系統(tǒng)6/138

處立即數(shù)尋址

■格式:操作數(shù)以常數(shù)形式直接表示在指令中

■操作數(shù)的物理地址:緊跟在指令操作碼之

后,存放在存儲器的代碼段內(nèi)

■例:MOVAX,1234H;AH-12H,AL-34H

大平臺課程《微機(jī)原理及接口技術(shù)》C.J.Zhu第3章指令系統(tǒng)7/138

立即數(shù)尋址

■適用于:給寄存器或存儲單元賦初值

■注意:

■不能直接用立即數(shù)給段寄存器賦值;

■立即數(shù)不能作目的操作數(shù);

用立即數(shù)給存儲器操作數(shù)賦值時(shí),要指明類型

WORD/BYTEPTR,如

MOVBYTEPTR[1OOH],5FH

以A-F打頭的數(shù)字出現(xiàn)在指令中時(shí),前面要加數(shù)

字0,以免與變量名等符號混淆,如

MOVBX,0F77H

■I:大平臺課程《微機(jī)原理及接口技術(shù)》C.J.Zhu第3章指令系統(tǒng)8/138

-3-28086操作數(shù)尋址方式

iJWi—「

■立即數(shù)尋址

■寄存器操作數(shù)尋址

■寄存器尋址

■存儲器操作數(shù)尋址

■1O端口操作數(shù)尋址

大平臺課程《微機(jī)原理及接口技術(shù)》C.J.Zhu第3章指令系統(tǒng)9/138

寄存器尋址

■格式:操作數(shù)是通用寄存器或段寄存器

通用寄存器(AX,BX,CX,DX,SP,BP,

SI,DI,AH,AL,BH,BL,CH,CL,DH,

DL)

段地址寄存器(CS,SS,DS,ES)

標(biāo)志寄存器(PSW)

■操作數(shù)的物理地址:操作數(shù)在CPU的寄存器

中,不用訪問內(nèi)存,執(zhí)行時(shí)間短

■注意:

不要對段寄存器CS賦值,否則執(zhí)行時(shí)會出錯

兩個(gè)操作數(shù)的長度必須一致

大平臺課程《微機(jī)原理及接口技術(shù)》LJ.ZHu第3章指令系統(tǒng)10/138

旺寄存器尋址

■例

INCCX;CX-CX+1

MOVSS,AX;SS-AX

ADDCL,BH;CL-CL+BH

MOVAX,BX;AX-BX

AXBX

34Hk------------34H

您^大平臺課程

《微機(jī)原理及接口技術(shù)》LJ.ZHu第3章指令系統(tǒng)11/138

工3?28086操作數(shù)尋址方式

■立即數(shù)尋址

■寄存器操作數(shù)尋址

■存儲器操作數(shù)尋址

■直接尋址

寄存器間接尋址

寄存器相對尋址

基址變址尋址

相對基址變址尋址

■1O端口操作數(shù)尋址

您^大平臺課程

《微機(jī)原理及接口技術(shù)》LJ.ZHu第3章指令系統(tǒng)12/138

存儲器尋址

■操作數(shù)在除代碼段以外的存儲區(qū)中

■物理地址:PA=段寄存器vv4+EA

您^大平臺課程

《微機(jī)原理及接口技術(shù)》LJ.ZHu第3章指令系統(tǒng)13/138

回顧:邏輯地址來源

操作類型正常使用的(隱含)段基址可替換段地址偏移地址物理地址計(jì)算

__._____

取指令CS無IPCSX16+IP

堆棧操作SS無SPSSX16+SP

BP為間址SSCS,DS,ES有效地址EASSX16+EA

存取變量DSCS,ES,SS有效地址EADSX16+EA

源字符串DSCS,ES,SSSIDSX16+SI

目標(biāo)字符串ES無DIESX16+DI

您^大平臺課程

《微機(jī)原理及接口技術(shù)》LJ.ZHu第3章指令系統(tǒng)14/138

電存儲器操作數(shù)表示和尋址方式

■EA(有效地址)

操作數(shù)的偏移地址

直接尋址寄存器間接尋址寄存器間接尋址

[立即數(shù)][基址寄存器BX/BP][變址寄存器SI/DI]

您^大平臺課程

《微機(jī)原理及接口技術(shù)》LJ.ZHu第3章指令系統(tǒng)15/138

處直接尋址

—IF?■

■格式1:操作數(shù)表示成“[立即數(shù)廣、"[變量名]”

或“變量名”(稱為符號地址)

MOVAX,[2000H]

VALUEDW0867H;VALUE為變量名

MOVAX,VALUE<MOVAX,[VALUE]

MOVAX,[VALUE+2]或MOVAX,[VALUE]+2

■操作數(shù)的物理地址

■默認(rèn)使用數(shù)據(jù)段寄存器DS

■PA=DSvv4+立即數(shù)或變量的偏移

您^大平臺課程

《微機(jī)原理及接口技術(shù)》LJ.ZHu第3章指令系統(tǒng)16/138

直接尋址

■有效地址緊跟在指令操作碼之后,存放在存

儲器的代碼段內(nèi)

■例:4000HDS

操作碼碼

MOVAL,[2000H]40000H操作碼段

的執(zhí)行結(jié)果00H

AL-56H2000H

720H

42000H

數(shù)

4200056H

據(jù)

直接尋址

您^大平臺課程

《微機(jī)原理及接口技術(shù)》LJ.ZHu第3章指令系統(tǒng)17/138

舉直接尋址

■格式2:操作數(shù)加段超越前綴“段寄存器廠

(":”稱為修改屬性運(yùn)算符)

MOVAX,ES:[2000H]

MOVAX,CS:VALUE

■操作數(shù)的物理地址

■使用段超越指定的段寄存器

■PA=段寄存器vv4+立即數(shù)或變量的偏移

如,PA=ESx16+2000H

PA=CSx16+VALUE

大平臺課程《微機(jī)原理及接口技術(shù)》LJ.ZHu第3章指令系統(tǒng)18/13a

旺寄存器間接尋址

■格式:操作數(shù)表示成[BX]、[BP]、[SI]或

[DI],寄存器內(nèi)容作為操作數(shù)的有效地址

■MOVBX,[DI]

MOV[SI],DS

MOV[BP],AX

MOVES:[DI],AX

MOVDX,DS:[BP]

■操作數(shù)的物理地址(默認(rèn)情況)

PA=DS?4+BX/SI/DI或

■PA=SS?4+BP

您^大平臺課程

《微機(jī)原理及接口技術(shù)》LJ.ZHu第3章指令系統(tǒng)19/138

,寄存器間接尋址

您^大平臺課程

《微機(jī)原理及接口技術(shù)》LJ.ZHu第3章指令系統(tǒng)20/138

.寄存器間接尋址

■適用于:不知道內(nèi)存單元的確切地址;存取

一維數(shù)組或表格中的元素

■例:求從VAL開始的30字節(jié)內(nèi)存中各值之和

LEASI,VAL;WVAL的偏移地址

MOVCX,30;設(shè)循環(huán)次數(shù)

MOVAL,0;初始化和為0

AGAIN:ADDAL,[SI]

INCSI;指針加1

LOOPAGAIN;循環(huán)

您^大平臺課程

《微機(jī)原理及接口技術(shù)》LJ.ZHu第3章指令系統(tǒng)21/1?a

叁寄存器相對尋址

格操作數(shù)表示成[BX/BP/SI/DI+立即數(shù)/

變],直接尋址和寄存器間接尋址的組

MOVBX,[SI+1003H]

MOVAL,[DI+TABLE]

MOVAL,TABLE[BX]

MOVAL,[BP]+TABLE

MOVBX,ES:[SI+1003H]

MOVTABLE[BP],AX

適用于:存取一維數(shù)組或表格中的元素

您^大平臺課程

《微機(jī)原理及接口技術(shù)》LJ.ZHu第3章指令系統(tǒng)22/138

寄存器相對尋址

-JW11P酬一JJ.〔Illi

■操作數(shù)的物理地址(默認(rèn)情況下)

■PA=DS?4+(BX/SI/DI)+立即數(shù)或變量的偏移

■PA=SS?4+(BP)+立即數(shù)或變量的偏移

MOVAL,[BX+5]

您^大平臺課程

《微機(jī)原理及接口技術(shù)》LJ.ZHu第3章指令系統(tǒng)23/138

專寄存器相對尋址

■例:求從VAL開始的30字節(jié)內(nèi)存中各值之和

寄存器間接尋址方式寄存器相對尋址方式

;WVAL首字節(jié)的偏移MOVSI,0

LEASI,VAL;設(shè)循環(huán)次數(shù)

;設(shè)循環(huán)次數(shù)

MOVCX,30

MOVCX,30

;初始化和為0

;初始化和為0

MOVAL,0

MOVAL,0

AGAIN:ADDAL,[SI]AGAIN:ADDAL,VAL[SI]

;指針加1;指針加1

INCSIINCSI

LOOPAGAINLOOPAGAIN

您^大平臺課程

《微機(jī)原理及接口技術(shù)》LJ.ZHu第3章指令系統(tǒng)24/13a

.基址變址尋址

■格式:操作數(shù)表示成[BX/BP+SI/DI]

MOVAX,[BX][DI]

MOVCL,[BP+DI]

MOVES:[BX][SI],AH或

MOV[SI][BX],AH

■操作數(shù)的物理地址:(段寄存器缺省情況)

■PA=DS?4+(BX)+(SI/DI)

■PA=SS?4+(BP)+(SI/DI)

■適用于:一維或二維數(shù)組或表格

您^大平臺課程

《微機(jī)原理及接口技術(shù)》LJ.ZHu第3章指令系統(tǒng)25/138

旌基址變址尋址

例,MOVAX,[BX+SI]

DS5000H代

BXI2000H|碼

SI|0006H|50000H

EA

EA=2000H+06H

=2006H教

52006H

AXABH78H<<據(jù)

基址變址尋址方式

大平臺課程《微機(jī)原理及接口技術(shù)》LJ.ZHu第3章指令系統(tǒng)26/13a

相對基址變址尋址

格式:操作數(shù)表示成[BX/BP+SI/DI+立即數(shù)/

變量名]

MOVAX,COUNT[BX][SI]

MOVAX,COUNT[SI][BX]

MOVAX,[BX+COUNT][SI]

MOVAX,[BX+SI+COUNT]

MOVAX,[BX]COUNT[SI]

ADDVALUE[BX][DI],DX

■操作數(shù)的物理地址:(缺省情況)

■PA=DS?4+BX+SI/DI+立即數(shù)或變量的偏移

PA=SS?4+BP+SI/DI+立即數(shù)或變量的偏移

您^大平臺課程

《微機(jī)原理及接口技術(shù)》LJ.ZHu第3章指令系統(tǒng)28/138

相對基址變址尋址

裝存儲器操作數(shù)尋址

----

。注意:為限制指令代碼長度,不

允許兩個(gè)操作數(shù)都用存儲器尋址

大平臺課程《微機(jī)原理及接口技術(shù)》LJ.ZHu第3章指令系統(tǒng)30/138

工3?28086操作數(shù)尋址方式

■立即數(shù)尋址

■寄存器操作數(shù)尋址

■存儲器操作數(shù)尋址

■IO端口操作數(shù)尋址

■直接尋址

間接尋址

大平臺課程《微機(jī)原理及接口技術(shù)》LJ.ZHu第3章指令系統(tǒng)31/138

10端口尋址

■操作數(shù)在外設(shè)端口

■物理地址:PA=端口地址(端口號)

您^大平臺課程

《微機(jī)原理及接口技術(shù)》LJ.ZHu第3章指令系統(tǒng)32/138

10端口尋址

工■??=7—

■直接尋址:指令中直接給出8位端口地

只能尋址前256個(gè)端口(端口號00?

FFH)

INAL/AX,8位立即數(shù);輸入

OUT8位立即數(shù),AL/AX;輸出

例,INAL,20H;[端口20H]-AL

您^大平臺課程

《微機(jī)原理及接口技術(shù)》LJ.ZHu第3章指令系統(tǒng)33/138

旌10端口尋址

■間接尋址:將16位端口地址放入DX

可尋址216個(gè)端口(端口號o?FFFFH)

MOVDX,16位立即數(shù);設(shè)端口號

INAL/AX,DX;輸入

OUTDX,AL/AX;輸出

例,MOVDX,210H

OUTDX,AL;AL^[^n210H]

您^大平臺課程

《微機(jī)原理及接口技術(shù)》LJ.ZHu第3章指令系統(tǒng)34/138

旌8086操作數(shù)尋址方式小結(jié)

,R35___--?―5簿-jra^T,

■立即數(shù)尋址

■寄存器尋址

■存儲器操作數(shù)尋址

■直接尋址、寄存器間接尋址、寄存器相

對尋址、基址變址尋址、相對基址變址

尋址

■1O端口操作數(shù)尋址

10直接尋址、10間接尋址

大平臺課程《微機(jī)原理及接口技術(shù)》LJ.ZHu第3章指令系統(tǒng)35/138

尋址方式示例

■假設(shè):DS=2000H,ES=2100H,SS=1500H,

SkOOAOH,DI=0,BX=O1OOH,BP=OO1OH,數(shù)

據(jù)變量VAL在數(shù)據(jù)段中的偏移地址為0050H,指出

下列指示的源操作數(shù)是什么尋址方式,寫出它的物

理地址:

(1)MOVAL,OABH立即數(shù),代碼段內(nèi)

(2)MOVAX,VAL存-直接,PA=20050H

(3)MOVAX,VAL[DI]存-寄相,PA=20050H

(4)MOVAX,VAL[BX][SI]存-相基變,PA=201F0

(5)MOVAX,BX寄存器,寄存器中

大平臺課程《微機(jī)原理及接口技術(shù)》LJ.ZHu第3章指令系統(tǒng)36/138

?尋址方式示例

■假設(shè):DS=2000H,ES=2100H,SS=1500H,

SkOOAOH,DI=0,BX=O1OOH,BP=OO1OH,數(shù)

據(jù)變量VAL在數(shù)據(jù)段中的偏移地址為0050H,指出

下列指示的源操作數(shù)是什么尋址方式,寫出它的物

理地址:

(6)MOVAX,[100H]存-直接,PA=20100H

(7)MOVAX,[BX]存-寄間,PA=20100H

(8)MOVAX,ES:[BX]存-寄間,PA=21100H

(9)MOVAX,[BP]存-寄間,PA=15010H

(10)MOVAX,[SI+10H]存一寄相,PA=200B0H

大平臺課程《微機(jī)原理及接口技術(shù)》LJ.ZHu第3章指令系統(tǒng)37/138

尋址方式示例

■例:(DS)=3000H,(BX)=110OH,(CS)=0062H,

(SI)=0002H,(31100H)=52H,(31101H)=8FH,

(31162H)=6BH,(31163H)=99H,(31103H)=F6H,

(32200H)=AAH,(32201H)=B6H,(32800H)=55H,

(32801H)=77H,寫出下列指令執(zhí)行后AX的內(nèi)容:

(1)MOVAX,1100H[BX]

AX=(DS:1100H+BX)=(32200H)=B6AAH

(2)MOVAX,[2800H]

AX=(DS:2800H)=(32800H)=7755H

(3)MOVAX,BX

AX=BX=1100H

大平臺課程《微機(jī)原理及接口技術(shù)》LJ.ZHu第3章指令系統(tǒng)38/138

?尋址方式示例

■例:(DS)=3000H,(BX)=110OH,(CS)=0062H,

(SI)=0002H,(31100H)=52H,(31101H)=8FH,

(31162H)=6BH,(31163H)=99H,(31103H)=F6H,

(32200H)=AAH,(32201H)=B6H,(32800H)=55H,

(32801H)=77H,寫出下列指令執(zhí)行后AX的內(nèi)容

(4)MOVAX,[BX]

AX=(DS:BX)=(31100H)=8F52H

(5)MOVAX,[1160H+SI]

AX=(DS:1160H+SI)=(31162H)=996BH

(6)MOVAX,4200H

AX=4200H

大平臺課程《微機(jī)原理及接口技術(shù)》LJ.ZHu第3章指令系統(tǒng)39/138

我尋址方式示例:找錯

1.MOV3,SI1,立即數(shù)不能做目的

2.MOVCH,1234H2,類型不一致

類型不明確,

3.MOV[BX],33H3.BYTEPTR

4.類型不一致

4.MOVAX,CL

5.正確

5.MOVAL,[BX]

6,不能兩個(gè)存儲器尋址

6.MOVX,[100H]

7,不能兩個(gè)變址寄存器器

7.MOVAX,[DI][SI]

8.不能對段寄存器直接寫

8.MOVDS,1000H立即數(shù)

9.MOVCS,AX9.改變CS會使程序出錯

10.MOV[AX],BX10.AX不能用作間接尋址

您^大平臺課程

《微機(jī)原理及接口技術(shù)》LJ.ZHu第3章指令系統(tǒng)40/1

重3?38086轉(zhuǎn)移地址尋址方式

■程序在存儲器中的訪問程序段

MOVAX,3065H指令被翻譯成機(jī)器

碼(B86530)后存儲在存儲器的程

B8H

序段中65H

當(dāng)前指令由CS:IP得到,執(zhí)行完指令30H

后IP會自動增加以指向下一條指令

■如果要改變這種方式,則需要引入

數(shù)據(jù)段

控制程序流程的指令

轉(zhuǎn)移(JMP,JZ等)、循環(huán)(LOOP)、

過程調(diào)用(CALL)、中斷(INT)

大平臺課程《微機(jī)原理及接口技術(shù)》LJ.Zfiu第3章指令系統(tǒng)41/138

8086轉(zhuǎn)移地址的尋址方式

■程序跳轉(zhuǎn)也存在64K大小的限制

64K之內(nèi)稱段內(nèi)轉(zhuǎn)移

64K之外稱段間轉(zhuǎn)移

■轉(zhuǎn)移地址的尋址方式

■段內(nèi)直接轉(zhuǎn)移

■段內(nèi)間接轉(zhuǎn)移

■段間直接轉(zhuǎn)移

段間間接轉(zhuǎn)移

大平臺課程《微機(jī)原理及接口技術(shù)》LJ.ZHu第3章指令系統(tǒng)42/138

旺段內(nèi)直接(相對)轉(zhuǎn)移尋址

■格式:

操作碼[SHORT|NEARPTR]短/近標(biāo)號

JMPNEXT;NEXT為短標(biāo)號或近標(biāo)號

CALLSUB;SUB為段內(nèi)子過程名

JMP110H㈠先轉(zhuǎn)到CS:110H處

■短轉(zhuǎn)移:8位偏移,近轉(zhuǎn)移:16位偏移

■轉(zhuǎn)移的目標(biāo)地址:

■CS不變,IP=當(dāng)前IP+指令中的8/16位偏移量

■注意:條件轉(zhuǎn)移只能段內(nèi)直接短轉(zhuǎn)移

您^大平臺課程

《微機(jī)原理及接口技術(shù)》LJ.ZHu第3章指令系統(tǒng)43/138

.段內(nèi)間接轉(zhuǎn)移尋址

■格式:

操作碼16位通用寄存器|字類型存儲器

■JMPBX

JMPAX

■JMPSI

JMPTABLE[BX];TABLE是字變量

JMPWORDPTR[BP][DI]

JMP[BX];缺省表示是字

■轉(zhuǎn)移的目標(biāo)地址:

■CS不變

■IP=寄存器內(nèi)容或連續(xù)2字節(jié)存儲單元的內(nèi)容

您^大平臺課程

《微機(jī)原理及接口技術(shù)》LJ.ZHu第3章指令系統(tǒng)44/138

段間直接轉(zhuǎn)移尋址

■格式:

操作碼[FARPTR]遠(yuǎn)標(biāo)號

JMPLABEL;LABEL為遠(yuǎn)標(biāo)號

■轉(zhuǎn)移的目標(biāo)地址:

■CS=標(biāo)號的段地址

■IP=標(biāo)號的偏移地址

您^大平臺課程

《微機(jī)原理及接口技術(shù)》LJ.ZHu第3章指令系統(tǒng)45/138

我段間間接轉(zhuǎn)移尋址

■格式:

操作《馬FAR[PTR]|DWORDPTR

存儲器操作數(shù)

JMPDWORDPTR[BP][SI]

JMPVAR;VAR是雙字變量

■轉(zhuǎn)移的目標(biāo)地址:

■CS=高2字節(jié)存儲單元的內(nèi)容

■IP=低2字節(jié)存儲單元的內(nèi)容

您^大平臺課程

《微機(jī)原理及接口技術(shù)》LJ.ZHu第3章指令系統(tǒng)46/138

轉(zhuǎn)移地址尋址

,短(條件轉(zhuǎn)移只能這種)

標(biāo)號<近

、—**

轉(zhuǎn)移指令寄存器(只能段內(nèi))

字(段內(nèi))

內(nèi)存

雙字(段間)

大平臺課程《微機(jī)原理及接口技術(shù)》LJ.ZHu第3章指令系統(tǒng)47/138

3-48086的指令系統(tǒng)

一-__

■數(shù)據(jù)傳送指令》

■算術(shù)運(yùn)算指令?

■邏輯運(yùn)算與移位指令A(yù)

■字符串處理指令?

■控制轉(zhuǎn)移指令?

■處理器控制指令?

大平臺課程《微機(jī)原理及接口技術(shù)》LJ.ZHu第3章指令系統(tǒng)48/138

旌數(shù)據(jù)傳送指令

■通用傳送

MOV、PUSH、POP、XCHG

■累加器專用傳送

IN、OUT、XLAT

■地址傳送

LEA、LDS、LES

■標(biāo)志寄存器傳送

LAHF、SAHF、PUSHF、POPF

您^大平臺課程

《微機(jī)原理及接口技術(shù)》LJ.ZHu第3章指令系統(tǒng)49/138

MOV傳送指令

■格式:MOVDST,SRC(字/字節(jié))

■執(zhí)行:將源操作數(shù)傳送到目操作數(shù),DST-SRC

■操作數(shù)類型:立即數(shù),寄存器操作數(shù)和存儲器操作

數(shù)。(字或字節(jié))

大平臺課程《微機(jī)原理及接口技術(shù)》LJ.ZHu第3章指令系統(tǒng)50/138

MOV傳送指令

■不影響標(biāo)志位

■注意:

■兩個(gè)操作數(shù)不能全為存儲器

■兩個(gè)操作數(shù)不能全為段寄存器

■CS和立即數(shù)不能作目的操作數(shù)

■不能將立即數(shù)直接傳送給段寄存器

源和目的操作數(shù)的類型必須一致

大平臺課程《微機(jī)原理及接口技術(shù)》LJ.ZHu第3章指令系統(tǒng)51/138

PUSH和POP

■堆棧操作

堆棧是一個(gè)只有一個(gè)出入口的存儲器區(qū)域,存

取數(shù)據(jù)是“先進(jìn)后出,后進(jìn)先出”

■有特殊的數(shù)據(jù)傳輸指令,即“PUSH”和“POP”;

有特殊的專為其服務(wù)的堆棧指針SP,PUSH和

POP后自動修改

新的數(shù)據(jù)進(jìn)棧時(shí),棧中原存的信息不受破壞,

而只改變棧頂位置;數(shù)據(jù)從堆棧中彈出時(shí),彈

出的是棧頂位置的數(shù)據(jù),彈出后自動調(diào)整棧頂

位置

每次傳送的數(shù)據(jù)為16位,16位數(shù)據(jù)在堆棧中的

存放順序是按照“高高低低”原則

大平臺課程《微機(jī)原理及接口技術(shù)》LJ.ZHu第3章指令系統(tǒng)52/138

PUSH和POP堆棧操作指令

------一

■格式:PUSHSRC(字)

POPDST(字)

■執(zhí)行:

PUSH入棧:SP-29SP;SRC9(SS:SP)

POP出才戔:(SS:SP)9DST;SP+2-?SP

■操作數(shù)類型:16位寄存器操作數(shù)或16位內(nèi)存操作數(shù)

(除立即數(shù)、字節(jié)寄存器、CS以外的各種尋址方

式)

PUSHDS

POPVAL[SI]

■不影響標(biāo)志位

大平臺課程《微機(jī)原理及接口技術(shù)》LJ.ZHu第3章指令系統(tǒng)53/138

PUSH和POP堆棧操作

SS:0000H低地址MOVAX,25FEH

MOVBX,3120H

PUSHBX

PUSHAX

POPBX

POPAX

SP棧大小

AX25FE

BX3120

高地址

大平臺課程《微機(jī)原理及接口技術(shù)》LJ.ZHu第3章指令系統(tǒng)54/138

旌PUSH和POP堆棧操作指令

■注意:

以字為單位

不允許POPcs

■不允許對立即數(shù)操作

■用于保護(hù)數(shù)據(jù):

PUSH和POP指令保護(hù)和恢復(fù)寄存器和

內(nèi)存內(nèi)容

CALL和RET或INT和IRET指令自動保護(hù)

和恢復(fù)主程序斷點(diǎn)處的段和偏移地址

大平臺課程《微機(jī)原理及接口技術(shù)》LJ.ZHu第3章指令系統(tǒng)55/138

-XCHG交換指令

■格式:XCHG0PR1,0PR2(字節(jié)/字)

■執(zhí)行:交換源、目操作數(shù),0PR1—0PR2

■操作數(shù)類型:

存儲器通用寄存器

例,XCHGAX,[BX+DI]

■不影響標(biāo)志位

■注意:不能兩個(gè)都是存儲器;不能有段寄存

大平臺課程《微機(jī)原理及接口技術(shù)》LJ.ZHu第3章指令系統(tǒng)56/138

JN和OUT輸入輸出指令

■格式:INAX/AL,端口地址

OUT端口地址,AX/AL

■執(zhí)行:OUT

AL/AX1》(端口)

IN

■端口操作數(shù)類型:

立即數(shù)(0-255),DX(0-65535)

MOVDX,210H

INAL,DX

OUT20H,AX

■不影響標(biāo)志位

■注意:只能用AX/AL,DX寄存器

您^大平臺課程

《微機(jī)原理及接口技術(shù)》LJ.ZHu第3章指令系統(tǒng)57/138

XLAT換碼或查表指令

jfa^

■格式:XLAT[OPRD]

■功能:以查表方式實(shí)現(xiàn)修一個(gè)字節(jié)從一種代

碼轉(zhuǎn)化成另一種代碼。使用之前先建立轉(zhuǎn)換

表,表的起始地址裝入BX寄存器,AL為偏

移量

■執(zhí)行:((BX)+(AL))f(AL)

■操作數(shù):由隱含的BX和AL尋址的內(nèi)存字節(jié)

單元和AL

■不影響標(biāo)志位

大平臺課程《微機(jī)原理及接口技術(shù)》LJ.ZHu第3章指令系統(tǒng)58/138

XLAT換碼或查表指令

■例,十進(jìn)制數(shù)字七段顯示碼十進(jìn)制數(shù)字七段顯示碼

040H512H

179H602H

224H778H

330H800H

419H918H

TABLEDB40H,79H,24H,30H,19H;建轉(zhuǎn)換表

DB12H,02H,78H,00H,18H

MOVBX,OFFSETTABLE;BX-表首偏移

MOVAL,05H;AL-數(shù)字5的位移

XLATTABLE;查表AL-12H

大平臺課程《微機(jī)原理及接口技術(shù)》L.J.Zftu第3章指令系統(tǒng)59/138

旌LEA取有效地址指令

■■

■格式:LEAREG,SRC

■執(zhí)行:SRC的EAfREG(取SRC的內(nèi)存偏

移地址)

■操作數(shù)類型:SRC必須是內(nèi)存操作數(shù);REG

必須是字通用寄存器

LEASI,VAL

LEABX,[100H];BX=100H

LEAAX,[BX+SI+62H];AX=BX+SI+62H

■不影響標(biāo)志位

大平臺課程《微機(jī)原理及接口技術(shù)》LJ.ZHu第3章指令系統(tǒng)60/138

LDS和ILES取雙字指針指令

—___—

■格式:LDSREG,SRC

LESREG,SRC

■執(zhí)行:

LDS:(SRC)-REG,(SRC+2)-DS

LES:(SRC)-REG,(SRC+2)9ES

■操作數(shù)類型:SRC必須是雙字內(nèi)存操作數(shù);REG必

須是字通用寄存器(LDS常用SI,LES常用DI)

■例,LDSSI,[10H]

■執(zhí)行前(DS)=COOOH,(C0010H)=0180H,(C0012H)

=2000H

■執(zhí)行后(SI)=(C0000H+10H)=180H,(DS)=2000H

■不影響標(biāo)志位

大平臺課程《微機(jī)原理及接口技術(shù)》LJ.ZHu第3章指令系統(tǒng)61/138

LDS和LES指令

■例,LESDI,[2130H]

彳員設(shè)DS=3000H,刃F么

源操作數(shù)就存儲在:

30000H+2130H=

32130H位置

■則指令執(zhí)行后:

■Dl=[32130H]=5678H

■ES=[32132H]=1234H

您^大平臺課程

《微機(jī)原理及接口技術(shù)》LJ.ZHu

LAHF和SAHF標(biāo)志傳送指令

■格式:LAHF

SAHF

LAHF

■執(zhí)行:標(biāo)志寄存器的低字節(jié)<AH

SAHF

■操作數(shù):FLAG和AH(隱含)

■LAHF不影響標(biāo)志位;SAHF影響標(biāo)志位

大平臺課程《微機(jī)原理及接口技術(shù)》LJ.ZHu第3章指令系統(tǒng)63/138

PUSHF和POPF標(biāo)志入出棧才旨令

■格式:PUSHF

POPF

PUSHF(SP-SP-2)

■執(zhí)行:標(biāo)志寄存器二二堆棧

POPF(SP-SP+2)

■操作數(shù):FLAG和堆棧(隱含)

■PUSHF不影響標(biāo)志位;POPF影響標(biāo)志位

您^大平臺課程

《微機(jī)原理及接口技術(shù)》LJ.ZHu第3章指令系統(tǒng)64/138

3-48086的指令系統(tǒng)

一-__

■數(shù)據(jù)傳送指令?

■算術(shù)運(yùn)算指令?

■邏輯運(yùn)算與移位指令A(yù)

■字符串處理指令?

■控制轉(zhuǎn)移指令?

■處理器控制指令?

大平臺課程《微機(jī)原理及接口技術(shù)》LJ.ZHu第3章指令系統(tǒng)65/138

■加法

ADD、ADC、INC、DAA、AAA

■減法

SUB、SBB、DEC、NEG、CMP、DAS、AAS

■乘法

MUL、IMUL、AAM

■除法

DIV、IDIV、CBW、CWD、AAD

■除了除法類指令,其余指令都影響標(biāo)志

您^大平臺課程

《微機(jī)原理及接口技術(shù)》LJ.ZHu第3章指令系統(tǒng)66/138

3aADD和ADC力口法才旨令

■格式:ADD/ADCDST,SRC(字/字節(jié))

■執(zhí)行:

ADD:DST-DST+SRC

ADC:DST-DST+SRC+CF(用于多字節(jié)力口)

■操作數(shù)類型:?日通用寄存器

ADDAX,[30H]

ADDBP,20H亡立即數(shù)

ADDVAL,DX

A存儲器操作數(shù)

ADDBYTEPTR[SI+10H],5H

■影響標(biāo)志位C,O,P,S,Z和A

大平臺課程《微機(jī)原理及接口技術(shù)》LJ.ZHu第3章指令系統(tǒng)67/138

ADD和ADC加法指令

BXAX

I—1234一執(zhí)行前I5678

[1234執(zhí)行時(shí):~5678

68AC執(zhí)行后|5678

1234H+5678H=68ACH

ADDBX,AX的執(zhí)行過程

您^大平臺課程

《微機(jī)原理及接口技術(shù)》LJ.ZHu第3章指令系統(tǒng)68/138

■例:完成兩個(gè)雙字

據(jù)

數(shù)

數(shù)的相加:兩個(gè)加高地址段

1,

數(shù)分別存放在DS段AX=[SI+2]+[DI+2]+CFDs

的0x2000和0x3000AX=[SI]+[DI]

處,結(jié)果存放到

0x4000處。BX=4000H[BX]——

MOVSI,2000H

MOVDI,3000H

MOVBX,4000HDI=3000H[DI]——

MOVAX,[SI]

ADDAX,[DI]

MOV[BX],AXSI=2000H[SI]——

MOVAX,[SI+2]

ADCAX,[DI+2]低地址

MOV[BX+2],AX

摩加法指令對標(biāo)志位的影響

■程序如下:

MOVAL,5EH01011110

MOVBL,3CH+00111100

ADDAL,BL10011010(9AH)

■ZF=0,AF=15CF=0,SF=15PF=15OF=1

■標(biāo)志位的解釋取決于編寫的程序:

看作無符號數(shù):9AH=154,CF、ZF有意義

看作有符號數(shù):結(jié)果溢出,SF、OF、ZF有意

大平臺課程《微機(jī)原理及接口技術(shù)》LJ.ZHu第3章指令系統(tǒng)70/138

SUB和SBB減法才旨令

■格式:SUB/SBBDST,SRC(字/字節(jié))

■執(zhí)行:

SUB:DST=DST-SRC

SBB:DST=DST-SRC-CF(多字節(jié)減法)

■操作數(shù):

_n通用寄存:*1

立即數(shù)

一I即存儲器操作數(shù)

■影響標(biāo)志位C,O,P,S,Z和A

大平臺課程《微機(jī)原理及接口技術(shù)》LJ.ZHu第3章指令系統(tǒng)71/138

SUB和SBB減法才旨令

AX_BX

5678執(zhí)行前|~1234

|56?8執(zhí)行時(shí):~1234

4444執(zhí)行后~1234

5678H-1234HM444H

SUBAX,BX的執(zhí)行過程

大平臺課程《微機(jī)原理及接口技術(shù)》£.7Z初第3章指令系統(tǒng)72/138

疆減法指令對標(biāo)志位的影響

■程序如下:

MOVAL,0B1H10110001

MOVBL,4AH-01001010

SUBAL,BL

01100111(67H)

■ZF=0,AF=1,CF=0,SF=0,PF=0,OF=1

■標(biāo)志位的解釋取決于編寫的程序:

無符號數(shù):67H=103,CF、ZF有意義

有符號數(shù):結(jié)果溢出,SF、OF、ZF有意義

您^大平臺課程

《微機(jī)原理及接口技術(shù)》LJ.ZHu第3章指令系統(tǒng)73/138

旌CMP比較指令

■格式:CMP0PR1,0PR2(字/字節(jié))

■執(zhí)行:

0PR1-OPR2T影響標(biāo)志位,不改變操作數(shù)

■操作數(shù):

I.通用寄存器

立即數(shù)

存儲器操作數(shù)

■影響標(biāo)志位C,O,P,S,Z和A

大平臺課程《微機(jī)原理及接口技術(shù)》LJ.ZHu第3章指令系統(tǒng)74/138

=CMP比較指令

■CMPA,B:用于判斷兩個(gè)數(shù)之間關(guān)系

■A=B?................ZF

■ZF=1-A=B

■A>B?

■無符號數(shù).........CF

■CF=0->A>B

■CF=1->A<B

■有符號數(shù).........SF?OF(異或)

■SF十OF=0-A>B

■SF十OF=1-AvB

您^大平臺課程

《微機(jī)原理及接口技術(shù)》LJ.ZHu第3章指令系統(tǒng)75/138

INC和DEC增量減量指令

■格式:INC/DECOPRD

■執(zhí)行:

INC:OPRD+1-OPRD

DEC:OPRD-1-OPRD

■操作數(shù)類型:通用寄存器、存儲器

■INCSI

INCVAL

■DECBX

■影響標(biāo)志位A,0,P,S和乙但不影響C

主要用于在循環(huán)程序中修改地址指針和循環(huán)次

數(shù)并數(shù)等

大平臺課程《微機(jī)原理及接口技術(shù)》LJ.ZHu第3章指令系統(tǒng)76/138

NEG取負(fù)指令

■格式:NEGOPR

■執(zhí)行:求補(bǔ)、符號取反力口負(fù)號

OPR=Q-OPR或正數(shù)?,A負(fù)數(shù)

取絕對值

OPR=OPR+1

■操作數(shù):通用寄存器、存儲器

MOVAX,93A4H

NEGAX;A

溫馨提示

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

評論

0/150

提交評論