清華大學微型計算機原理2_第1頁
清華大學微型計算機原理2_第2頁
清華大學微型計算機原理2_第3頁
清華大學微型計算機原理2_第4頁
清華大學微型計算機原理2_第5頁
已閱讀5頁,還剩93頁未讀, 繼續免費閱讀

下載本文檔

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

文檔簡介

第三章微處理器的

實模式軟件結構及程序設計

?從軟件的觀點來研究微處理器的內部結構。

?兩種工作模式:實地址模式和保護地址模式。

?了解工作模式的軟件結構是使用匯編語言進行

程序設計的必要條件。

第三章微處理器的

實模式軟件結構及程序設計

?指令:計算機按一定的命令來執行特定

的操作,這種命令叫指令。

?程序:一系列指令的集合。

第三章微處理器的

實模式軟件結構及程序設計

?程序設計語言的發展:

?機器語言:由二進制代碼編寫。

-如ASCH

?匯編語言:將二進制代碼用易于理解的符口

代替。

—如:ADD

?高級語言:利用類英語的語句和命令。

—如:BASIC,FORTRAN

第三章微處理器的

實模式軟件結構及程序設計

?微處理器的基本語言是機器語言,常用匯編語

言和高級語言編寫。

?編譯程序:將高級語言語句轉成機器碼的編譯

程序。

?匯編語言的優點。

第三章微處理器的

實模式軟件結構及程序設計

?2、微處理器實模式軟件模型

指令指針IP

段寄存器:CS,DS,SS,ES,FS,GS

藪據番存器:EAX,EBX,ECX,EDX

指針寄存器:ESP,EBP

變址寄存器:ESI,EDI

標志寄存器

控制寄存器

調試寄存器

測試寄存器

第三章微處理器的

實模式軟件結構及程序設計

?2、微處理器實模式軟件模型

微處理器有兩個獨立的存儲器和I/O地址空間。

為有效利用存儲器,數據按對準邊界原則排放。

字邊界地址是2的整數倍

雙字邊界地址是4的整數倍

第三章微處理器的

實模式軟件結構及程序設計

?2、微處理器實模式軟件模型

實模式下,指令地址及指令操作數的存儲器地址

采用邏輯地址,但真正從存儲器中取指或存取操作數

則采用物理地址。

實模式下,由邏輯地址到物理地址的生成:

物理地址=段地址*16(左移4位)+偏移地址

第三章微處理器的

實模式軟件結構及程序設計

?2、微處理器實模式軟件模型

堆棧是特殊的存儲區,臨時存放一些信息。

實模式下,SS段基址指向當前堆棧的最低地址,

SP和BP是偏移地址。

SP指向棧頂,既最后推入堆棧的數據存儲器地址。

當一個字推入堆棧時,SP自動減2

當一個雙字推入堆棧時,SP自動減4

當一個字彈出堆棧時,SP自動加2

當一個雙字彈出堆棧時,SP自動加4

第三章微處理器的

實模式軟件結構及程序設計

?3、微處理器的尋址模式

-尋址:訪問不同類型的操作數。

-尋址模式:

?寄存器操作數尋址

?立即操作數尋址

?存儲器操作數尋址

第三章微處理器的

實模式軟件結構及程序設計

?3、微處理器的尋址模式

?寄存器操作數尋址:指令的操作數存放在處理器

的內部寄存器中。

MOVEAX,BX

第三章微處理器的

實模式軟件結構及程序設計

?3、微處理器的尋址模式

?立即操作數尋址:指令的操作數就是指令的一部

分,這種形式的操作數叫立即數,其對應的尋址方

式叫立即數尋址。

?MOVEAL,15H

第三章微處理器的

實模式軟件結構及程序設計

?3、微處理器的尋址模式

?存儲器操作數尋址:

?為訪問存儲器的操作數,MPU要先計算操作數的

物理地址PA,然后讀或寫這個存儲器的操作數。

?PA=段地址(SBA):有效地址(EA)

?有效地址可用各種方法指定。

?如:EA=base+(index*scalefactor)+disp

第三章微處理器的

實模式軟件結構及程序設計

?3、微處理器的尋址模式

?存儲器操作數尋址一一直接尋址模式:指令的地址

碼部分直接給出操作數在存儲器中的地址。

raxn存儲器

操作數

?3、微處理器的尋址模式

?存儲器操作數尋址一一寄存器間接尋址:由指令的地

址碼取出的,是操作數的地址或指令的地址,MPU需以此為地

址再次訪問,才能取得數據。

OPA存儲器

Al

Al操作數

第三章微處理器的

實模式軟件結構及程序設計

?3、微處理器的尋址模式

?存儲器操作數尋址一一基址尋址:操作數的地址由

基址寄存器的內容加指令的地址碼部分。

raxn存儲器

r操作數

基址寄存器Jn

第三章微處理器的

實模式軟件結構及程序設計

?3、微處理器的尋址模式

?存儲器操作數尋址一一變址寄存器尋址:操作數的

地址由變址寄存器的內容加指令的地址碼部分。

通用寄存器

?3、微處理器的尋址模式

?存儲器操作數尋址一一基址+變址尋址模式:基址尋

址與變址尋址組合,形成功能更強的尋址模式。用于

訪問復雜的數據結構。如:二維數組。

?PA=段基址:基址+變址+偏移量

?PA=段基址:基址+變址*比例因子+偏移量

第三章微處理器的

實模式軟件結構及程序設計

?4、實模式指令系統

-指能為MPU所識別的一組指令的集合。

-它規定MPU所能執行的基本操作。

-不同類型的MPU具有不同的指令系統。

第三章微處理器的

實模式軟件結構及程序設計

?4、實模式指令系統

?80X86指令系統發展過程將飛

Z系統控制\

\統控制

/、/指令集八T\

y■指令出\

h本指令展《個”一

>擴孤

\+386特殊

\Y\指令w集y/

80881

80286

Uid實魯式

I\_8_0_3_8_6/

k_______/

第三章微處理器的

實模式軟件結構及程序設計

?4、實模式指令系統

-80386實模式指令系統按功能分成:

數據傳送指令

算術運算指令

邏輯運算指令

程序轉移指令

字符串操作指令

處理機控制指令

第三章微處理器的

實模式軟件結構及程序設計

?4、實模式指令系統一-一數據傳送指令

?1)MOV指令

?MOVD,S;(D)—(S)

第三章微處理器的

實模式軟件結構及程序設計

?4、實模式指令系統一一數據傳送指令

?1)MOV指令

?通用寄存器間數據傳送指令:MOVAL,AH

?立即數傳送到通用寄存器:MOVAL,OFH

?存儲器與通用寄存器間數據傳送:MOVAL,[SI]

?立即數傳送至存儲器:MOVBYTEFLD,40H

?段寄存器與16位通用寄存器間的數據傳送:MOVAX,CS

?段寄存器與存儲器間的數據傳送:MOVDS,[SI]

?通用寄存器與特殊寄存器間的數據傳送:MOVEAX,1

?MOVCRO,EAX

第三章微處理器的

實模式軟件結構及程序設計

?4、實模式指令系統一-一數據傳送指令

?2)符號擴展和零擴展傳送指令

MOVSX

MOVZX

第三章微處理器的

實模式軟件結構及程序設計

?4、實模式指令系統一-一數據傳送指令

?2)符號擴展傳送指令

MOVSXD,S;(D)——(S)

MOVSXEBX,AX

設(AX)=8000H,

指令執行后,(EBX)=0FFFF8000H

第三章微處理器的

實模式軟件結構及程序設計

?4、實模式指令系統一-一數據傳送指令

?2)零擴展傳送指令

MOVZXD,S;(D)^——(S)

MOVZXAX,AL

設(AL)=0A5H,

指令執行后,(AX)=00A5H

第三章微處理器的

實模式軟件結構及程序設計

?4、實模式指令系統一-一數據傳送指令

?3)XCHG指令

XCHGD,S;(D)<——(S)

XCHGAX,BX

設(AX)=1234H,(BX)=5678H,

指令反行后,(AX)=5678H,(BX)=1234H

第三章微處理器的

實模式軟件結構及程序設計

?4、實模式指令系統一-一數據傳送指令

?4)XLAT和XLATB指令

XLATB;(AD------((BX)+(AL))

用于查表

第三章微處理器的

實模式軟件結構及程序設計

?4、實模式指令系統一-一數據傳送指令

?4)XLAT和XLATB指令

XLAT;無操作數

XLATSource—table;設置形式操作數

XLAT段寄存器:Source-table;帶段超越的操作數

用于查表,操作數為形式操作數

第三章微處理器的

實模式軟件結構及程序設計

?4、實模式指令系統一一數據傳送指令

?5)地址傳送指令

LEA指令

LEAregl6,EA

LEAreg32,EA

EA為存儲器操作數,regl6,reg32為通用寄存器

第三章微處理器的

實模式軟件結構及程序設計

?4、實模式指令系統一一數據傳送指令

?5)地址傳送指令

LDS指令

LDSregl6,EA

LDSreg32,EA

EA為存儲器操作數,regl6,reg32為通用寄存器

(regl6>------(EA)(DS)<——(EA+2)

(reg32)<——(EA)(DS)-------(EA+4)

第三章微處理器的

實模式軟件結構及程序設計

?4、實模式指令系統一-一數據傳送指令

-6)堆棧操作指令

PUSH指令

PUSHS;SP<-SP-2,((SP)+1:(SP))<——(S)

源操作數S推入堆棧。堆棧指針SP減2,

操作數S壓入SP指定的棧頂中。

第三章微處理器的

實模式軟件結構及程序設計

?4、實模式指令系統一一數據傳送指令

-6)堆棧操作指令

POP指令

POPD;(D)<—((SP)+1:(SP)),SP—SP+2

把堆棧指針所指的棧頂存儲單元的

內容彈出至目的操作數D,堆棧指針SP加2。

第三章微處理器的

實模式軟件結構及程序設計

?4、實模式指令系統一一算術運算指令

?算術運算指令在運行時,會影響狀態標志位。

?多種數據格式:有符號,無符號

字節,字或雙字

二進制

BCD碼

ASCII瑪

第三章微處理器的

實模式軟件結構及程序設計

?4、實模式指令系統算術運算指令

?1)加法指令:ADD,ADC,INC,AAA,DAA

-ADD指令格式

ADDD,S;(D)--(S)+(D)

第三章微處理器的

實模式軟件結構及程序設計

?4、實模式指令系統算術運算指令

?1)加法指令:ADD,ADC,INC,AAA,DAA

-ADC指令格式

ADCD,S;(DA——(S)+(D)+(CF)

?ADC指令格式

FIRSTDW758DH,9A5CH

SECONDDW0A524H,8345H

THIRDDW3DUP(0)

LEASI,FIRST

LEADLSECOND

LEABX,THIRD

MOVAX,[SI]

ADDAX,[DI]

MOV|BX],AX

PUSHF

ADDSI,2

ADDDI,2

ADDBX,2

POPF

MOVAX,[SI]

ADCAX,[DI]

MOV|BX],AX

ADCWORDPTR[BX+2L0

第三章微處理器的

實模式軟件結構及程序設計

?4、實模式指令系統算術運算指令

?1)加法指令:ADD,ADC,INC,AAA,DAA

-INC指令格式

INCD;(D)^—(D)+1

第三章微處理器的

實模式軟件結構及程序設計

?4、實模式指令系統一-一算術運算指令

?1)加法指令:ADD,ADC,INC,AAA,DAA

-AAA指令格式--未組合的BCD加法調整指令

AAA

第三章微處理器的

實模式軟件結構及程序設計

?AAA指令格式--未組合的BCD加法調整指令

為什么要調整?

設未組合的BCD數為:09,08

兩數相加,00001001

—00001000

00010001

和為:11,顯然,運算結果發生錯誤。

第三章微處理器的

實模式軟件結構及程序設計

?AAA指令格式--未組合的BCD加法調整指令

經過調整:

設未組合的BCD數為:09,08

兩數相加,?00001001

00001000/AF=1>

0000

00010111

和為:17,調整后,結果正確。

第三章微處理器的

實模式軟件結構及程序設計

?4、實模式指令系統一-一算術運算指令

?1)加法指令:ADD,ADC,INC,AAA,DAA

-AAA指令格式--未組合的BCD加法調整指令

調整條件

IF(AL&OFH)>9ORAF=1THEN

AITAL+6,AH^AH+1,AF-1,CF-1,

ALfL&0FH

第三章微處理器的

實模式軟件結構及程序設計

?4、實模式指令系統算術運算指令

?1)加法指令:ADD,ADC,INC,AAA,DAA

-DAA指令格式--組合的BCD加法調整指令

DAA

第三章微處理器的

實模式軟件結構及程序設計

?4、實模式指令系統一-一算術運算指令

?1)加法指令:ADD,ADC,INC,AAA,DAA

-DAA指令格式--組合的BCD加法調整指令

調整條件

IF(AL&OFH)>9ORAF=1THENALAL+6,AFF

IF(AL&OFH)>90HORCF=1THENAL*2L+60H,CF*1

第三章微處理器的

實模式軟件結構及程序設計

?4、實模式指令系統算術運算指令

?2)減法指令:SUB,SBB,DEC,NEG,CMP,

■AAS,DAS

-SUB指令格式

;

■SUBD,S(D)—(D)—(S)

第三章微處理器的

實模式軟件結構及程序設計

?4、實模式指令系統算術運算指令

?2)減法指令:SUB,SBB,DEC,NEG,CMP,

■AAS,DAS

-SBB指令格式

SBBD,S;(D)-—(D)—(S)—(CF)

第三章微處理器的

實模式軟件結構及程序設計

?4、實模式指令系統算術運算指令

?2)減法指令:SUB,SBB,DEC,NEG,CMP,

■AAS,DAS

-DEC指令格式

■DECD(D)^—(D)—1

第三章微處理器的

實模式軟件結構及程序設計

?4、實模式指令系統算術運算指令

?2)減法指令:SUB,SBB,DEC,NEG,CMP,

■AAS,DAS

-NEG指令格式

;

■NEGD(D)—0—(D)

問題:當操作為80H時,執行NEG指令,結果怎樣?

第三章微處理器的

實模式軟件結構及程序設計

?4、實模式指令系統算術運算指令

?2)減法指令:SUB,SBB,DEC,NEG,CMP,

■AAS,DAS

-CMP指令格式

CMPD,S;(D)—(S)

DATASEGMENT

BLOCKDB1AH,5CH,62H,97H,OA5H,73H,O5H,3AH,4CH,1BH

MAXDB?

DATAENDS

CODESEGMENT

ASSUMECS:CODE,DS:DATA,ES:DATA

MAX-UNPROGFARAGAIN:CMPALJSI+1]

MOVAX,DATAJNCNEXT

MOVAL,[SI+1]

MOVDS,AXNEXT:INCSI

MOVES,AXDECCX

LEASI,BLOCKJNZAGAIN

MOVCX,9MOVMAX,AL

MOVAX,4C00H

MOVAL,[SI]

INT21H

MAX-UNENDP

CODEENDS

ENDMAX-UN

第三章微處理器的

實模式軟件結構及程序設計

?4、實模式指令系統算術運算指令

?2)減法指令:SUB,SBB,DEC,NEG,CMP,

AAS,DAS

-AAS指令格式

AAS

未組合BCD碼減法調整指令

第三章微處理器的

實模式軟件結構及程序設計

?4、實模式指令系統算術運算指令

?2)減法指令:SUB,SBB,DEC,NEG,CMP,

AAS,DAS

-DAS指令格式

DAS

組合BCD碼減法調整指令

第三章微處理器的

實模式軟件結構及程序設計

?4、實模式指令系統一-一算術運算指令

?3)乘法指令:MUL,IMUL,AAM

-無符號數乘法MUL指令格式

-有符號數乘法指令IMUL

-AAM指令格式(未組合的BCD碼乘法調整指令)

第三章微處理器的

實模式軟件結構及程序設計

?4、實模式指令系統一一-算術運算指令

?4)除法指令:DIV,IDIV,AAD,CBW,

■CWD,CWDE,CDQ

-無符號數除法DIV指令格式

-有符號數除法指令IDIV,CBW,CWD,CDQ,

-CWDE

-AAD指令格式

第三章微處理器的

實模式軟件結構及程序設計

?4、實模式指令系統—邏輯運算和移位指令

?1)邏輯運算指令

邏輯與指令AND

邏輯或指令OR

邏輯異或指令XOR

第三章微處理器的

實模式軟件結構及程序設計

?4、實模式指令系統—邏輯運算和移位指令

?)邏輯運算指令—邏輯與指令

ANDD,S;(D)--(D)A(S)

常用于位屏蔽

第三章微處理器的

實模式軟件結構及程序設計

?4、實模式指令系統—邏輯運算和移位指令

-1)邏輯運算指令—邏輯與指令

ANDD,S;(D>—(D)A(S)

常用于位屏蔽

第三章微處理器的

實模式軟件結構及程序設計

?4、實模式指令系統—邏輯運算和移位指令

-1)邏輯運算指令—測試指令

TESTD,S9(D)A(S)

第三章微處理器的

實模式軟件結構及程序設計

?4、實模式指令系統—邏輯運算和移位指令

-1)邏輯運算指令—邏輯或指令

ORD,S;(D>—(D)V(S)

常用于判斷或將BCD碼轉為ASCII

第三章微處理器的

實模式軟件結構及程序設計

?4、實模式指令系統—邏輯運算和移位指令

-1)邏輯運算指令—邏輯異或指令

XORD,S;(D?-(D)@(S)

相同為0,相異為1。用于清零。

第三章微處理器的

實模式軟件結構及程序設計

?4、實模式指令系統—邏輯運算和移位指令

-1)邏輯運算指令—邏輯非指令

NOTD;(D)--(D)

求反。

第三章微處理器的

實模式軟件結構及程序設計

?4、實模式指令系統—邏輯運算和移位指令

?21sHR2sAR2sHLD1sHRD

算術移位(左移,右移)

邏輯移位(左移,右移)

小循環(左移,右移)

大循環(左移,右移)

第三章微處理器的

實模式軟件結構及程序設計

?4、實模式指令系統—邏輯運算和移位指令

?2,移位指令一左移指令

SAL/SHLD,COUNT

屆■一輯左修

C0

操作數

第三章微處理器的

實模式軟件結構及程序設計

?4、實模式指令系統—邏輯運算和移位指令

?2)移位指令一左移指令

?左移指令可用于乘法運算。左移一位,操作數乘2。

SHLAX,1

MOVBX,AX

SHLAX,2

ADDAX,BX

AX中的數乘10

第三章微處理器的

實模式軟件結構及程序設計

?4、實模式指令系統—邏輯運算和移位指令

?2)移位指令一右移指令

SHRD,COUNT

0

操作數

邏輯右移一位,可使無符號數除以2。

第三章微處理器的

實模式軟件結構及程序設計

?4、實模式指令系統—邏輯運算和移位指令

?2)移位指令一右移指令

SARD,COUNT

操作數

邏輯右移一位,可使無符號數除以2。

第三章微處理器的

實模式軟件結構及程序設計

4、實模式指令系統一■一邏輯運算和移位指令

2)移位指令—右移指令

(AL)=84H

SARAL,1

?貝(J:(AL)=C2H

第三章微處理器的

實模式軟件結構及程序設計

?4、實模式指令系統——邏輯運算和移位指令

?2)移位指令一SHLD移位指令

SHLDDI,D2,COUNT

雙精度左移指令。

第三章微處理器的

實模式軟件結構及程序設計

?4、實模式指令系統——邏輯運算和移位指令

?2)移位指令一SHRD移位指令

SHRDDI,D2,COUNT

雙精度右移指令。

第三章微處理器的

實模式軟件結構及程序設計

?4、實模式指令系統—邏輯運算和移位指令

?3)旋轉指令ROL,ROR,RCL,RCR

小循環(左移,右移)ROL,ROR

大循環(左移,右移)RCL,RCR

第三章微處理器的

實模式軟件結構及程序設計

?4、實模式指令系統—邏輯運算和移位指令

?3)旋轉指令—小循環

ROLD,COUNT

第三章微處理器的

實模式軟件結構及程序設計

?4、實模式指令系統—邏輯運算和移位指令

?3)旋轉指令—小循環

RORD,COUNT

第三章微處理器的

實模式軟件結構及程序設計

?4、實模式指令系統—邏輯運算和移位指令

?3)旋轉指令—大循環

RCLD,COUNT

第三章微處理器的

實模式軟件結構及程序設計

?4、實模式指令系統—邏輯運算和移位指令

?3)旋轉指令—大循環

RCRD,COUNT

?例:將64位雙精度整數EDX:EAX乘以8

MOVCX,3

?AGAIN:SHLEAX,1

RCLEDX,1

DECCX

JNZAGAIN

第三章微處理器的

實模式軟件結構及程序設計

?4、實模式指令系統—邏輯運算和移位指令

-4)位測試和位掃描指令

是80386的擴展指令,用于測試寄存器或存儲器中

某一位的邏輯電平??蓪崿F置位,復位或求反。

第三章微處理器的

實模式軟件結構及程序設計

?4、實模式指令系統—邏輯運算和移位指令

-4)位測試和位掃描指令——位測試指令

位測試指令BT,BTR,BTS,BTC

第三章微處理器的

實模式軟件結構及程序設計

?4、實模式指令系統—邏輯運算和移位指令

?4)位測試和位掃描指令

BTD,S

例如:BTpX,7

(BX)=03F0H,執行后,(CF)=1。

第三章微處理器的

實模式軟件結構及程序設計

?4、實模式指令系統——邏輯運算和移位指令

?4)位測試和位掃描指令

BTRD,S;被測試位復位

BTSD,S;被測試位置位

BTCD,S;被測試位求反

第三章微處理器的

實模式軟件結構及程序設計

?4、實模式指令系統—邏輯運算和移位指令

-4)位測試和位掃描指令—位掃描指令

位掃描指令BSF,BSR

第三章微處理器的

實模式軟件結構及程序設計

?4、實模式指令系統—程序轉移指令

?1)轉移指令

無條件轉移:指令執行與狀態無關,改變程序執行順序。

條件轉移:視指定的條件是否滿足。滿足則轉,否則順序執行。

第三章微處理器的

實模式軟件結構及程序設計

?4、實模式指令系統—程序轉移指令

?1)轉移指令—無條件轉移指令

JMPAA-無條件跳轉

段內轉移

跳轉越過條

的指令件

AA*****下一條移

執行指)J段間轉移

第三章微處理器的

實模式軟件結構及程序設計

?4、實模式指令系統—程序轉移指令

第三章微處理器的

實模式軟件結構及程序設計

?4、實模式指令系統—程序轉移指令

?1)轉移指令—重復控制指令

LOOP標號DECCX

JNZAGAIN

LOOPZ

LOOPNZ

第三章微處理器的

實模式軟件結構及程序設計

?4、實模式指令系統—程序轉移指令

-1)轉移指令—重復控制指令

在一數據緩沖區尋找非零元素的起始地址,設緩沖區

BUFFER的數據個數為COUNT。

START:LEASI,BUFFER

MOVCX,COUNT

AGAIN:MOVAL,[SI]

INCSI

ORAL,AL

LOOPZAGAIN

HLT

第三章微處理器的

實模式軟件結構及程序設計

?4、實模式指令系統一一-程序轉移指令

?2)子程序調用CALL

主程序

-子程序調用:段內調用

?段間調用

-子程序返回指令RET

?RETF

第三章微處理器的

溫馨提示

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

評論

0/150

提交評論