微機(jī)原理與接口技術(shù)知識(shí)點(diǎn)總結(jié)重點(diǎn)_第1頁
微機(jī)原理與接口技術(shù)知識(shí)點(diǎn)總結(jié)重點(diǎn)_第2頁
微機(jī)原理與接口技術(shù)知識(shí)點(diǎn)總結(jié)重點(diǎn)_第3頁
微機(jī)原理與接口技術(shù)知識(shí)點(diǎn)總結(jié)重點(diǎn)_第4頁
微機(jī)原理與接口技術(shù)知識(shí)點(diǎn)總結(jié)重點(diǎn)_第5頁
已閱讀5頁,還剩50頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

《微機(jī)原理與接口技術(shù)》復(fù)習(xí)參考資料

教師:萬顯榮

復(fù)習(xí)資料說明:

1、標(biāo)有紅色星號(hào)3的內(nèi)容為重點(diǎn)內(nèi)容

3、本資料末尾附有“《微機(jī)原理與接口技術(shù)》綜合練習(xí)題與答案錯(cuò)誤修正”和“《微機(jī)原理

與接口技術(shù)》綜合練習(xí)題與答案中不作要求的部分”,請注意查看。

第一章概述

一、計(jì)算機(jī)中的數(shù)制

1、無符號(hào)數(shù)的表示方法:

(1)十進(jìn)制計(jì)數(shù)的表示法

特點(diǎn):以十為底,逢十進(jìn)一;

共有0-9十個(gè)數(shù)字符號(hào)。

(2)二進(jìn)制計(jì)數(shù)表示方法:

特點(diǎn):以2為底,逢2進(jìn)位;

只有0和1兩個(gè)符號(hào)。

(3)十六進(jìn)制數(shù)的表示法:

特點(diǎn):以16為底,逢16進(jìn)位;

有0-9及A—F(表示10~15)共16個(gè)數(shù)字符號(hào)。

2、各種數(shù)制之間的轉(zhuǎn)換

(1)非十進(jìn)制數(shù)到十進(jìn)制數(shù)的轉(zhuǎn)換

按相應(yīng)進(jìn)位計(jì)數(shù)制的權(quán)表達(dá)式展開,再按十進(jìn)制求和。(見書本123,124)

(2)十進(jìn)制數(shù)制轉(zhuǎn)換為二進(jìn)制數(shù)制

?十進(jìn)制一二進(jìn)制的轉(zhuǎn)換:

整數(shù)部分:除2取余;

小數(shù)部分:乘2取整。

?十進(jìn)制一十六進(jìn)制的轉(zhuǎn)換:

整數(shù)部分:除16取余;

小數(shù)部分:乘16取整。

以小數(shù)點(diǎn)為起點(diǎn)求得整數(shù)和小數(shù)的各個(gè)位。

(3)二進(jìn)制與十六進(jìn)制數(shù)之間的轉(zhuǎn)換

用4位二進(jìn)制數(shù)表示1位十六進(jìn)制數(shù)

3、無符號(hào)數(shù)二進(jìn)制的運(yùn)算(見教材P5)

4、二進(jìn)制數(shù)的邏輯運(yùn)算

特點(diǎn):按位運(yùn)算,無進(jìn)借位

(1)與運(yùn)算

只有A、B變量皆為1時(shí),與運(yùn)算的結(jié)果就是1

(2)或運(yùn)算

A、B變量中,只要有一個(gè)為1,或運(yùn)算的結(jié)果就是1

(3)非運(yùn)算

(4)異或運(yùn)算

A、B兩個(gè)變量只要不同,異或運(yùn)算的結(jié)果就是1

二、計(jì)算機(jī)中的碼制(重點(diǎn)Q)

1、對于符號(hào)數(shù),機(jī)器數(shù)常用的表示方法有原碼、反碼和補(bǔ)碼三種。數(shù)X的原碼記作[X]原,

反碼記作[X]反,補(bǔ)碼記作[X]補(bǔ)。

注意:對正數(shù),三種表示法均相同。

它們的差別在于對負(fù)數(shù)的表示。

(1)原碼

定義:

符號(hào)位:0表示正,1表示負(fù);

數(shù)值位:真值的絕對值。

注意:數(shù)0的原碼不唯一

(2)反碼

定義:

若X>0,則[不反=[不原

若X<0,則區(qū)]反=對應(yīng)原碼的符號(hào)位不變,數(shù)值部分按位求反

注意:數(shù)0的反碼也不唯一

⑶補(bǔ)碼

定義:

若X>0,則兇補(bǔ)=兇反=兇原

若X<0,則以]補(bǔ)=兇反X

注意:機(jī)器字長為8時(shí),數(shù)0的補(bǔ)碼唯一,同為00000000

2、8位二進(jìn)制的表示范圍:

原碼:-127~+127

反碼:-127~+127

補(bǔ)碼:-128~+127

3、特殊數(shù)10000000

?該數(shù)在原碼中定義為:-0

?在反碼中定義為:-127

?在補(bǔ)碼中定義為:-128

?對無符號(hào)數(shù):(10000000)2=128

三、信息的編碼

1、十進(jìn)制數(shù)的二進(jìn)制數(shù)編碼

用4位二進(jìn)制數(shù)表示一位卜進(jìn)制數(shù)。有兩種表示法:壓縮BCD碼和非壓縮BCD碼。

(1)壓縮BCD碼的每一位用4位二進(jìn)制表示,00007001表示0~9,一個(gè)字節(jié)表示兩位

十進(jìn)制數(shù)。

(2)非壓縮BCD碼用一個(gè)字節(jié)表示一位十進(jìn)制數(shù),高4位總是0000,低4位的0000~1001

表示0~9

2、字符的編碼

計(jì)算機(jī)采用7位二進(jìn)制代碼對字符進(jìn)行編碼

(1)數(shù)字0~9的編碼是0110000~0111001,它們的高3位均是011,后4位正好與其對應(yīng)

的二進(jìn)制代碼(BCD碼)相符。

(2)英文字母A~Z的ASCH碼從1000001(41H)開始順序遞增,字母a~z的ASCII碼

從1100001(61H)開始順序遞增,這樣的排列對信息檢索十分有利。

第二章微機(jī)組成原理

第一節(jié)、微機(jī)的結(jié)構(gòu)

1、計(jì)算機(jī)的經(jīng)典結(jié)構(gòu)一一馮.諾依曼結(jié)構(gòu)

(1)計(jì)算機(jī)由運(yùn)算器、控制器、輸入設(shè)備和輸出設(shè)備五大部分組成(運(yùn)算器和控制器又稱

為CPU)

(2)數(shù)據(jù)和程序以二進(jìn)制代碼形式不加區(qū)分地存放在存儲(chǔ)器總,存放位置由地址指定,數(shù)

制為二進(jìn)制。

(3)控制器是根據(jù)存放在存儲(chǔ)器中的指令序列來操作的,并由一個(gè)程序計(jì)數(shù)器控制指令的

執(zhí)行。

3、系統(tǒng)總線的分類

(1)數(shù)據(jù)總線(DataBus),它決定了處理器的字長。

(2)地址總線(AddressBus),它決定系統(tǒng)所能直接訪問的存儲(chǔ)器空間的容量。

(3)控制總線(ControlBus)

第二節(jié)、8086微處理器

1、8086是一種單片微處理芯片,其內(nèi)部數(shù)據(jù)總線的寬度是16位,外部數(shù)據(jù)總線寬度也是

16位,片內(nèi)包含有控制計(jì)算機(jī)所有功能的各種電路。

8086地址總線的寬度為20位,有1MB(22°)尋址空間。

2、8086CPU由總線接口部件BIU和執(zhí)行部件EU組成。BIU和EU的操作是異步的,為

8086取指令和執(zhí)行指令的并行操作體統(tǒng)硬件支持。

3、8086處理器的啟動(dòng)

4、寄存器結(jié)構(gòu)(重點(diǎn)

8086微處理器包含有13個(gè)16位的寄存器和9位標(biāo)志位。

4個(gè)通用寄存器(AX,BX,CX,DX)

4個(gè)段寄存器(CS,DS,SS,ES)

4個(gè)指針和變址寄存器(SP,BP,SLDI)

指令指針(IP)

1)、通用寄存器

(1)8086含4個(gè)16位數(shù)據(jù)寄存器,它們又可分為8個(gè)8位寄存器,即:

?AX-AH,AL

?BX3BH,BL

?CX9CH,CL

?DX3DH,DL

常用來存放參與運(yùn)算的操作數(shù)或運(yùn)算結(jié)果

(2)數(shù)據(jù)寄存器特有的習(xí)慣用法

?AX:累加器。多用于存放中間運(yùn)算結(jié)果。所有I/O指令必須都通過AX與接口傳送信息;

?BX:基址寄存器。在間接尋址中用于存放基地址;

?CX:計(jì)數(shù)寄存器。用于在循環(huán)或串操作指令中存放循環(huán)次數(shù)或重復(fù)次數(shù);

?DX:數(shù)據(jù)寄存器。在32位乘除法運(yùn)算時(shí),存放高16位數(shù);在間接尋址的I/O指令中存

放I/O端口地址。

2)、指針和變址寄存器

?SP:堆棧指針寄存器,其內(nèi)容為棧頂?shù)钠频刂罚?/p>

?BP:基址指針寄存器,常用于在訪問內(nèi)存時(shí)存放內(nèi)存單元的偏移地址。

?SI:源變址寄存器

?DI:目標(biāo)變址寄存器

變址寄存器常用于指令的間接尋址或變址尋址。

3)、段寄存器

CS:代碼段寄存器,代碼段用于存放指令代碼

DS:數(shù)據(jù)段寄存器

ES:附加段寄存器,數(shù)據(jù)段和附加段用來存放操作數(shù)

SS:堆棧段寄存器,堆棧段用于存放返回地址,保存寄存器內(nèi)容,傳遞參數(shù)

4)、指令指針(IP)

16位指令指針寄存器,其內(nèi)容為下一條要執(zhí)行的指令的偏移地址。

5)、標(biāo)志寄存器

(1)狀態(tài)標(biāo)志:

?進(jìn)位標(biāo)志位(CF):運(yùn)算結(jié)果的最高位有進(jìn)位或有借位,則CF=1

?輔助進(jìn)位標(biāo)志位(AF):運(yùn)算結(jié)果的低四位有進(jìn)位或借位,則AF=1

?溢出標(biāo)志位(OF):運(yùn)算結(jié)果有溢出,則0F=1

?零標(biāo)志位(ZF):反映指令的執(zhí)行是否產(chǎn)生一個(gè)為零的結(jié)果

?符號(hào)標(biāo)志位(SF):指出該指令的執(zhí)行是否產(chǎn)生一個(gè)負(fù)的結(jié)果

?奇偶標(biāo)志位(PF):表示指令運(yùn)算結(jié)果的低8位“1”個(gè)數(shù)是否為偶數(shù)

(2)控制標(biāo)志位

?中斷允許標(biāo)志位(IF):表示CPU是否能夠響應(yīng)外部可屏蔽中斷請求

?跟蹤標(biāo)志(TF):CPU單步執(zhí)行

5、8086的引腳及其功能(重點(diǎn)掌握以下引腳)

?AD15~AD0:雙向三態(tài)的地址總線,輸入/輸出信號(hào)

?INTR:可屏蔽中斷請求輸入信號(hào),高電平有效??赏ㄟ^設(shè)置IF的值來控制。

?NMI:非屏蔽中斷輸入信號(hào)、不能用軟件進(jìn)行屏蔽。

?RESET:復(fù)位輸入信號(hào),高電平有效。復(fù)位的初始狀態(tài)見P21

?MN/MX:最小最大模式輸入控制信號(hào)。

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

說明:8086指令系統(tǒng)這章為重點(diǎn)章節(jié),對下面列出的指令都要求掌握。

第一節(jié)8086尋址方式

一、數(shù)據(jù)尋址方式(重點(diǎn)△)

1、立即尋址

操作數(shù)(為一常數(shù))直接由指令給出

(此操作數(shù)稱為立即數(shù))

立即尋址只能用于源操作數(shù)

例:

MOVAX,1C8FII

MOVBYTEPTR[2A00H],8FH

錯(cuò)誤例:

XMOV2A00H,AX;錯(cuò)誤!

指令操作例:MOVAX,3102H;AX93102H

執(zhí)行后,(AH)=31H,(AL)=02H

2、寄存器尋址

(1)操作數(shù)放在某個(gè)寄存器中

(2)源操作數(shù)與目的操作數(shù)字長要相同

(3)寄存器尋址與段地址無關(guān)

例:

MOVAX,BX

MOV[3F00H],AX

MOVCL,AL

錯(cuò)誤例:

XMOVAX,BL;字長不同

XMOVES:AX,DX;寄存器與段無關(guān)

3、直接尋址

(1)指令中直接給出操作數(shù)的16位偏移地址偏移地址也稱為有效地址(EA,Effective

Address)

(2)默認(rèn)的段寄存器為DS,但也可以顯式地指定其他段寄存器一一稱為段超越前綴

(3)偏移地址也可用符號(hào)地址來表示,如ADDR、VAR

例:

MOVAX,[2A00H]

MOVDX,ES:[2A00II]

MOVSI,TABLE_PTR

4、間接尋址

?操作數(shù)的偏移地址(有效地址EA)放在寄存器中

?只有SI、DLBX和BP可作間址寄存器

?例:MOVAXJBX]

MOVCL,CS:[DI]

錯(cuò)誤例:XMOVAX,[DX]

XMOVCL,[AX]

5、寄存器相對尋址

?EARli]址寄存器的內(nèi)容加上一個(gè)8/16位的位移量

?例:MOVAX,[BX+8]

MOVCX,TABLE[SI]

MOVAX,|BP|;默認(rèn)段寄存器為SS

?指令操作例:MOVAX,DATA[BX]

若(DS)=6000H,(BX)=1000H,DATA=2A00H,

(63A00H)=66H,(63A01H)=55H

則物理地址=60000H+1000H+2A00H=63A00H

指令執(zhí)行后:(AX)=5566H

6、基址變址尋址

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

由基址寄存器(BX或BP)給出—基址尋址方式

由變址寄存器(SI或DI)給出—變址尋址方式

由一個(gè)基址寄存器的內(nèi)容和一個(gè)變址寄存器的內(nèi)容相加而形成操作數(shù)的偏移地址,稱為

基址-變址尋址。

EA=(BX)+(SI)或(DI);

EA=(BP)+(SI)或(DI)

同一組內(nèi)的寄存器不能同時(shí)出現(xiàn)。

注意:除了有段跨越前綴的情況外,當(dāng)基址寄存器為BX時(shí)、操作數(shù)應(yīng)該存放在數(shù)據(jù)段DS

中,當(dāng)基址寄存器為BP時(shí),操作數(shù)應(yīng)放在堆棧段SS中。例:

MOVAX,[BX][SI]

MOVAX,[BX+SI]

MOVAX,DS:[BP][DI]

錯(cuò)誤例:

XMOVAX,[BX][BP]

XMOVAX,[DI][SI]

指令操作例:MOVAX,[BX][SI]

假定:(DS)=8000H,(BX)=2000H,SI=1OOOH

貝ij物理地力上=80000H+2000H+1000H=83OOOH

指令執(zhí)行后:(AL)=[83OOOH]

(AH)=[83OO1HJ

7、相對基址變址尋址

?在基址-變址尋址的基礎(chǔ)上再加上一個(gè)相對位移量

EA=(BX)+(SI)或(DI)+8位或16位位移量;

EA=(BP)+(SI)或(DD+8位或16位位移量

指令操作例:MOVAX,DATA[DI][BX]

若(DS)=8000H,(BX)=2000H,(DI)=1000H,DATA=200H

則指令執(zhí)行后(AH)=[83021H],(AL)=[83020H]

寄存器間接、寄存器相對、基址變址、相對基址變址四種尋址方式的比較:

尋址方式指令操作數(shù)形式

■寄存器間接只有一個(gè)寄存器(BX/BP/SI/DI之一)

■寄存器相對一個(gè)寄存器加上位移量

■基址一變址兩個(gè)不同類別的寄存器

■相對基址-變址兩個(gè)不同類別的寄存器加上位移量

二、地址尋址方式(了解有4類,能判斷)

簡要判斷依據(jù)(指令中間的單詞):

段內(nèi)直接short,near

段內(nèi)間接word

段間直接far

段間間接dword

第二節(jié)8086指令系統(tǒng)

一、數(shù)據(jù)傳送指令(重點(diǎn)△)

1、通用傳送指令

(1)MOVdest,src;dest-src

傳送的是字節(jié)還是字取決于指令中涉及的寄存器是8位還是16位。

具體來說可實(shí)現(xiàn):

①M(fèi)OVmem/regl,mem/reg2

指令中兩操作數(shù)中至少有一個(gè)為寄存器

②MOVreg,data;立即數(shù)送寄存器

③MOVmem,data;立即數(shù)送存儲(chǔ)單元

④MOVacc,mem;存儲(chǔ)單元送累加器

⑤MOVmem,acc;累加器送存儲(chǔ)單元

(6)MOVsegreg,mem/reg;存儲(chǔ)單元/寄存器送段寄存器

⑦M(jìn)OVmem/reg,segreg;段寄存器送存儲(chǔ)單元/寄存器

MOV指令的使用規(guī)則

①IP不能作目的寄存器

②不允許mem-mem

③不允許segreg*-segreg

④立即數(shù)不允許作為目的操作數(shù)

⑤不允許segreg-立即數(shù)

⑥源操作數(shù)與目的操作數(shù)類型要一致

⑦當(dāng)源操作數(shù)為單字節(jié)的立即數(shù),而目的操作數(shù)為間址、變址、基址+變址的內(nèi)存數(shù)時(shí),必

須用PTR說明數(shù)據(jù)類型。如:MOV[BX],12H是錯(cuò)誤的。

(2)、堆棧指令

什么是堆棧?

按“后進(jìn)先出(LIFO)”方式工作的存儲(chǔ)區(qū)域。堆棧以字為單位進(jìn)行壓入彈出操作。

規(guī)定由SS指示堆棧段的段基址,堆棧指針SP始終指向堆棧的頂部,SP的初值規(guī)定了所

用堆棧區(qū)的大小。堆棧的最高地址叫棧底。

①壓棧指令PUSH

PUSHsrc;src為16位操作數(shù)

例:PUSHAX;將AX內(nèi)容壓棧

執(zhí)行操作:(SP)-1一高字節(jié)AH

(SP)-2一低字節(jié)AL

(SP)-(SP)-2

注意進(jìn)棧方向是高地址向低地址發(fā)展。'

②彈出指令POP

POPdest

例:POPBX;將棧頂內(nèi)容彈至BX

執(zhí)行操作:(BL)一(SP)

(BH)-(SP)+1

(SP)-(SP)+2

堆棧指令在使用時(shí)需注意的幾點(diǎn):

①堆棧操作總是按字進(jìn)行

②不能從棧頂彈出一個(gè)字給CS

③堆棧指針為SSSP,SP永遠(yuǎn)指向棧頂

④SP自動(dòng)進(jìn)行增減量(-2,+2)

(3)、交換指令XCHG

格式:XCHGreg,mem/reg

功能:交換兩操作數(shù)的內(nèi)容。

要求:兩操作數(shù)中必須有一個(gè)在寄存器中;

操作數(shù)不能為段寄存器和立即數(shù);

源和目地操作數(shù)類型要一致。

舉例:XCHGAX,BX

XCHG[2000],CL

(4)查表指令XLAT

執(zhí)行的操作:AL-[(BX)+(AL)]

又叫查表轉(zhuǎn)換指令,它可根據(jù)表項(xiàng)序號(hào)查出表中對應(yīng)代碼的內(nèi)容。執(zhí)行時(shí)先將表的首地址

(偏移地址)送到BX中,表項(xiàng)序號(hào)存于AL中。

2、輸入輸出指令

只限于用累加器AL或AX來傳送信息。

功能:(累加器)*-I/O端口

(1)輸入指令I(lǐng)N

格式:

INacc,PORT;PORT端口號(hào)0?255H

INacc,DX;DX表示的端口范圍達(dá)64K

例:INAL,80H;(AL)一(80H端口)

INAL,DX;(AL)一((DX))

(2)輸出指令OUT

格式:OUTport,acc

OUTDX,acc

例:OUT68H,AX;(69H,68H)-(AX)

OUTDX,AL;((DX))—(AL)

在使用間接尋址的IN/OUT指令時(shí),要事先用傳送指令把I/O端口號(hào)設(shè)置到DX寄存器

如:

MOVDX,220H

INAL,DX;將220H端口內(nèi)容讀入AL

3、目標(biāo)地址傳送指令

(1)LEA

傳送偏移地址

格式:LEAreg,mem;將指定內(nèi)存單元的偏移地址送到指定寄存器

要求:

1)源操作數(shù)必須是一個(gè)存儲(chǔ)器操作數(shù);

2)目的操作數(shù)必須是一個(gè)16位的通用寄存器。

例:LEABX,[SI+10H]

設(shè):(SI)=1000H

則執(zhí)行該指令后,(BX)=1010H

?注意以下二條指令差別:

LEABX,BUFFER

MOVBX,BUFFER

前者表示將符號(hào)地址為BUFFER的存儲(chǔ)單元的偏移地址取到BX中;后者表示將BUFFER存

儲(chǔ)單元中的內(nèi)容取到BX中。

下面兩條指令等效:

LEABX,BUFFER

MOVBX,OFFSETBUFFER

其中OFFSETBUFFER表示存儲(chǔ)器單元BUFFER的偏移地址。

二者都可用于取存儲(chǔ)器單元的偏移地址,但LEA指令可以取動(dòng)態(tài)的地址,OFFSET只能取

靜態(tài)的地址。

二、算術(shù)運(yùn)算指令

1、加法指令

(1)不帶進(jìn)位的加法指令A(yù)DD

格式:ADDacc,data

ADDmem/reg,data

ADDimem/reg1,mem/r毀

實(shí)例

ADDAL,30H

ADDSI,[BX+20H]

ADDCX,SI

ADD[DI],200H

?ADD指令對6個(gè)狀態(tài)標(biāo)志均產(chǎn)生影響。

例:已知(BX)=D75FH

指令A(yù)DDBX.8046H執(zhí)行后,狀態(tài)標(biāo)志各是多少?

D75FH=1110011101011111

8046H=1000000001000110

1111II

0110011110100101

結(jié)果:C=1,Z=0,P=0,A=1,0=1,S=0

判斷溢出與進(jìn)位(重點(diǎn)△)

從硬件的角度:默認(rèn)參與運(yùn)算的操作數(shù)都是有符號(hào)數(shù),當(dāng)兩數(shù)的符號(hào)位相同,而和的結(jié)果相

異時(shí)有溢出,則OF=1,否則OF=0

(2)帶進(jìn)位的加法ADC

ADC指令在形式上和功能上與ADD類似,只是相加時(shí)還要包括進(jìn)位標(biāo)志CF的內(nèi)容,例如:

ADCAL,68H;AL-(AL)+68H+(CF)

ADCAX,CX;AX-(AX)+(CX)+(CF)

ADCBX,[DI];BX-(BX)+[DI+1][DI]+(CF)

(3)加1指令I(lǐng)NC

格式:INCreg/mem

功能:類似于C語言中的++操作:對指定的操作數(shù)加1

例:INCAL

INCSI

INCBYTEPTR[BX+4]

注:本指令不影響CF標(biāo)志。

(4)非壓縮BCD碼加法調(diào)整指令A(yù)AA

AAA指令的操作:

如果AL的低4位>9或AF=1,則:

①AL=(AL)+6,(AH)=(AH)+1,AF-1

②AL高4位清零

(3)CF-AF

否則AL高4位清零

(5)壓縮BCD碼加法調(diào)整指令DAA

?兩個(gè)壓縮BCD碼相加結(jié)果在AL中,通過DAA調(diào)整得到一個(gè)正確的壓縮BCD碼.

?指令操作(調(diào)整方法):

若AL的低4位>9或AF=1

貝i」(AL)-(AL)+6,AF-1

若AL的高4位>9或CF=1

貝l」(AL)-(AL)+60H,CF-1

?除OF外,DAA指令影響所有其它標(biāo)志。

?DAA指令應(yīng)緊跟在ADD或AOC指令之后。

2、減法指令

(1)不考慮借位的減法指令SUB

格式:SUBdest,src

操作:dest*-(dest)-(src)

注:1.源和目的操作數(shù)不能同時(shí)為存儲(chǔ)器操作數(shù)

2.立即數(shù)不能作為目的操作數(shù)

指令例子:

SUBAL,60H

SUB[BX+20I1],DX

SUBAX,CX

(2)考慮借位的減法指令SBB

SBB指令主要用于多字節(jié)的減法。

格式:SBBdest,src

操作:dest*-(dest)-(src)-(CF)

指令例子:

SBBAX,CX

SBBWORDPTR[SI],2080H

SBB[SI],DX

(3)減1指令DEC

作用類似于C語言中的“一一”操作符。

格式:DECopr

操作:opr*-(opr)-l

指令例子:

DECCL

DECBYTEPTR[DI+2]

DECSI

(4)求補(bǔ)指令NEG

格式:NEGopr

操作:opr-O-(opr)

對一個(gè)操作數(shù)取補(bǔ)碼相當(dāng)于用0減去此操作數(shù),故利用NEG指令可得到負(fù)數(shù)的絕對值。

例:若(AL)=0FCH,則執(zhí)行NEGAL后,

(AL)=04H,CF=1

(5)比較指令CMP

格式:CMPdest,src

操作:(dest)-(src)

CMP也是執(zhí)行兩個(gè)操作數(shù)相減,但結(jié)果不送目標(biāo)操作數(shù),其結(jié)果只反映在標(biāo)志位上。

指令例子:

CMPAL,0AH

CMPCX,SI

CMPDI,IBX+031

(6)非壓縮BCD碼減法調(diào)整指令A(yù)AS

對AL中由兩個(gè)非壓縮的BCD碼相減的結(jié)果進(jìn)行調(diào)整。調(diào)整操作為:

若AL的低4位>9或AF=1,則:

①AL-(AL)-6,AH-(AH)T,AFT

②AL的高4位清零

③CF-AF

否則:AL的高4位清零

(7)壓縮BCD碼減法調(diào)整指令DAS

對AL中由兩個(gè)壓縮BCD碼相減的結(jié)果進(jìn)行調(diào)整。調(diào)整操作為:

若AL的低4位>9或AF=1,則:

AL+(AL)-6,且AF+1

若AL的高4位>9或CF=1,則:

AL+(AL)-60H,且CF-1

DAS對OF無定義,但影響其余標(biāo)志位。

DAS指令要求跟在減法指令之后。

3、乘法指令

進(jìn)行乘法時(shí):8位*8位一16位乘積

16位*16位一32位乘積

(1)無符號(hào)數(shù)的乘法指令MUL(MEM/REG)

格式:MULsrc

操作:字節(jié)操作數(shù)(AX)=(AL)X(src)

字操作數(shù)(DX,AX)-(AX)X(src)

指令例子:

MULBL;(AL)X(BL),乘積在AX中

MULCX;(AX)X(CX),乘積在DX,AX中

MULBYTEPTR[BX]

(2)有符號(hào)數(shù)乘法指令I(lǐng)MUL

格式與MUL指令類似,只是要求兩操作數(shù)均為有符號(hào)數(shù)。

指令例子:

IMULBL;(AX)—(AL)x(BL)

IMULWORDPTR[SI];

(DX,AX)^(AX)x([SI+l][SI])

注意:MUL/IMUL指令中

?AL(AX)為隱含的乘數(shù)寄存器;

?AX(DX,AX)為隱含的乘積寄存器;

?SRC不能為立即數(shù);

?除CF和OF外,對其它標(biāo)志位無定義。

4、除法指令

進(jìn)行除法時(shí):16位/8位-8位商

32位/16位-*16位商

對被除數(shù)、商及余數(shù)存放有如下規(guī)定:

被除數(shù)商余數(shù)

字節(jié)除法AXALAH

字除法DX:AXAXDX

(1)無符號(hào)數(shù)除法指令DIV

格式:DIVsre

操作:字節(jié)操作(AL)-(AX)/(SRC)的商

(AH)-(AX)/(SRC)的余數(shù)

字操作(AX)一(DX,AX)/(SRC)的商

(DX)一(DX,AX)/(SRC)的余數(shù)

指令例子:

DIVCL

DIVWORDPTR[BX]

(2)有符號(hào)數(shù)除法指令I(lǐng)DIV

格式:IDIVsre

操作與DIV類似。商及余數(shù)均為有符號(hào)數(shù),且余數(shù)符號(hào)總是與被除數(shù)符號(hào)相同。

注意:對于DIV/IDIV指令

AX(DX,AX)為隱含的被除數(shù)寄存器。

AL(AX)為隱含的商寄存器。

AH(DX)為隱含的余數(shù)寄存器。

src不能為立即數(shù)。

對所有條件標(biāo)志位均無定

關(guān)于除法操作中的字長擴(kuò)展問題

?除法運(yùn)算要求被除數(shù)字長是除數(shù)字長的兩倍,若不滿足則需對被除數(shù)進(jìn)行擴(kuò)展,否則產(chǎn)生錯(cuò)

誤。

?對于無符號(hào)數(shù)除法擴(kuò)展,只需將AH或DX清零即可。

?對有符號(hào)數(shù)而言,則是符號(hào)位的擴(kuò)展??墒褂们懊娼榻B過的符號(hào)擴(kuò)展指令CBW和CWD

三、邏輯運(yùn)算和移位指令

1、邏輯運(yùn)算指令

(1)邏輯與AND

對兩個(gè)操作數(shù)進(jìn)行按位邏輯“與”操作。

格式:ANDdest,src

用途:保留操作數(shù)的某幾位,清零其他位。

例1:保留AL中低4位,高4位清0。

ANDAL,OFH

(2)邏輯或OR

對兩個(gè)操作數(shù)進(jìn)行按位邏輯”或“操作。

格式:ORdest,src

用途:對操作數(shù)的某幾位置1;對兩操作數(shù)進(jìn)行組合。

例1:把AL中的非壓縮BCD碼變成相應(yīng)十進(jìn)制數(shù)的ASCII碼。

ORAL,30H

(3)邏輯非NOT

對操作數(shù)進(jìn)行按位邏輯''非"操作。格式:NOTmem/reg

例:NOTCX

NOTBYTEPTR[DI]

(4)邏輯異或XOR

對兩個(gè)操作數(shù)按位進(jìn)行“異或"操作。

格式:XORdest,src

用途:對reg清零(自身異或)

把reg/mem的某幾位變反(與'1'異或)

例1:把AX寄存器清零。

①M(fèi)OVAX,0

②XORAX,AX

③ANDAX,0

④SUBAX,AX

(5)測試指令TEST

操作與AND指令類似,但不將“與“的結(jié)果送回,只影響標(biāo)志位。

TEST指令常用于位測試,與條件轉(zhuǎn)移指令一起用。

例:測試AL的內(nèi)容是否為負(fù)數(shù)。

TESTAL,80H;檢查AL中D7=l?

JNZMINUS;是1(負(fù)數(shù)),轉(zhuǎn)MINUS

……;否則為正數(shù)

2、移位指令

(1)非循環(huán)移位指令(重點(diǎn)層)

算術(shù)左移指令SAL(ShiftArithmeticLeft)

算術(shù)右移指令SAR(ShiftArithmeticRight)

邏輯左移指令SHL(ShiftLeft)

邏輯右移指令SHR(ShiftRight)

這4條指令的格式相同,以SAL為例:

CL;移位位數(shù)大于1時(shí)

SALmem/reg

1;移位位數(shù)等于1時(shí)

A算術(shù)移位——把操作數(shù)看做有符號(hào)數(shù);

邏輯移位——把操作數(shù)看做無符號(hào)數(shù)。

A移位位數(shù)放在CL寄存器中,如果只移1位,也

可以直接寫在指令中。例如:

MOVCL,4

SHRAL,CL;AL中的內(nèi)容右移4位

A影響C,P,S,Z,0標(biāo)志。

A結(jié)果未溢出時(shí):

左移1位三操作數(shù)*2

右移1位三操作數(shù)/2

例:把AL中的數(shù)x乘10

因?yàn)?0=8+2=23+2】,所以可用移位實(shí)現(xiàn)乘10操作。程序如下:

MOVCL,3

SALAL,1;2x

MOVAH,AL

SALAL,1;4x

SALAL,1;Sx

ADDAL,AH;8x+2x=1Ox

四、控制轉(zhuǎn)移指令

1、轉(zhuǎn)移指令

(1)無條件轉(zhuǎn)移指令JMP

格式:JMPlabel

本指令無條件轉(zhuǎn)移到指定的目標(biāo)地址,以執(zhí)行從該地址開始的程序段。

(2)條件轉(zhuǎn)移指令(補(bǔ)充內(nèi)容)(重點(diǎn)層)

①根據(jù)單個(gè)標(biāo)志位設(shè)置的條件轉(zhuǎn)移指令

JB/JC;低于,或CF=1,則轉(zhuǎn)移

JNB/JNC/JAE;高于或等于,或CF=O,則轉(zhuǎn)移

JP/JPE;奇偶標(biāo)志PF=1(偶),則轉(zhuǎn)移

JNP/JPO;奇偶標(biāo)志PF=O(奇),則轉(zhuǎn)移

JZ/JE;結(jié)果為零億F=l),則轉(zhuǎn)移

JNZ/JNE;結(jié)果不為零(ZF=O),則轉(zhuǎn)移

JS;SF=1,則轉(zhuǎn)移

JNS;SF=O,則轉(zhuǎn)移

JO;OF=1,則轉(zhuǎn)移

JNO;OF=0,則轉(zhuǎn)移

②根據(jù)組合條件設(shè)置的條件轉(zhuǎn)移指令

這類指令主要用來判斷兩個(gè)數(shù)的大小。

口判斷無符號(hào)數(shù)的大小

?JA高于則轉(zhuǎn)移

條件為:CF=OAZF=O,即A>B

?JNA/JBE低于或等于則轉(zhuǎn)移

條件為:CF=1VZF=1,即AWB

?JBA<B則轉(zhuǎn)移

?JNBA》B則轉(zhuǎn)移

★判斷有符號(hào)數(shù)的大小

?JG;大于則轉(zhuǎn)移(A>B)

條件為:(SF十OF=0)/\ZF=0

?JGE;大于或等于則轉(zhuǎn)移(ANB)

條件為:(SF十OF=0)VZF=1,JLE;小于或等于則轉(zhuǎn)移(AWB)

條件為:(SF十OF=1)VZF=1

?JL;小于則轉(zhuǎn)移(AVB=

條件為:(SF?OF=1)AZF=0

2、循環(huán)控制指令

?用在循環(huán)程序中以確定是否要繼續(xù)循環(huán)。

?循環(huán)次數(shù)通常置于CX中。

?轉(zhuǎn)移的目標(biāo)應(yīng)在距離本指令-128?+127的范圍之內(nèi)。

?循環(huán)控制指令不影響標(biāo)志位。

(l)LOOP

格式:LOOPlabel

操作:(CX)-1-*CX;

若(CX)#O,則轉(zhuǎn)至label處執(zhí)行;

否則退出循環(huán),執(zhí)行LOOP后面的指令。

LOOP指令與下面的指令段等價(jià):

DECCX

JNZlabel

3、過程調(diào)用指令

(1)調(diào)用指令CALL

一般格式:CALLsub;s處為子程序的入口

4、中斷指令

(l)INTn執(zhí)行類型n的中斷服務(wù)程序,N=0?255

五、處理器控制指令

1、標(biāo)志位操作

(1)CF設(shè)置指令

CLCOfCFSTC1-CFCMCCF變反

(2)DF設(shè)置指令

CLDOfDF(串操作的指針移動(dòng)方向從低到高)

STD1-DF(串操作的指針移動(dòng)方向從高到低)

(3)IF設(shè)置指令

CLI0-IF(禁止INTR中斷)STI1-IF(開放INTR中斷)

2、HLT(halt)

執(zhí)行HLT指令后,CPU進(jìn)入暫停狀態(tài)。

第四章8086匯編語言程序設(shè)計(jì)

第一節(jié)偽指令(重點(diǎn)

CPU指令與偽指令之間的區(qū)別:

(l)CPU指令是給CPU的命令,在運(yùn)行時(shí)由CPU執(zhí)行,每條指令對應(yīng)CPU的一種特定的

操作。而偽指令是給匯編程序的命令,在匯編過程中由匯編程序進(jìn)行處理。

(2)匯編以后,每條CPU指令產(chǎn)生一一對應(yīng)的目標(biāo)代碼;而偽指令則不產(chǎn)生與之相應(yīng)的目標(biāo)

代碼。

1、數(shù)據(jù)定義偽指令

(1)數(shù)據(jù)定義偽指令的一般格式為:

?[變量名]偽指令操作數(shù)[,操作數(shù)…]

DB用來定義字節(jié)(BYTE)

DW用來定義字(WORD)

DD用來定義雙字(DWORD)

(2)操作數(shù)的類型可以是:

①常數(shù)或常數(shù)表達(dá)式

?例如:DATA_BYTEDB10,5,1OH

DATA_WORDDW1OOH,100,-4

DATA_DWDD2*30,0FFFBH

。可以為字符串(定義字符串最好使用DB)

?例如:charlDB'AB'

&可以為變量

也可以為?號(hào)操作符

例如:XDB5,?,6

?號(hào)只是為了給變量保留相應(yīng)的存儲(chǔ)單元,而不賦予變量某個(gè)確定的初值。

◎重復(fù)次數(shù):NDUP(初值[,初值…])

?例如:ZERODB2DUP(3,5)

XYZDB2DUP(0,2DUP(1,3),5)

我在偽操作的操作數(shù)字段中若使用$,則表示的是地址計(jì)數(shù)器的當(dāng)前值。

2、補(bǔ)充內(nèi)容:

(1)類型PTR地址表達(dá)式例如:MOVBYTEPTR[BX],12H

INCBYTEPTR[BX]

注意:單操作數(shù)指令,當(dāng)操作數(shù)為基址、變址、基+變的時(shí)候必須定義

3、符號(hào)定義偽指令

(DEQU

格式:名字EQU表達(dá)式

EQU偽指令將表達(dá)式的值賦予一個(gè)名字,以后可用這個(gè)名字來代替上述表達(dá)式。

例:CONSTANTEQU100

NEW_PORTEQUPORT_VAL+1

⑵=(等號(hào))

與EQU類似,但允許重新定義

例:

I

I

EMP=7;值為7

I

I

EMP=EMP+1;值為8

⑶LABEL

LABEL偽指令的用途是定義標(biāo)號(hào)或變量的類型

格式:名字LABEL類型

變量的類型可以是BYTE,WORD,DWORD。標(biāo)號(hào)的類型可以是NEAR或FAR

4、段定義偽指令

與段有關(guān)的偽指令有:

SEGMENT、ENDS、ASSUME、ORG

(1)段定義偽指令的格式如下:

段名SEGMENT[定位類型][組合類型]「類別」

I

I

段名ENDS

SEGMENT和ENDS

這兩個(gè)偽指令總是成對出現(xiàn),二者前面的段名一致。二者之間的刪節(jié)部分,對數(shù)據(jù)段、

附加段及堆棧段,一般是符號(hào)、變量定義等偽指令。對于代碼段則是指令及偽指令。此外,

還必須明確段和段寄存器的關(guān)系,這可由ASSUME語句來實(shí)現(xiàn)。

(2)ASSUME

格式:

ASSUME段寄存器名:段名[,段寄存器名:段名

ASSUME偽指令告訴匯編程序,將某一個(gè)段寄存器設(shè)置為某一個(gè)邏輯段址,即明確指出

源程序中邏輯段與物理段之間的關(guān)系。

(3)ORG

偽指令ORG規(guī)定了段內(nèi)的起始地址或偏移地址,其格式為:

ORG〈表達(dá)式〉

表達(dá)式的值即為段內(nèi)的起始地址或偏移地址,從此地址起連續(xù)存放程序或數(shù)據(jù)。

5、匯編程序的一般結(jié)構(gòu)(重點(diǎn)(記住)

DATASEGMENT

DATAENDS

CODESEGMENT

ASSUMECS:CODE,DS:DATA

BGN:MOVAX,DATA

MOVDS,AX

MOVAH,4CH

INT21H

CODEENDS

ENDBGN

第三節(jié)程序設(shè)計(jì)

1、順序程序的設(shè)計(jì)(略)

2、分支程序的設(shè)計(jì)

典型例題:

1X>0

0x=o

-1X<0

?程序?yàn)椋?/p>

MOVAL,X

CMPAL,0

JGEBIG

MOVY,-1

JMPEXIT

BIG:JEEQUL

MOVY,1

JMPEXIT

EQUL:MOVY,0

EXIT:....

3、循環(huán)程序見講義。

?用計(jì)數(shù)控制循環(huán)

第一章計(jì)算機(jī)基礎(chǔ)知識(shí)

本章的主要內(nèi)容為不同進(jìn)位計(jì)數(shù)制計(jì)數(shù)方法、不同進(jìn)位制數(shù)之間相互轉(zhuǎn)換的

方法、數(shù)和字符在計(jì)算機(jī)中的表示方法、簡單的算術(shù)運(yùn)算以及計(jì)算機(jī)系統(tǒng)的組成。

下邊將本章的知識(shí)點(diǎn)作了歸類,圖1為本章的知識(shí)要點(diǎn)圖,圖1.2為計(jì)算機(jī)系統(tǒng)

組成的示意圖。

第二章8086微處理器

本章要從應(yīng)用角度上理解8086CPU的內(nèi)部組成、編程結(jié)構(gòu)、引腳信號(hào)功

能、最小工作模式的系統(tǒng)配置、8086的存儲(chǔ)器組織、基本時(shí)序等概念。下面這

一章知識(shí)的結(jié)構(gòu)圖。

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

本章重點(diǎn)是8086CPU指令的尋址方式,每條指令的格式、功能及標(biāo)志的影

響;同時(shí)還涉及到存儲(chǔ)器單元的物理地址計(jì)算、標(biāo)志位填寫和堆棧操作。下圖

為本章知識(shí)結(jié)構(gòu)圖。

第四章匯編語言程序設(shè)計(jì)

本章主要內(nèi)容是匯編語言類別、偽指令語句格式和作用、基本程序結(jié)構(gòu)、調(diào)

用程序和被調(diào)用程序之間數(shù)據(jù)傳遞途徑以及匯編源程序上機(jī)調(diào)試過程。

本章重點(diǎn)是閱讀程序和編寫程序。下邊是本章的知識(shí)結(jié)構(gòu)圖。

第五章半導(dǎo)體存儲(chǔ)器

半導(dǎo)體存儲(chǔ)器是用半導(dǎo)體器件作為存儲(chǔ)介質(zhì)的存儲(chǔ)器。本章討論半導(dǎo)體存儲(chǔ)

器芯片的類型、存儲(chǔ)原理、引腳功能、如何與CPU(或系統(tǒng)總線)連接等問題。

本章知識(shí)結(jié)構(gòu)圖如下。

第六章輸入輸出接口

本章討論輸入/輸出接口的基本概念,包括輸入/輸出接口的作用、內(nèi)部結(jié)構(gòu)、傳送信息的分

析、10端口編址以及主機(jī)通過接口與外設(shè)之間數(shù)據(jù)傳送的方式。下邊是本章的知識(shí)結(jié)構(gòu)圖。

第七章中斷與中斷控制器

本章主要內(nèi)容:中斷的基本概念、CPU響應(yīng)中斷的條件、中斷響應(yīng)過程、中斷服務(wù)程序的

執(zhí)行;8086/8088中斷系統(tǒng);可編程中斷控制器8259A的引腳功能、編程結(jié)構(gòu)以及工作工程。

第八章定時(shí)器/計(jì)數(shù)器8253及應(yīng)用

本章主要內(nèi)容是定時(shí)器/計(jì)算器的應(yīng)用場合;如何實(shí)現(xiàn)定時(shí)/計(jì)數(shù);可編程計(jì)數(shù)器/定時(shí)器8253

芯片的內(nèi)部結(jié)構(gòu)、引腳功能、計(jì)數(shù)原理、6種工作方式下的工作條件和輸出波形特征。下邊

是知識(shí)要點(diǎn)圖。

第九章A/D和D/A轉(zhuǎn)換

本章重點(diǎn)是A/D轉(zhuǎn)換的任務(wù)和轉(zhuǎn)換原理,D/A轉(zhuǎn)換的任務(wù)和轉(zhuǎn)換原理,常用A/D轉(zhuǎn)換器(ADC)

集成芯片和D/A轉(zhuǎn)換器(DAC)集成芯片的外部引腳功能、內(nèi)部結(jié)構(gòu)、工作過程、性能指標(biāo)以

及實(shí)際應(yīng)用。

如下圖所示,以8088微處理器為核心的IBMPC/XT機(jī)與DAC0832連接,實(shí)現(xiàn)波形發(fā)生器。

IBMPC/XT機(jī)使用10根地址線A0~A9尋址I/O端口,AEN為地址允許信號(hào),低電平時(shí)選

中端口。DAC0832的參考電壓VREF=-5V,VREF的范圍為0~5V,計(jì)算式為

VREF,其中,N是由DAC0832轉(zhuǎn)換的數(shù)字量對應(yīng)的十進(jìn)制值。V。a的輸出

范圍是-5V~5V。

(1)根據(jù)下圖一所示的DAC0832的硬件連接,說明其工作方式。

⑵假如DAC0832端口地址為140H,請?jiān)谙聢D一中畫出相應(yīng)的譯碼電路。

(3)現(xiàn)有1ms的延時(shí)子程序DELAY,請編寫程序片段實(shí)現(xiàn)輸出右圖二的所示波形。

第一章計(jì)算機(jī)基礎(chǔ)知識(shí)

本章的主要內(nèi)容為不同進(jìn)位計(jì)數(shù)制計(jì)數(shù)方法、不同進(jìn)位制數(shù)之間相互轉(zhuǎn)換的

方法、數(shù)和字符在計(jì)算機(jī)中的表示方法、簡單的算術(shù)運(yùn)算以及計(jì)算機(jī)系統(tǒng)的組成。

下邊將本章的知識(shí)點(diǎn)作了歸類,圖1為本章的知識(shí)要點(diǎn)圖,圖1.2為計(jì)算機(jī)系統(tǒng)

組成的示意圖。

第二章8086微處理器

本章要從應(yīng)用角度上理解8086CPU的內(nèi)部組成、編程結(jié)構(gòu)、引腳信號(hào)功

能、最小工作模式的系統(tǒng)配置、8086的存儲(chǔ)器組織、基本時(shí)序等概念。下面這

一章知識(shí)的結(jié)構(gòu)圖。

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

本章重點(diǎn)是8086CPU指令的尋址方式,每條指令的格式、功能及標(biāo)志的影

響;同時(shí)還涉及到存儲(chǔ)器單元的物理地址計(jì)算、標(biāo)志位填寫和堆棧操作。下圖

為本章知識(shí)結(jié)構(gòu)圖。

第四章匯編語言程序設(shè)計(jì)

本章主要內(nèi)容是匯編語言類別、偽指令語句格式和作用、基本程序結(jié)構(gòu)、調(diào)

用程序和被調(diào)用程序之間數(shù)據(jù)傳遞途徑以及匯編源程序上機(jī)調(diào)試過程。

本章重點(diǎn)是閱讀程序和編寫程序。下邊是本章的知識(shí)結(jié)構(gòu)圖。

第五章半導(dǎo)體存儲(chǔ)器

半導(dǎo)體存儲(chǔ)器是用半導(dǎo)體器件作為存儲(chǔ)介質(zhì)的存儲(chǔ)器。本章討論半導(dǎo)體存儲(chǔ)

器芯片的類型、存儲(chǔ)原理、引腳功能、如何與CPU(或系統(tǒng)總線)連接等問題。

本章知識(shí)結(jié)構(gòu)圖如下。

第六章輸入輸出接口

本章討論輸入/輸出接口的基本概念,包括輸入/輸出接口的作用、內(nèi)部結(jié)構(gòu)、傳送信息的分

析、IO端口編址以及主機(jī)通過接口與外設(shè)之間數(shù)據(jù)傳送的方式。下邊是本章的知識(shí)結(jié)構(gòu)圖。

第七章中斷與中斷控制器

本章主要內(nèi)容:中斷的基本概念、CPU響應(yīng)中斷的條件、中斷響應(yīng)過程、中斷服務(wù)程序的

執(zhí)行;8086/8088中斷系統(tǒng);可編程中斷控制器8259A的引腳功能、編程結(jié)構(gòu)以及工作工程。

第八章定時(shí)器/計(jì)數(shù)器8253及應(yīng)用

本章主要內(nèi)容是定時(shí)器/計(jì)算器的應(yīng)用場合;如何實(shí)現(xiàn)定時(shí)/計(jì)數(shù);可編程計(jì)數(shù)器/定時(shí)器8253

芯片的內(nèi)部結(jié)構(gòu)、引腳功能、計(jì)數(shù)原理、6種工作方式下的工作條件和輸出波形特征。下邊

是知識(shí)要點(diǎn)圖。

第九章A/D和D/A轉(zhuǎn)換

本章重點(diǎn)是A/D轉(zhuǎn)換的任務(wù)和轉(zhuǎn)換原理,D/A轉(zhuǎn)換的任務(wù)和轉(zhuǎn)換原理,常用A/D轉(zhuǎn)換器(ADC)

集成芯片和D/A轉(zhuǎn)換器(DAC)集成芯片的外部引腳功能、內(nèi)部結(jié)構(gòu)、工作過程、性能指標(biāo)以

及實(shí)際應(yīng)用。

如下圖所示,以8088微處理器為核心的IBMPC/XT機(jī)與DAC0832連接,實(shí)現(xiàn)波形發(fā)生器。

IBMPC/XT機(jī)使用10根地址線A0~A9尋址I/O端口,AEN為地址允許信號(hào),低電平時(shí)選

中端口。DAC0832的參考電壓VREF=-5V,VREF的范圍為0~5V,計(jì)算式為

(N

K?,i=-L—、VREF,其中,N是由DAC0832轉(zhuǎn)換的數(shù)字量對應(yīng)的十進(jìn)制值。丫皿的輸出

\255J

范圍是-5V~5V。

(1)根據(jù)下圖一所示的DAC0832的硬件連接,說明其工作方式。

(2)假如DAC0832端口地址為140H,請?jiān)谙聢D一中畫出相應(yīng)的譯碼電路。

(3)現(xiàn)有1ms的延時(shí)子程序DELAY,請編寫程序片段實(shí)現(xiàn)輸出右圖二的所示波形。

1.什么是中斷?什么是中斷向量?中斷向量表的地址范圍?

答:中斷就是CPU在執(zhí)行當(dāng)前程序時(shí)由于內(nèi)外部事件引起CPU暫時(shí)停止當(dāng)前

正在執(zhí)行的程序而轉(zhuǎn)向執(zhí)行請求CPU暫時(shí)停止的內(nèi)外部事件的服務(wù)程序,該程

序處理完后又返回繼續(xù)執(zhí)行被停止的程序;中斷向量是中斷處理子程序的入口

地址;地址范圍是00000H-003FFH。

3.微機(jī)系統(tǒng)的硬件由哪幾部分組成?

答:微型計(jì)算機(jī)(微處理器,存儲(chǔ)器,I/O接口,系統(tǒng)總線),外圍設(shè)備,電源。

4.什么是微機(jī)的總線,分為哪三組?

答:是傳遞信息的一組公用導(dǎo)線。分三組:地址總線,數(shù)據(jù)總線,控制總線。

5.8086/8088CPU的內(nèi)部結(jié)構(gòu)分為哪兩大模塊,各自的主要功能是什么?

答:總線接口部件(BIU)功能:根據(jù)執(zhí)行單元EU的請求完成CPU與存儲(chǔ)器

或10設(shè)備之間的數(shù)據(jù)傳送。執(zhí)行部件(EU),作用:從指令對列中取出指令,

對指令進(jìn)行譯碼,發(fā)出相應(yīng)的傳送數(shù)據(jù)或算術(shù)的控制信號(hào)接受由總線接口部件

傳送來的數(shù)據(jù)或把數(shù)據(jù)傳送到總線接口部件進(jìn)行算術(shù)運(yùn)算。

6.8086指令隊(duì)列的作用是什么?

答:作用是:在執(zhí)行指令的同時(shí)從內(nèi)存中取了一條指令或下幾條指令,取來的

指令放在指令隊(duì)列中這樣它就不需要象以往的計(jì)算機(jī)那樣讓CPU輪番進(jìn)行取指

和執(zhí)行的工作,從而提高CPU的利用率。

7.8086的存儲(chǔ)器空間最大可以為多少?怎樣用16位寄存器實(shí)現(xiàn)對20位地址

的尋址?完成邏輯地址到物理地址轉(zhuǎn)換的部件是什么?

答:8086的存儲(chǔ)器空間最大可以為2A20(1MB);8086計(jì)算機(jī)引入了分段管理

機(jī)制,當(dāng)CPU尋址某個(gè)存儲(chǔ)單元時(shí),先將段寄存器內(nèi)的內(nèi)容左移4位,然后加

上指令中提供的16位偏移地址形成20位物理地址。

8.段寄存器CS=1200H,指令指針寄存器IP=FF00H,此時(shí),指令的物理地址

為多少?指向這一物理地址的CS值和IP值是唯一的嗎?

答:指令的物理地址為21F00H;CS值和IP值不是唯一的,例如:CS=2100H,

IP=0F00Ho

9.設(shè)存儲(chǔ)器的段地址是4ABFH,物理地址為50000H,其偏移地址為多少?

答:偏移地址為54100Ho(物理地址=段地址*16+偏移地址)

10.8086/8088CPU有哪幾個(gè)狀態(tài)標(biāo)志位,有哪幾個(gè)控制標(biāo)志位?其意義各是什

么?

答:狀態(tài)標(biāo)志位有6個(gè):ZF,SF,CF,OF,AF,PF。其意思是用來反映指

令執(zhí)行的特征,通常是由CPU根據(jù)指令執(zhí)行結(jié)果自動(dòng)設(shè)置的;控制標(biāo)志位有3

個(gè):DF,IF,TFo它是由程序通過執(zhí)行特定的指令來設(shè)置的,以控制指令的操

作方式。

11.8086CPU的AD0-AD15是什么引腳?

答:數(shù)據(jù)與地址引腳

12.INTRsINTA、NMI、ALE、HOLD、HLDA引腳的名稱各是什么?

答:INTR是可屏蔽請求信號(hào),INTA中斷響應(yīng)信號(hào),NMI是不可屏蔽中斷請求

信號(hào),ALE是地址鎖存允許信號(hào),HOLD總線請求信號(hào),HLDA總線請求響應(yīng)

信號(hào)。

13.虛擬存儲(chǔ)器有哪兩部分組成?

答:有主存儲(chǔ)器和輔助存儲(chǔ)器。

14.在80x86中,什么是邏輯地址、線性地址、物理地址?

答:線性地址是連續(xù)的不分段的地址;邏輯地址是由程序提供的地址;物理地

址是內(nèi)存單元的實(shí)際地址。

15.段描述符分為哪幾種?

答:分為三大類,程序段描述符,系統(tǒng)段描述符,門描述符。

16.RAM有幾種,各有什么特點(diǎn)?ROM有幾種,各有什么特點(diǎn)?

答:RAM有兩種,SRAM(靜態(tài)RAM),它采用觸發(fā)器電路構(gòu)成一個(gè)二進(jìn)制位信

息的存儲(chǔ)單元,這種觸發(fā)器一般由6個(gè)晶體管組成,它讀出采用單邊讀出的原

理,寫入采用雙邊寫入原理;DRAM(動(dòng)態(tài)RAM),它集成度高,內(nèi)部存儲(chǔ)單

元按矩陣形式排列成存儲(chǔ)體,通常采用行,列地址復(fù)合選擇尋址法。ROM有5

種,固定掩摸編程ROM,可編程PROM,紫外光榛除可編程EPROM,電可榛

除的可編程EPROM,閃遞存儲(chǔ)器。

17.若用4K*1位的RAM芯片組成8K*8為的存儲(chǔ)器,需要多少芯片?

A19—A0地址線中哪些參與片內(nèi)尋址,哪些用做芯片組的片選信號(hào)?

答:需要16片芯片;其中A1LA0參與片內(nèi)尋址;A12做芯片組的片選信號(hào)。

18.若系統(tǒng)分別使用512K*8、1K*4、16K*8、64K*1的RAM,各需

要多少條地址線進(jìn)行尋址,各需要多少條數(shù)據(jù)線?

答:512K*8需要19條地址線,8條數(shù)據(jù)線。1K*4需要10條地址線,4條

數(shù)據(jù)線。16K*8需要14條地址線,8條數(shù)據(jù)線。64K*1需要14條地址線,

1條數(shù)據(jù)線。

19.某微機(jī)系統(tǒng)的RAM容量為8K*8,若首地址為

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論