版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
PAGEPAGE2教案授課題目第1章微型計(jì)算機(jī)基礎(chǔ)知識授課時(shí)數(shù)教學(xué)方法授課班級與時(shí)間教學(xué)目標(biāo)微型計(jì)算機(jī)的組成和各部分的作用,以及計(jì)算機(jī)中數(shù)的表示方法。技能目標(biāo):計(jì)算機(jī)中數(shù)的表示方法:原碼、反碼、補(bǔ)碼的關(guān)系。教學(xué)重點(diǎn)微型計(jì)算機(jī)的組成和各部分的作用,以及計(jì)算機(jī)中數(shù)的表示方法。教學(xué)難點(diǎn)計(jì)算機(jī)中數(shù)的表示方法:原碼、反碼、補(bǔ)碼的關(guān)系。教學(xué)內(nèi)容、方法及過程§1.1微型計(jì)算機(jī)的組成及工作原理1.1.1微型計(jì)算機(jī)中的基本概念1.微處理器(Microprocessor)2.微型計(jì)算機(jī)(1)單片微處理機(jī)(2)通用微型計(jì)算機(jī)3.微型計(jì)算機(jī)系統(tǒng)1.1.2微型計(jì)算機(jī)的基本結(jié)構(gòu)微型計(jì)算機(jī)的基本組成1.1.3微型計(jì)算機(jī)的基本工作過程微型計(jì)算機(jī)的基本工作過程是執(zhí)行程序的過程,也就是CPU自動(dòng)從程序存放的第1個(gè)存儲(chǔ)單元起,逐步取出指令、分析指令,并根據(jù)指令規(guī)定的操作類型和操作對象,執(zhí)行指令規(guī)定的相關(guān)操作。如此重復(fù),周而復(fù)始,直至執(zhí)行完程序的所有指令,從而實(shí)現(xiàn)程序的基本功能,這就是微型計(jì)算機(jī)的基本工作原理。工作過程:§1.2微處理器及其發(fā)展1.2.1微處理器的發(fā)展歷史1.2.2微處理器的內(nèi)部結(jié)構(gòu)1.總線部件2.預(yù)取部件3.譯碼器4.控制器5.運(yùn)算邏輯部件6.存儲(chǔ)器管理部件1.2.3Pentium系列微處理器1.2.3.1Pentium奔騰微處理器的主要特點(diǎn):1、標(biāo)量體系結(jié)構(gòu)2、雙流水線結(jié)構(gòu)1.2.3.2PentiumMMX的主要特點(diǎn)PentiumMMX是在奔騰芯片基礎(chǔ)上增加了MMX技術(shù)。1.2.4微處理器的發(fā)展趨勢§1.3數(shù)制與編碼1.3.1數(shù)制的表示1.常用數(shù)制(1)十進(jìn)制數(shù)我們熟悉的十進(jìn)制數(shù)有兩個(gè)主要特點(diǎn):·有十個(gè)不同的數(shù)字符號:0、1、2、…、9;·低位向高位進(jìn)、借位的規(guī)律是“逢十進(jìn)一”“借一當(dāng)十”的計(jì)數(shù)原則進(jìn)行計(jì)數(shù)。例如:1234.45=1×103+2×102+3×101+4×100+4×10-1+5×10-2式中的10稱為十進(jìn)制數(shù)的基數(shù),103、102、101、100、10-1稱為各數(shù)位的權(quán)。十進(jìn)制數(shù)用D結(jié)尾表示。(2)二進(jìn)制數(shù)在二進(jìn)制中只有兩個(gè)不同數(shù)碼:0和1,進(jìn)位規(guī)律是“逢二進(jìn)一”“借一當(dāng)二”的計(jì)數(shù)原則進(jìn)行計(jì)數(shù)。二進(jìn)制數(shù)用B結(jié)尾表示。例如,二進(jìn)制數(shù)11011011.01可表示為:(11011011.01)2==1×27+1×26+0×25+1×24+1×23+0×22+1×21+1×20+0×2-1+1×2-2(3)八進(jìn)制數(shù)在八進(jìn)制中有0、1、2…、7八個(gè)不同數(shù)碼,采用“逢八進(jìn)一”“借一當(dāng)八”的計(jì)數(shù)原則進(jìn)行計(jì)數(shù)。八進(jìn)制數(shù)用Q結(jié)尾表示。例如,八進(jìn)制數(shù)(503.04)Q可表示為:(503.04)Q=5×82+0×81+3×80+0×8-1+4×8-24)十六進(jìn)制數(shù)在十六進(jìn)制中有0、1、2…、9、A、B、C、D、E、F共十六個(gè)不同的數(shù)碼,采用“逢十六進(jìn)一”“借一當(dāng)十六”的計(jì)數(shù)原則進(jìn)行計(jì)數(shù)。十六進(jìn)制數(shù)用H結(jié)尾表示。例如,十六進(jìn)制數(shù)(4E9.27)H可表示為(4E9.27)H=4×162+14×161+9×160+2×16-1+7×16-22.不同進(jìn)制數(shù)之間的相互轉(zhuǎn)換表1-4列出了二、八、十、十六進(jìn)制數(shù)之間的對應(yīng)關(guān)系,熟記這些對應(yīng)關(guān)系對后續(xù)內(nèi)容的學(xué)習(xí)會(huì)有較大的幫助。1)二、八、十六進(jìn)制數(shù)轉(zhuǎn)換成為十進(jìn)制數(shù)根據(jù)各進(jìn)制的定義表示方式,按權(quán)展開相加,即可轉(zhuǎn)換為十進(jìn)制數(shù)?!纠?-1】將(10101)B,(72)Q,(49)H轉(zhuǎn)換為十進(jìn)制數(shù)。(10101)B=1×24+0×23+1×22+0×21+1×20=37(72)Q=7×81+2×80=58(49)H=4×161+9×160=73(2)十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)十進(jìn)制數(shù)轉(zhuǎn)換二進(jìn)制數(shù),需要將整數(shù)部分和小數(shù)部分分開,采用不同方法進(jìn)行轉(zhuǎn)換,然后用小數(shù)點(diǎn)將這兩部分連接起來。①整數(shù)部分:除2取余法。具體方法是:將要轉(zhuǎn)換的十進(jìn)制數(shù)除以2,取余數(shù);再用商除以2,再取余數(shù),直到商等于0為止,將每次得到的余數(shù)按倒序的方法排列起來作為結(jié)果。②小數(shù)部分:乘2取整法。具體方法是:將十進(jìn)制小數(shù)不斷地乘以2,直到積的小數(shù)部分為零(或直到所要求的位數(shù))為止,每次乘得的整數(shù)依次排列即為相應(yīng)進(jìn)制的數(shù)碼。最初得到的為最高有效數(shù)位,最后得到的為最低有效數(shù)字。(3)二進(jìn)制與八進(jìn)制之間的相互轉(zhuǎn)換由于23=8,故可采用“合三為一”的原則,即從小數(shù)點(diǎn)開始向左、右兩邊各以3位為一組進(jìn)行二-八轉(zhuǎn)換:若不足3位的以0補(bǔ)足,便可以將二進(jìn)制數(shù)轉(zhuǎn)換為八進(jìn)制數(shù)。反之,每位八進(jìn)制數(shù)用三位二進(jìn)制數(shù)表示,就可將八進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)。(4)二進(jìn)制與十六進(jìn)制之間的相互轉(zhuǎn)換由于24=16,故可采用“合四為一”的原則,即從小數(shù)點(diǎn)開始向左、右兩邊各以4位為一組進(jìn)行二—十六轉(zhuǎn)換,若不足4位的以0補(bǔ)足,便可以將二進(jìn)制數(shù)轉(zhuǎn)換為十六進(jìn)制數(shù)。反之,每位十六進(jìn)制數(shù)用四位二進(jìn)制數(shù)表示,就可將十六進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)。1.3.2常用的信息編碼二—十進(jìn)制BCD碼(Binary-CodedDecimal)二—十進(jìn)制BCD碼是指每位十進(jìn)制數(shù)用4位二進(jìn)制數(shù)編碼表示。由于4位二進(jìn)制數(shù)可以表示16種狀態(tài),可丟棄最后6種狀態(tài),而選用0000~1001來表示0~9十個(gè)數(shù)符。這種編碼又叫做8421碼。2.字符編碼(ASCII碼)數(shù)字0~9的ASCII碼為30H~39H。大寫英文字母A~Z的ASCII碼為41H~5AH。小寫英文字母a~z的ASCII碼為61H~7AH。3.奇偶校驗(yàn)碼§1.4計(jì)算機(jī)數(shù)值數(shù)據(jù)表示與運(yùn)算1.4.1二進(jìn)制數(shù)在計(jì)算機(jī)內(nèi)的表示1.機(jī)器數(shù)在計(jì)算機(jī)中,因?yàn)橹挥小?”和“1”兩種形式,所以數(shù)的正、負(fù)號,也必須以“0”和“1”表示。通常把一個(gè)數(shù)的最高位定義為符號位,用0表示正,1表示負(fù),稱為數(shù)符:其余位仍表示數(shù)值。把在機(jī)器內(nèi)存放的正、負(fù)號數(shù)碼化的數(shù)稱為機(jī)器數(shù),把機(jī)器外部由正、負(fù)號表示的數(shù)稱為真值數(shù)。要注意的是,機(jī)器數(shù)表示的范圍受到字長和數(shù)據(jù)的類型的限制。字長和數(shù)據(jù)類型定了,機(jī)器數(shù)能表示的數(shù)值范圍也就定了。例如,若表示一個(gè)整數(shù),字長為8位,則最大的正數(shù)為01111111,最高位為符號位,即最大值為127。若數(shù)值超出127,就要“溢出”。最小負(fù)數(shù)為10000000,最高位為符號位,即最小值為-128。2.數(shù)的定點(diǎn)和浮點(diǎn)表示計(jì)算機(jī)內(nèi)表示的數(shù),主要分成定點(diǎn)小數(shù)、定點(diǎn)整數(shù)與浮點(diǎn)數(shù)三種類型。(1)定點(diǎn)小數(shù)的表示法定點(diǎn)小數(shù)是指小數(shù)點(diǎn)準(zhǔn)確固定在數(shù)據(jù)某一個(gè)位置上的小數(shù)。一般把小數(shù)點(diǎn)固定在最高數(shù)據(jù)位的左邊,小數(shù)點(diǎn)前邊再設(shè)一位符號位。按此規(guī)則,任何一個(gè)小數(shù)都可以寫成:N=NSN-1N-2···N-M,NS為符號位(2)整數(shù)的表示法整數(shù)所表示的數(shù)據(jù)的最小單位為1,可以認(rèn)為它是小數(shù)點(diǎn)定在數(shù)值最低位右面的一種表示法。整數(shù)分為帶符號和不帶符號兩類。對帶符號的整數(shù),符號位放在最高位。可以寫成:N=NSNnNn-1···N2N1N0,NS為符號位一般定點(diǎn)數(shù)表示的范圍和精度都較小,在數(shù)值計(jì)算時(shí),大多數(shù)采用浮點(diǎn)數(shù)。(3)浮點(diǎn)數(shù)的表示方法浮點(diǎn)表示法對應(yīng)于科學(xué)(指數(shù))計(jì)數(shù)法,如數(shù)110.011可表示為:N=110.011=1.10011×2+10=11001.1×2-10=0.110011×2+11在計(jì)算機(jī)機(jī)中一個(gè)浮點(diǎn)數(shù)由兩部分構(gòu)成:階碼和尾數(shù),階碼是指數(shù),尾數(shù)是純小數(shù)。應(yīng)當(dāng)注意:浮點(diǎn)數(shù)的正、負(fù)是由尾數(shù)的數(shù)符確定,而階碼的正、負(fù)只決定小數(shù)點(diǎn)的位置,即決定浮點(diǎn)數(shù)的絕對值大小。帶符號數(shù)的表示在計(jì)算機(jī)中,帶符號數(shù)可以用不同方法表示,常用的有原碼、反碼和補(bǔ)碼。(1)原碼(2)反碼(3)補(bǔ)碼1.4.2補(bǔ)碼的運(yùn)算1.4.3邏輯運(yùn)算(1)“與”運(yùn)算。(2)“或”運(yùn)算。(3)“異或”運(yùn)算。教案授課題目第2章8086微處理器教研室主任教務(wù)科長授課時(shí)數(shù)教學(xué)方法教具授課班級與時(shí)間教學(xué)目標(biāo)知識目標(biāo):本章主要講述8086的硬件結(jié)構(gòu)、外部引腳、內(nèi)部寄存器的組織、和總線時(shí)序。技能目標(biāo):引腳功能和總線時(shí)序。教學(xué)重點(diǎn)本章主要講述8086的硬件結(jié)構(gòu)、外部引腳、內(nèi)部寄存器的組織、和總線時(shí)序。教學(xué)難點(diǎn)引腳功能和總線時(shí)序。教學(xué)內(nèi)容、方法及過程§2.18086CPU的結(jié)構(gòu)2.2.18086的結(jié)構(gòu)特點(diǎn)微處理器執(zhí)行一段程序通常是通過重復(fù)執(zhí)行如下步驟來完成。即:(1)
從內(nèi)存儲(chǔ)器中取出一條指令,分析指令操作碼;(2)
讀出一個(gè)操作數(shù)(如果指令需要操作數(shù));(3)
執(zhí)行指令;(4)
將結(jié)果寫入內(nèi)存儲(chǔ)器(如果指令需要)。1.總線接口部件(1)4個(gè)段地址寄存器CS--16位的代碼段寄存器DS--16位的數(shù)據(jù)段寄存器ES--16位的擴(kuò)展段寄存器SS--16位的堆棧段寄存器(2)16位的指令指針寄存器IP(3)20位的地址加法器(4)6字節(jié)的指令隊(duì)列。2.執(zhí)行部件(1)4個(gè)通用寄存器,即AX、BX、CX,DX;(2)4個(gè)專用寄存器,即基數(shù)指針寄存器BP,堆棧指針寄存器SP,源變址寄存器SI,目的變址寄存器DI;(3)標(biāo)志寄存器Flag;(4)算術(shù)邏輯單元ALU;8086的執(zhí)行部件(EU)有如下特點(diǎn):(1)4個(gè)通用寄存器既可以作為16位寄存器使用,也可以作為8位寄存器使用。(2)AX寄存器也常稱為累加器,8086指令系統(tǒng)中有許多指令都是通過累加器的動(dòng)作來執(zhí)行的。(3)加法器是算術(shù)邏輯部件主要部件,絕大部分指令的執(zhí)行都是由加法器完成的。(4)標(biāo)志寄存器共有16位,其中,7位未用狀態(tài)標(biāo)志有6個(gè),即SF、ZF,PF、CF,AF和OF。符號標(biāo)志SF(SignFlag):它和運(yùn)算結(jié)果的最高位相同。若運(yùn)算結(jié)果最高位為1,則SF=1,否則SF=0。零標(biāo)志ZF(ZeroFlag):如果當(dāng)前的運(yùn)算結(jié)果為零,則ZF=1,否則ZF=0。奇偶標(biāo)志PF(ParityFlag):如果運(yùn)算結(jié)果的低8位中所含的1的個(gè)數(shù)為偶數(shù),則PF=1,否則PF=0。進(jìn)位標(biāo)志CF(CarryFlag):當(dāng)執(zhí)行一個(gè)加法運(yùn)算使最高位產(chǎn)生進(jìn)位時(shí),或者執(zhí)行一個(gè)減法運(yùn)算引起最高位產(chǎn)生借位時(shí),則CF=1,否則CF=0。輔助進(jìn)位標(biāo)志AF(AuxiliaryCarryFlag):當(dāng)加法運(yùn)算時(shí),如果第三位往第四位有進(jìn)位,或者當(dāng)減法運(yùn)算時(shí),如果第三位從第四位有借位,則AF=1,否則AF=0。溢出標(biāo)志OF(OverflowFlag):當(dāng)運(yùn)算過程中產(chǎn)生溢出時(shí),會(huì)使OF=1,否則OF=0。控制標(biāo)志有3個(gè),即DF、IF、TF。方向標(biāo)志DF(DirectionFlag):這是控制串操作指令的標(biāo)志。如果DF=0,則串操作過程中地址會(huì)不斷增值,反之,如果DF=1,則串操作過程中地址會(huì)不斷減值。中斷標(biāo)志IF(1uterruptEnableFlay):這是控制可屏蔽中斷的標(biāo)志。如IF=0,則CPU不能對可屏蔽中斷請求作出響應(yīng),如果IF=1,則CPU可以接受可屏蔽中斷請求。跟蹤標(biāo)志TF(TrapFlay):如果TF=1,則CPU按跟蹤方式執(zhí)行指令。2.2.28086的總線工作周期在8086中,一個(gè)最基本的總線周期由4個(gè)時(shí)鐘周期組成①在T1狀態(tài),CPU往多路復(fù)用總線上發(fā)出地址信息,以指出要尋址的存儲(chǔ)單元及外設(shè)端口的地址。②在T2狀態(tài),CPU從總線上撤消地址,而使總線的低16位浮置成高阻狀態(tài),為傳輸數(shù)據(jù)作準(zhǔn)備??偩€的最高4位(A19~A16)用來輸出本總線周期狀態(tài)信息。這些狀態(tài)信息用來表示中斷允許狀態(tài)、當(dāng)前正在使用的段寄存器名等。③在T3狀態(tài),多路總線的高4位繼續(xù)提供狀態(tài)信息,而多路總線的低16位上出現(xiàn)由CPU寫出的數(shù)據(jù)或者CPU從存儲(chǔ)器或端口讀入的數(shù)據(jù)。④在有些情況下,被寫入數(shù)據(jù)或者被讀取數(shù)據(jù)的外設(shè)或存儲(chǔ)器不能及時(shí)地配合CPU傳送數(shù)據(jù)。這時(shí),外設(shè)或存儲(chǔ)器會(huì)通過“READY”信號線在T3狀態(tài)啟動(dòng)之前向CPU發(fā)一個(gè)“數(shù)據(jù)未準(zhǔn)備好”信號,于是CPU會(huì)在T3之后插入1個(gè)或多個(gè)附加的時(shí)鐘周期TW。TW也叫等待狀態(tài)。在Tw狀態(tài),總線上的信息情況和T3狀態(tài)的信息情況一樣。當(dāng)指定的存儲(chǔ)器或外設(shè)完成數(shù)據(jù)傳送時(shí),便在“READY”線上發(fā)出“準(zhǔn)備好”信號,CPU接收到這一信號后,會(huì)自動(dòng)脫離TW狀態(tài)面進(jìn)入T4狀態(tài).⑤在T4狀態(tài),總線周期結(jié)束。需要指出的是,只有在CPU和內(nèi)存或I/O接口之間傳輸數(shù)據(jù),以及填充指令隊(duì)列時(shí),CPU才執(zhí)行總線周期??梢?,如果在1個(gè)總線周期之后,不立即執(zhí)行下1個(gè)總線周期。那么,系統(tǒng)總線就處在空閑狀態(tài),此時(shí),執(zhí)行空閑周期。§2.28086/8088的引腳信號和工作模式2.3.1最小模式和最大模式的概念所謂最小模式,就是在系統(tǒng)中只有8086一個(gè)微處理器。在這種系統(tǒng)中,所有的總線控制信號都直接由8086產(chǎn)生,因此,系統(tǒng)中的總線控制邏輯電路被減到最少。最大模式是相對最小模式而言,在此系統(tǒng)中,包含兩個(gè)或兩個(gè)以上的微處理器,其中一個(gè)主處理器就是8086,其他的處理器稱為協(xié)處理器,它們是協(xié)助主處理器工作的。和8086配合的協(xié)處理器有兩個(gè)。一個(gè)是數(shù)值運(yùn)算協(xié)處理器8087,一個(gè)是輸入/輸出協(xié)處理器8089。2.3.28086的引腳信號和功能1.AD15~AD0地址/數(shù)據(jù)復(fù)用引腳(雙向工作)2.A19/S6~A16/S3地址/狀態(tài)復(fù)用引腳(輸出)3.BHE/S7高8位數(shù)據(jù)總線允許/狀態(tài)復(fù)用引腳(輸出)4.NMI非屏蔽中斷信號5.INTR可屏蔽中斷請求信號6.RD讀選通信號7.CLK時(shí)鐘信號8.RESET復(fù)位信號9.READY準(zhǔn)備就緒輸入信號10.TEST測試信號11.MN/MX最?。畲竽J娇刂菩盘?2.GND地和VCC電源2.3.38086最小工作方式2.3.48086最大工作方式當(dāng)MN/MX加上低電平時(shí),8086CPU工作在最大模式下。此時(shí)8086CPU工作于多處理器系統(tǒng)。1.總線控制器82882.總線仲裁控制器82892.3.58086系統(tǒng)復(fù)為和啟動(dòng)操作在復(fù)位的時(shí)候,代碼段寄存器CS和指令指針寄存器IP分別初始化為FFFFH和0000H。所以,8086/8088在復(fù)位之后再重新啟動(dòng)時(shí),便從內(nèi)存的FFFF0H處開始執(zhí)行指令,使系統(tǒng)在啟動(dòng)時(shí),能自動(dòng)進(jìn)入系統(tǒng)程序。在復(fù)位時(shí),由于標(biāo)志寄存器被清零,即所有標(biāo)志位都被清除了,因而,系統(tǒng)程序在啟動(dòng)時(shí),總是要通過指令來設(shè)置各有關(guān)標(biāo)志。復(fù)位信號RESET從高電平到低電平的跳變會(huì)觸發(fā)CPU內(nèi)部的一個(gè)復(fù)位邏輯電路,經(jīng)過7個(gè)時(shí)鐘周期之后,CPU就被啟動(dòng)而恢復(fù)正常工作,即從FFFF0H處開始執(zhí)行程序?!?.3存貯器組織2.4.1由段寄存器、段偏移地址確定物理地址20位物理地址=段寄存器的內(nèi)容×16+偏移地址
段寄存器的內(nèi)容×16(相當(dāng)于左移4位)變?yōu)?0位,再在低端16位加上16位的偏移地址,便可得到20位的物理地址。這里僅以8086CPU復(fù)位后如何形成啟動(dòng)地址為例,說明物理地址的計(jì)算方法。復(fù)位時(shí)CS的內(nèi)容為FFFFH,IP的內(nèi)容為0000H。復(fù)位后的啟動(dòng)地址由CS段寄存器和IP的內(nèi)容共同決定,即:啟動(dòng)地址=CS×16+IP=FFFF0H+0000H=FFFF0H2.4.2段寄存器的使用教案授課題目教研室主任教務(wù)科長授課時(shí)數(shù)教學(xué)方法教具授課班級與時(shí)間教學(xué)目標(biāo)知識目標(biāo):掌握指令系統(tǒng)的的基本格式,指令系統(tǒng)的操作功能及使用方法。技能目標(biāo):8086尋址方式,數(shù)據(jù)傳送類指令和算術(shù)運(yùn)算類指令的使用。教學(xué)重點(diǎn)掌握指令系統(tǒng)的的基本格式,指令系統(tǒng)的操作功能及使用方法。教學(xué)難點(diǎn)8086尋址方式,數(shù)據(jù)傳送類指令和算術(shù)運(yùn)算類指令的使用。教學(xué)內(nèi)容、方法及過程§3.18086的尋址方式3.1.1操作數(shù)的尋址方式1.立即數(shù)尋址例:MOVAX,1234H這條指令的功能是:把立即數(shù)1234H送入AX中。2.寄存器尋址如果操作數(shù)就在CPU的內(nèi)部寄存器中,那么寄存器名在指令中給出。這種尋址方式就叫寄存器尋址方式。3.直接尋址使用直接尋址方式時(shí),數(shù)據(jù)總是在存儲(chǔ)器中,存儲(chǔ)單元的有效地址由指令直接指出,所以直接尋址是對存儲(chǔ)器進(jìn)行訪問時(shí)可采用的最簡單的方式。假如DS=3000H例:MOVAX,DS:[2010H]物理地址=DS×16+2010H=3000H×16+2010H=32010H指令功能是將32010H和32011H兩單元的內(nèi)容送到AX中。要注意的是采用直接尋址方式時(shí),如果指令前面沒有用前綴指明操作數(shù)在哪一段,則默認(rèn)為段寄存器是數(shù)據(jù)段寄存器DS。4.寄存器間接尋址采用寄存器間接尋址方式時(shí),操作數(shù)一定在存儲(chǔ)器中,存儲(chǔ)單元的有效地址由寄存器指出,這些寄存器可以為BX、BP,SI和DI之一,由于上述4個(gè)寄存器所黙認(rèn)的段寄存器不同,這樣又可以分兩種情況:①以SI、DI、BX進(jìn)行間接尋址,則操作數(shù)通常存放在現(xiàn)行數(shù)據(jù)段中。此時(shí)數(shù)據(jù)段寄存器內(nèi)容加上SI、DI、BX中的16位段內(nèi)偏移地址,即得操作數(shù)的地址②寄存器BP間接尋址,則操作數(shù)存放在堆棧段區(qū)域中。此時(shí)堆棧段寄存器內(nèi)容加上BP中的16位段內(nèi)偏移地址,即得操作數(shù)的地址。假如SS=3000H5.寄存器相對尋址在這種尋址方式中,操作數(shù)存放在存貯器中。操作數(shù)的地址是由段寄存器內(nèi)容加上SI、DI、BX、BP之一的內(nèi)容,再加上由指令所指出的8位或16位相對地址偏移量而得到的6.基址、變址尋址在8086中,通常把BX和BP作為基址寄存器,而把SI、DI作為變址寄存器。將這兩種寄存器聯(lián)合起來進(jìn)行的尋址就稱為基址、變址尋址。這時(shí),操作數(shù)的地址應(yīng)該是段寄存器內(nèi)容×16加上基址寄存器內(nèi)容(BX或BP內(nèi)容),再加上變址寄存器內(nèi)容(SI或DI內(nèi)容)而得到的.例:MOVAX,[BX][SI]7.基址、變址相對尋址這種尋址實(shí)際上是基址、變址尋址的擴(kuò)充。即操作數(shù)的地址是由基址、變址方式得到的地址再加上由指令指明的8位或16位的相對偏移地址而得到的3.1.2轉(zhuǎn)移地址的尋址方式1.段內(nèi)直接尋址段內(nèi)直接尋址方式也稱為相對尋址方式,轉(zhuǎn)移的目標(biāo)地址是當(dāng)前IP內(nèi)容和一個(gè)8位或16位的位移量DISP之和。即物理地址=CS×16+I(xiàn)P+DISP2.段內(nèi)間接尋址這種尋址方式在段內(nèi)進(jìn)行,其轉(zhuǎn)移的目標(biāo)地址是16位寄存器或兩個(gè)相鄰的存儲(chǔ)單元的內(nèi)容,即以寄存器或存儲(chǔ)器單元內(nèi)容來更新IP的內(nèi)容。如圖3-11所示。例:JMPCXJMPWORDPTR[BX]3.段間直接尋址在這種尋址方式中,指令碼中將直接給出16位的段地址和16位的段內(nèi)偏移地址。例:JMPFARPTRDADD14.段間間接尋址這種尋址方式和段內(nèi)間接尋址相似。但是,由于確定轉(zhuǎn)移地址需要32位信息,因此只適用于存貯器尋址方式。用這種尋址方式可計(jì)算出存放轉(zhuǎn)移地址的存貯單元的首地址,與此相鄰的4個(gè)單元中,前兩個(gè)單元存放16位的段內(nèi)偏移地址;而后兩單元存放的是16位的段地址,如圖3-13所示。例:JMPDWORDPTR[BP][DI]§3.28086指令系統(tǒng)8086的指令系統(tǒng)大致可分為6種類型:①數(shù)據(jù)傳送指令②算術(shù)運(yùn)算指令③邏輯運(yùn)算和移位指令④串操作指令⑤程序控制指令⑥處理器控制指令3.2.1數(shù)據(jù)傳送指令8086有5類傳送指令,以實(shí)現(xiàn)CPU的內(nèi)部寄存器之間、CPU和存儲(chǔ)器之間、CPU和I/O端口之間的數(shù)據(jù)傳送。1.通用傳送指令通用傳送指令中包括最基本的傳送指令MOV,交換指令XCHG,椎棧指令PUSH和POP,字節(jié)、字轉(zhuǎn)換指令CBW和CWD。(1)最基本的傳送指令指令格式:MOVOPRDl,OPRD2執(zhí)行功能:該指令可把一個(gè)字節(jié)或一個(gè)字操作數(shù)從源地址傳送到目的地址中去。OPRD1:可以是累加器、寄存器和存貯器。OPRD2:可以是累加器、寄存器、存貯器以及立即操作數(shù)1)在CPU各內(nèi)部寄存器之間傳送數(shù)據(jù)(除代碼段寄存器CS和指令指針I(yè)P以外)。2)立即數(shù)傳送至CPU的內(nèi)部通用寄存器(即AX、BX、CX、DX、BP、SP、SI、DI),給這些寄存器賦值。3)CPU內(nèi)部寄存器(除了CS和IP以外)與存貯器(所有尋址方式)之間的數(shù)據(jù)傳送,與前述一樣可以傳送一個(gè)字節(jié)也可以傳送一個(gè)字?!⒁猓。、費(fèi)OV指令不影響任何標(biāo)志位②MOV的源操作數(shù)與目標(biāo)操作數(shù)類型必須一致③MOV指令的操作數(shù)不能全為存儲(chǔ)單元④MOV指令的操作數(shù)不能全為段寄存器⑤立即數(shù)不能為目標(biāo)操作數(shù),立即數(shù)不能送段寄存器,可以通過內(nèi)存變量或除段寄存器之外的其它寄存器給段寄存器賦值MOVAX,0825HMOVDS,AX⑥CS為代碼段寄存器,它是只允許讀,不允許寫的。(可以用跳轉(zhuǎn)指令改變CS)(2)交換指令指令格式:XCHGOPRDl,OPRD2執(zhí)行功能:交換指令把一個(gè)字節(jié)或一個(gè)字的源操作數(shù)與目的操作數(shù)相交換。(3)堆棧操作指令PUSHOPRD(壓入堆棧指令)POPOPRD(彈出堆棧指令)2.地址傳送指令8086有3條地址傳送指令。(1)LEA指令指令格式:LEAOPRDl,OPRD2執(zhí)行功能:該指令把源操作數(shù)OPRD2的地址偏移量傳送至目的操作數(shù)OPRDl中。源操作數(shù)必須是一個(gè)內(nèi)存操作數(shù),目的操作數(shù)必須是一個(gè)16位的通用寄存器。這條指令通常用來建立串指令操作所需的地址指針。LEABX,DATA 和MOVBX,OFFSETDATA等價(jià)LEASI,BUFFER 和MOVSI,OFFSETBUFFER等價(jià)(2)LDS指令該指令完成一個(gè)地址指針的傳送。地址指針包括段地址和地址偏移量。指令執(zhí)行時(shí),將段地址送入DS,地址偏移量送入一個(gè)16位的指針寄存器或變址寄存器。例如:LDSSI,[BX]是把BX所指的32位地址指針的段地址送入DS,偏移地址送入SI。(3)LES指令這條指令除將地址指針的段地址送入ES外,其他操作與LDS的類似。例如:LESDI,[BX]是把BX所指的32位地址指針的段地址送入ES,偏移地址送入DI。3.輸人輸出指令輸入/輸出指令用來完成累加器(AX/AL)與I/O端口之間的數(shù)據(jù)傳送功能。執(zhí)行輸入指令時(shí),CPU可以從一個(gè)8位端口讀入一個(gè)字節(jié)到AL中,也可以從兩個(gè)連續(xù)的8位端口讀一個(gè)字到AX中。指令格式:IN累加器,端口地址執(zhí)行輸出指令時(shí),CPU可以將AL中的一個(gè)字節(jié)寫到一個(gè)8位端口中,或者將AX中的一個(gè)字寫到兩個(gè)連續(xù)的8位端口中。指令格式:OUT端口,累加器端口地址的尋址范圍是64K(0000H~FFFFH),若端口地址在00H~FFH之間,可以使用直接尋址方式,否則只能由16位寄存器DX來作間接尋址。3.2.2算術(shù)運(yùn)算指令8086可提供加、減、乘、除4種基本算術(shù)運(yùn)算的操作指令。這些指令可實(shí)現(xiàn)字節(jié)或字的運(yùn)算,也可以用于符號數(shù)和無符號數(shù)的運(yùn)算。1.加法指令(1)不帶進(jìn)位的加法指令指令格式:ADDOPRDl,OPRD2指令功能:OPRDl←(OPRDl)+(OPRD2)ADD指令兩個(gè)操作數(shù)相加,結(jié)果送至目的操作數(shù)。源操作數(shù)可以是累加器、通用寄存器、存貯器和立即數(shù)。目的操作數(shù)可以是累加器、通用寄存器或存貯器。例如:注意,兩個(gè)存儲(chǔ)器操作不能直接相加,段寄存器也不能參加運(yùn)算。在使用時(shí)還要注意兩個(gè)操作數(shù)類型一致。(2)帶進(jìn)位的加法指令指令格式:ADCOPRD1,OPRD2指令功能:OPRD1←(OPRD1)+(OPRD2)+CY(3)INC加1指令指令格式:INCOPRD指令功能:OPRD←(OPRD)+1這條指令對指定的操作數(shù)進(jìn)行加1操作,在循環(huán)程序中常用于修改地址指針和循環(huán)次數(shù)等。其操作數(shù)可以是通用寄存器,也可以是存儲(chǔ)器。該指令執(zhí)行結(jié)果對標(biāo)志位AF、OF、PF、SF和ZF有影響,而對CF位不產(chǎn)生影響2.減法指令(1)不帶借位的減法指令指令格式:SUBOPRDl,OPRD2指令功能:OPRD1←(OPRD1)-(OPRD2)(2)帶借位的減法指令指令格式:SBBOPRD1,OPRD2指令功能:OPRD1←(OPRD1)-(OPRD2)-CY(3)DEC減1指令指令格式:DECOPRD指令功能:OPRD←(OPRD)-1該指令實(shí)現(xiàn)對操作數(shù)的減1操作,所用的操作數(shù)可以是寄存器的,也可以是存儲(chǔ)器。在相減時(shí),把操作數(shù)看作為無符號的二進(jìn)制數(shù)。該指令執(zhí)行結(jié)果將影響標(biāo)志位AF、OF、PF、SF和ZF,但對CF標(biāo)志不產(chǎn)生影響(4)NEG求補(bǔ)指令指令格式:NEGOPRD指令功能:OPRD←0-(OPRD)(5)比較指令指令格式:CMPOPRDl,OPRD2指令功能:(OPRD1)-(OPRD2)該指令執(zhí)行減法操作,不保存相減的結(jié)果。指令執(zhí)行后兩操作數(shù)的內(nèi)容不變,但相減的結(jié)果影響標(biāo)志位。在程序設(shè)計(jì)時(shí),比較指令通常為程序的轉(zhuǎn)移提供條件。3.乘法指令8086的乘法指令分為無符號數(shù)乘法指令和帶符號數(shù)乘法指令兩種。(1)無符號數(shù)乘法指令MUL指令格式:MULOPRD指令功能:若OPRD為字節(jié)數(shù)據(jù),則執(zhí)行AX←(AL)×(OPRD)若OPRD為字?jǐn)?shù)據(jù),則執(zhí)行DX、AX←(AX)×(OPRD)目的操作數(shù)為:AL或AX(隱含給出)(2)帶符號數(shù)乘法指令I(lǐng)MUL指令格式:IMULOPRD指令功能:若OPRD為字節(jié)數(shù)據(jù),則執(zhí)行AX←(AL)×(OPRD)若OPRD為字?jǐn)?shù)據(jù),則執(zhí)行DX、AX←(AX)×(OPRD)目的操作數(shù)為:AL或AX(隱含給出)4.除法指令8086有兩條除法指令:無符號除法指令和帶符號除法指令。它們都可以進(jìn)行字節(jié)或字除法運(yùn)算,并且規(guī)定,8位除法的被除數(shù)在AX中;16位除法的被除數(shù)在DX與AX中,除數(shù)均由指令指出。對8位數(shù)除法,商與余數(shù)分別放在AL與AH中,對16位除法,商與余數(shù)分別放在AX與DX中。(1)無符號數(shù)除法指令DIV指令格式:DIVOPRD指令功能:OPRD為字節(jié)數(shù)據(jù):AL←(AX)÷(OPRD)商AH←(AX)÷(OPRD)余數(shù)OPRD為字?jǐn)?shù)據(jù):AX←(DX)(AX)÷(OPRD)商DX←(DX)(AX)÷(OPRD)余數(shù)(2)IDIV帶符號數(shù)除法指令指令格式:IDIVOPRD指令操作:與DIV指令相同,但被除數(shù)、除數(shù)、商、余數(shù)全部均為帶符號數(shù),且余數(shù)的符號位同被除數(shù)。即IDIV執(zhí)行后,CF、OF、AF、PF、ZF、SF不確定。用IDIV指令時(shí),如果是一個(gè)雙字除以一個(gè)字,則商的范圍為-32768~32767;如果是一個(gè)字除以一個(gè)字節(jié),則商的范圍為-128~127。運(yùn)算結(jié)果超出了表示范圍,那么會(huì)作為除數(shù)為0的情況來處理,即產(chǎn)生0號中斷。(3)CBW字節(jié)轉(zhuǎn)換為字指令指令格式:CBW指令功能:AL中的符號位擴(kuò)展到AH中。若AL中的D7=0,則(AH)=00H;若AL的D7=1,則(AH)=FFH。(4)CWD字轉(zhuǎn)換為雙字指令指令格式:CWD指令功能:AX中的符號位擴(kuò)展到DX中。若AX中的D15=0,則(DX)=0000H;若AX的D15=1,則(DX)=FFFFH。十進(jìn)制調(diào)整指令(1)DAA加法的十進(jìn)制調(diào)整指令執(zhí)行的操作:
(AL)←把AL中的和調(diào)整到壓縮的BCD格式,這條指令之前必須執(zhí)行ADD或ADC指令,加法指令必須把兩個(gè)壓縮的BCD碼相加,并把結(jié)果存放在AL寄存器中。本指令的調(diào)整方法是:
如果AF標(biāo)志(輔助進(jìn)位位)為1,或者AL寄存器的低4位是十六進(jìn)制的A~F,則AL寄存器內(nèi)容加06H,且將AF位置1;如果CF標(biāo)志為1,或者AL寄存器的高4位是十六進(jìn)制的A-F,則AL寄存器內(nèi)容加60H,并將CF位置1。DAA指令對OF標(biāo)志無定義,但影響所有其它條件標(biāo)志。例:
ADDAL,BL
DAA
如指令執(zhí)行前,(AL)=28,(BL)=68
執(zhí)行ADD指令后,(AL)=90,CF=0,AF=1
執(zhí)行DAA指令時(shí),因AF=1而做(AL)←(AL)+06
得(AL)=96,CF=0,AF=1結(jié)果正確。
(2)DAS減法的十進(jìn)制調(diào)整指令執(zhí)行的操作:
(AL)←把AL中的差調(diào)整到壓縮的BCD格式。這條指令之前必須執(zhí)行SUB或SBB指令,減法指令必須把兩個(gè)BCD碼相減,并把結(jié)果存放在AL寄存器中。本指令的調(diào)整方法是:
如果AF標(biāo)志為1,或者AL寄存器的低4位是十六進(jìn)制的A-F,則使AL寄存器的內(nèi)容減去06H,并將AF位置1。
如果CF標(biāo)志為1,或者AL寄存器的高4位是十六進(jìn)制的A-F,則使AL寄存器的內(nèi)容減去60H,并將CF位置1。
DAS指令對OF標(biāo)志無定義,但影響所有其它條件標(biāo)志。(3)AAM乘法的BCD碼調(diào)整指令指令格式:AAM指令功能:AX←把AL中的積調(diào)整為非壓縮的BCD碼格式。(4)AAD除法的BCD碼調(diào)整指令對BCD碼進(jìn)行除法運(yùn)算時(shí),也要求除數(shù)和被除數(shù)都用非壓縮的BCD碼形式來表示,這是與對BCD碼乘法的要求類似的地方。這里要特別注意一點(diǎn),對BCD碼除法運(yùn)算的調(diào)整是在進(jìn)行除法之前,通過對除數(shù)和被除數(shù)進(jìn)行調(diào)整來實(shí)現(xiàn)的。調(diào)整操作如下:AL←10×AH+ALAH←03.2.3邏輯運(yùn)算和移位指令1.邏輯運(yùn)算指令8086邏輯運(yùn)算指令包括AND(與)、OR(或)、NOT(非)、XOR(異或)指令和TEST(測試)指令。2.移位指令(1)SAL/SHL算術(shù)左移和邏輯左移指令(2)SAR算術(shù)右移指令(3)SHR邏輯右移指令3.循環(huán)移位指令(1)ROL不帶進(jìn)位的循環(huán)左移指令(2)ROR不帶進(jìn)位的循環(huán)右移指令(3)RCL帶進(jìn)位的循環(huán)左移指令(4)RCR帶進(jìn)位的循環(huán)右移指令3.2.4串操作指令在串操作中,一般假定源串在數(shù)據(jù)段中(DS),用SI作源串地址指針,而目的串在附加段中(ES),用DI作目的串地址指針。在每做一次串操作后,若是對字節(jié)進(jìn)行操作,則SI和DI的值會(huì)自動(dòng)加1或減l;若是對字進(jìn)行操作,則SI和DI的值就自動(dòng)加2或減2,是加還是減由DF標(biāo)志寄存器來決定。若DF=0,則SI和DI增量修改;DF=1,則SI和DI做減量修改。在串操作前可用STD指令使DF位置l,也可以用CLD指令使DF位清0。1.MOVS串傳送指令指令格式:MOVSDST,SRCMOVSB;字節(jié)傳送MOVSW;字傳送指令功能:(DI)←((SI))字節(jié)操作SI←(SI)±1;DI←(DI)±1;字操作SI←(SI)±2;DI←(DI)±2;該類指令執(zhí)行時(shí),將把當(dāng)前數(shù)據(jù)段中用SI指針指出的源串的一個(gè)字節(jié)或一個(gè)字傳送到用DI指針指向的附加段的目的地址中去。當(dāng)DF=0且是字節(jié)傳送時(shí),則傳送后SI、DI加1,以使指針指向下一個(gè)地址;當(dāng)DF=0且是字傳送時(shí),則SI、DI加2。若DF=1,則SI、DI減1或減2。2.CMPS串比較指令指令格式:CMPSSRC,DSTCMPSB;字節(jié)比較CMPSW;字比較指令功能:((SI))-((DI))字節(jié)操作SI←(SI)±1;DI←(DI)±1;字操作SI←(SI)±2;DI←(DI)±2;該類指令執(zhí)行時(shí),將當(dāng)前數(shù)據(jù)段由SI所指出的字節(jié)和字同當(dāng)前附加段中由DI所指出的目的串的字節(jié)或字進(jìn)行比較,把比較結(jié)果送標(biāo)志位。該指令對操作數(shù)不產(chǎn)生影響。3.SCAS串掃描指令指令格式:SCASDSTSCASB;字節(jié)掃描SCASW;字掃描指令功能:字節(jié)操作AL-((DI))DI←(DI)±1;字操作AX-((DI))DI←(DI)±2;該類指令是串掃描指令,用于尋找內(nèi)存區(qū)中指定的數(shù)據(jù)和字符。指令執(zhí)行時(shí),將AL或AX的值減去附加段中由DI所指定的字節(jié)或字,結(jié)果將改變標(biāo)志位,但不改變操作數(shù)的值。4.LODS串裝入指令指令格式LODSSRCLODSB;字節(jié)傳送LODSW;字傳送指令功能:字節(jié)操作AL←((SI))SI←(SI)±1字操作AX←((SI))SI←(SI)±2該類指令是字串裝入指令。它將由SI所指定的源串字節(jié)或字裝入到累加器AL或AX中去,并根據(jù)DF的值修改指針SI,以指向下一個(gè)要裝入的字節(jié)或字。5.STOS串存儲(chǔ)指令指令格式:STOSDSTSTOSB;字節(jié)存儲(chǔ)STOSW;字存儲(chǔ)指令功能:字節(jié)操作((DI))←(AL)DI←(DI)±1字操作((DI))←AXDI←(DI)±2該類指令是字串存貯指令。它將AL或AX中的字節(jié)或字存貯到由DI所指定的附加段中去,且根據(jù)DF的值來修改DI的值。6.REP重復(fù)操作前綴它是串指令的前綴。當(dāng)某一條指令需要多次重復(fù)時(shí),就可以加上該前綴。重復(fù)次數(shù)應(yīng)放在寄存器CX中。這樣每重復(fù)執(zhí)行一次,CX內(nèi)容減1,直到CX=0,才停止重復(fù)。7.REPE/PEPZ相等/為零時(shí)重復(fù)操作前綴它們是條件重復(fù)前綴。當(dāng)條件滿足時(shí),才重復(fù)執(zhí)行后面的串指令,一旦條件不滿足,重復(fù)就停止。REPE/REPZ指令是相等重復(fù)指令,即只要ZF=l,且CX≠0,串指令就重復(fù)執(zhí)行。8.REPNE/PEPNZ不相等/不為零時(shí)重復(fù)操作前綴它們是條件重復(fù)前綴。當(dāng)條件滿足時(shí),才重復(fù)執(zhí)行后面的串指令,一旦條件不滿足,重復(fù)就停止。REPNE/REPNZ指令是不相等重復(fù)指令,即只要ZF=0,且CX≠0,串指令就重復(fù)執(zhí)行。例:在100個(gè)字符的單元STRING中找到第一個(gè)回車符CR(ASCII碼0DH),找到后將地址保存到DI,并在屏幕上顯示“Y”,如果沒有,顯示“N”。LEADI,STRINGMOVAL,0DHMOVCX,100CLDREPNESCASBJZMATCHMOVDL,‘N’JMPDISPMATCH:DECDIMOVDL,‘Y’DISP:MOVAH,02HINT21HHLT3.2.5程序控指令1.JMP無條件轉(zhuǎn)移指令這些指令都將引起程序執(zhí)行順序的改變。轉(zhuǎn)移有段內(nèi)轉(zhuǎn)移和段間轉(zhuǎn)移之分。所謂段內(nèi)轉(zhuǎn)移是指段地址不變,僅IP發(fā)生改變;而段間轉(zhuǎn)移,CS和IP均發(fā)生改變。(1)段內(nèi)直接短轉(zhuǎn)移指令格式:JMPSHORTLOOP指令功能:IP←(IP)+8位偏移量其中LOOP為轉(zhuǎn)移目標(biāo)地址,可直接使用符號地址,又稱標(biāo)號。SHORT為屬性運(yùn)算符,指示匯編程序?qū)⒌刂穮R編成8位偏移量,范圍在-128~+127之內(nèi)。(2)段內(nèi)直接近轉(zhuǎn)移指令格式:JMPNEARPTRLOOP或JMPLOOPl;NEAR可省略指令功能:IP←(IP)+16位偏移量其中LOOP為轉(zhuǎn)移目標(biāo)地址,可直接使用符號地址,又稱標(biāo)號。NEARPTR為屬性運(yùn)算符,指示匯編程序?qū)⒌刂穮R編成16位偏移量,范圍在64K之內(nèi)。近程轉(zhuǎn)移JMPNEARPTRLOOPl(3)段內(nèi)間接轉(zhuǎn)移指令格式:JMPWORDPTROPRD指令功能:IP←(OPRD地址所對應(yīng)連續(xù)兩單元的內(nèi)容)OPRD的有效地址由尋址方式?jīng)Q定。OPRD可以為寄存器尋址或存儲(chǔ)器尋址的某一種。如果是寄存器尋址,指令中直接給出寄存器號,寄存器中的內(nèi)容送到IP中;如果是存儲(chǔ)器尋址,按存儲(chǔ)器尋址方式形成的地址所對應(yīng)的單元內(nèi)容給IP指針??梢灾苯拥卣f,段內(nèi)間接轉(zhuǎn)移,其轉(zhuǎn)移地址在寄存器中或存儲(chǔ)器中。 JMPCXJMPWORDPTR[BX]遠(yuǎn)程轉(zhuǎn)移是段間的轉(zhuǎn)移,目的地址與JMP指令所在地址不在同一段內(nèi)。執(zhí)行該指令時(shí)要修改CS和IP的內(nèi)容。(4)段間直接轉(zhuǎn)移指令格式:JMPFARPTRLOOP指令功能:IP←LOOP的偏移地址CS←LOOP的所在段地址(5)段間間接轉(zhuǎn)移JMPDWORDPTR[BP]][DI]該指令指定的雙字指針的第一個(gè)字單元內(nèi)容送入IP,第二個(gè)字單元內(nèi)容送入CS,所定義的單元必定是雙字單元。2.子程序調(diào)用和返回指令(1)段內(nèi)調(diào)用和返回指令1)段內(nèi)直接調(diào)用指令指令格式:CALLOPRD其中OPRD為被調(diào)用的過程或子程序的首地址。指令功能:SP?(SP)-2,(SP)?(IP)IP?OPRD對應(yīng)16位直接地址在程序中,OPRD一般為子程序名,匯編時(shí)匯編成16位的偏移地址。在段內(nèi)直接調(diào)用時(shí),CALL指令首先將當(dāng)前IP內(nèi)容壓入堆棧。把子程序的首地址送IP,從而實(shí)現(xiàn)程序調(diào)用。2)段內(nèi)間接調(diào)用指令指令格式:CALLOPRD其中OPRD為被調(diào)用的過程或子程序的首地址。指令功能:段內(nèi)調(diào)用SP?(SP)-2,(SP)?(IP)IP?寄存器或存儲(chǔ)器所對應(yīng)的16位數(shù)據(jù)指令執(zhí)行后,把16位通用寄存器或存儲(chǔ)單元中的內(nèi)容送入IP中,CS保持不變。例如:CALLWORDPTR[SI]CALLBX3)段內(nèi)返回指令指令格式:RET指令功能:IP←((SP+1),(SP))SP←(SP)+2RET指令是子程序返回的主要指令,與調(diào)用指令配合使用。(2)段間調(diào)用與返回指令1)
段間直接調(diào)用指令指令格式:CALLOPRD指令功能:SP?(SP)-2((SP)+1,(SP))?(CS)SP?(SP)-2,(SP)?(IP)IP?OPRD所在段的直接地址CS?直接地址所在的段1)
段間間接調(diào)用指令格式:CALLOPRD指令功能:SP?(SP)-2((SP)+1,(SP))?(CS)SP?(SP)-2(SP)+1,(SP)?(IP)IP?OPRD所在存儲(chǔ)單元的前兩個(gè)單元的內(nèi)容CS?OPRD所在存儲(chǔ)單元的后兩個(gè)單元的內(nèi)容例如:CALLDWORDPTR[BX]2)
段間返回指令指令格式:RET指令功能:IP←((SP+1),(SP))SP←(SP)+2CS←((SP+1),(SP))SP←(SP)+2即連續(xù)執(zhí)行兩次出棧操作,首先彈出的送入IP中,第二次彈出的送入CS中。3.條件轉(zhuǎn)移指令8086有18條不同的條件轉(zhuǎn)移指令。它們根據(jù)標(biāo)志寄存器中各標(biāo)志位的狀態(tài),決定程序是否進(jìn)行轉(zhuǎn)移。條件轉(zhuǎn)移指令的目的地址必須在現(xiàn)行的代碼段(CS)內(nèi),并且以當(dāng)前指針寄存器IP內(nèi)容為基準(zhǔn),其位移必須在-128~+127的范圍之內(nèi)。因此條件轉(zhuǎn)移指令的范圍是有限的,不像JMP指令那樣可以轉(zhuǎn)移到內(nèi)存的任何一個(gè)位置上。4.循環(huán)控制指令這類指令用于控制程序的循環(huán),其控制轉(zhuǎn)向的目的地址是在以當(dāng)前IP內(nèi)容為中心的-128~127的范圍內(nèi)。這類指令用CX作計(jì)數(shù)器,每執(zhí)行一次指令,CX內(nèi)容減1,直到減為0,循環(huán)才結(jié)束。(1)指令格式:LOOPOPRD指令功能:CX←(CX)-1若CX≠0循環(huán)。(2)指令格式:LOOPNEOPRD指令功能:CX←(CX)-1若CX≠0且ZF=0循環(huán)。(3)指令格式:LOOPEOPRD指令功能:CX←(CX)-1若CX≠0且ZF=l循環(huán)。在LOOPE和LOOPNE兩條指令中,只要兩個(gè)條件中任—個(gè)不滿足,循環(huán)就結(jié)束。5.處理器控制指令§3.3DOS功能調(diào)用DOS功能調(diào)用可完成I/O設(shè)備管理、存儲(chǔ)管理、文件管理和作業(yè)管理等功能。對于用戶來說,這些功能模塊就是幾十個(gè)獨(dú)立的中斷服務(wù)程序,這些程序的入口地址已由系統(tǒng)置入中斷向量表中,在匯編語言程序中可用軟中斷指令直接調(diào)用。這樣,用戶就不必深入了解有關(guān)設(shè)備的電路和接口,只須遵照DOS規(guī)定的調(diào)用原則即可使用。1.系統(tǒng)功能調(diào)用方法要完成系統(tǒng)功能調(diào)用,基本按如下步驟:(1)
將入口參數(shù)送到指定寄存器中。(2)
子程序功能號送入AH寄存器中。(3)
使用INT21H指令。2.常用的幾種系統(tǒng)功能調(diào)用(1)鍵盤輸入單字符這是1號系統(tǒng)功能調(diào)用,使用格式如下所示:MOVAH,1INT21H(2)輸出單字符這是2號系統(tǒng)功能調(diào)用,使用格式如下所示:MOVDL,’A’MOVAH,2INT21H執(zhí)行2號系統(tǒng)功能調(diào)用時(shí),將置入DL寄存器中的字符從屏幕上顯示輸出(或打印機(jī)打印輸出)。(3)鍵盤輸入字符串這是10號系統(tǒng)功能調(diào)用,其功能是將鍵盤輸入的字符串寫入到內(nèi)存緩沖區(qū)中,因此必須事先在內(nèi)存儲(chǔ)器中定義一個(gè)緩沖區(qū)。(4)輸出字符串這是9號系統(tǒng)功能調(diào)用,其功能是將指定的內(nèi)存緩沖中字符串從屏幕顯示輸出。緩沖區(qū)中的字符串以“$”字符作為結(jié)束標(biāo)志。(5)從串行輸入單字符這是3號系統(tǒng)功能調(diào)用,其使用格式如下:MOVAH,3INT21H它沒有入口參數(shù),系統(tǒng)將從異步通信口串行輸入的字符置入AL寄存器中。(6)向串口輸出單字符這是4號系統(tǒng)功能調(diào)用,其使用格式如下:MOVDL,’$’MOVAH,4INT21H執(zhí)行結(jié)果將DL寄存器中的字符通過異步通信口串行輸出。(7)直接控制臺輸入/輸出單字符這是6號系統(tǒng)功能調(diào)用,如果(DL)=0FFH,則表示從鍵盤輸入單字符送AL寄存器中;如果(DL)≠0FFH,則表示將DL寄存器中內(nèi)容送屏幕顯示輸出。(8)無回顯直接控制臺輸入單字符這是7號系統(tǒng)功能調(diào)用,等待從標(biāo)準(zhǔn)輸入設(shè)備輸入單字符置入AL寄存器中,但不送屏幕顯示。其使用格式如下:MOVAH,7INT21H它沒有入口參數(shù),系統(tǒng)等待從控制臺標(biāo)準(zhǔn)輸入設(shè)備輸入單字符后,將其ASCⅡ置入AL寄存器中。(9)無回顯鍵盤輸入單字符這是8號系統(tǒng)功能調(diào)用,等待從鍵盤輸入單字符,將其ASCⅡ碼置入AL寄存器中。但不送屏幕顯示,其使用格式如下:MOVAH,8INT21H它沒有入口參數(shù),與1號系統(tǒng)功能調(diào)用的區(qū)別僅在于鍵入的字符不送屏幕顯示。(10)返回操作系統(tǒng)這是4CH號系統(tǒng)功能調(diào)用,其使用格式如下:MOVAH,4CHINT21H(11)設(shè)置日期這是2BH號系統(tǒng)功能調(diào)用,其功能是設(shè)置有效日期。例如,設(shè)置當(dāng)前日期是2004年11月26日。其使用格式如下:MOVCX,2004HMOVDH,11HMOVDL,26HMOVAH,2BHINT21H(12)取得日期這是2AH號系統(tǒng)功能調(diào)用,其功能是將當(dāng)前有效日期取到CX和DX寄存器中,存放格式與設(shè)置日期相同,其使用格式如下:MOVAH,2AHINT21H教案授課題目教研室主任教務(wù)科長授課時(shí)數(shù)教學(xué)方法教具授課班級與時(shí)間教學(xué)目標(biāo)知識目標(biāo):本章重點(diǎn)介紹半導(dǎo)體存儲(chǔ)器系統(tǒng)基本知識及分類,講述微型計(jì)算機(jī)存儲(chǔ)器系統(tǒng)的構(gòu)成及微機(jī)系統(tǒng)與外部存儲(chǔ)器的連接方法。技能目標(biāo):本章難點(diǎn)是存儲(chǔ)器系統(tǒng)的構(gòu)成和微機(jī)系統(tǒng)和外部存儲(chǔ)器的連接方法。教學(xué)重點(diǎn)本章重點(diǎn)介紹半導(dǎo)體存儲(chǔ)器系統(tǒng)基本知識及分類,講述微型計(jì)算機(jī)存儲(chǔ)器系統(tǒng)的構(gòu)成及微機(jī)系統(tǒng)與外部存儲(chǔ)器的連接方法。教學(xué)難點(diǎn)本章難點(diǎn)是存儲(chǔ)器系統(tǒng)的構(gòu)成和微機(jī)系統(tǒng)和外部存儲(chǔ)器的連接方法。教學(xué)內(nèi)容、方法及過程6.1存儲(chǔ)器系統(tǒng)概述隨著大規(guī)模、超大規(guī)模集成電路技術(shù)的發(fā)展,半導(dǎo)體存貯器的發(fā)展和更新日新月異。各種存取時(shí)間短、容量大、功耗低、價(jià)格便宜的器件不斷涌現(xiàn),為用戶構(gòu)成不同規(guī)模的存貯系統(tǒng)帶來了極大的方便。本章主要介紹各類半導(dǎo)體存貯器并著重說明這些存貯器在工程上如何使用。6.1.1存儲(chǔ)器的分類2、按照構(gòu)成存儲(chǔ)器材料的不同,可分為半導(dǎo)體存儲(chǔ)器、磁存儲(chǔ)器、激光存儲(chǔ)器、紙卡存儲(chǔ)器1、根據(jù)存儲(chǔ)器是設(shè)在主機(jī)內(nèi)部還是外部,可分為內(nèi)部存儲(chǔ)器(主存儲(chǔ)器)和外部存儲(chǔ)器(輔存儲(chǔ)器)根據(jù)存儲(chǔ)器是設(shè)在主機(jī)內(nèi)部還是外部,可分為內(nèi)部存儲(chǔ)器(主存儲(chǔ)器)和外部存儲(chǔ)器(輔存儲(chǔ)器)內(nèi)存用來存儲(chǔ)當(dāng)前運(yùn)行所需要的程序和數(shù)據(jù),以便直接與CPU交換信息。相對外存而言,它容量小,存取速度快,價(jià)格較高;外存存放當(dāng)前暫不參與運(yùn)行和永久保存的一些程序和數(shù)據(jù),在CPU需要處理時(shí)再成批的與內(nèi)存交換。它容量大,價(jià)格較低,但存取速度慢。按照構(gòu)成存儲(chǔ)器材料的不同,可分為半導(dǎo)體存儲(chǔ)器、磁存儲(chǔ)器、激光存儲(chǔ)器、紙卡存儲(chǔ)器RAM隨機(jī)讀寫存儲(chǔ)器(RandomAccessMemory)ROM只讀存儲(chǔ)器(ReadOnlyMemory)它的內(nèi)容可讀出、寫入或改寫,主要用于存放各種現(xiàn)場的輸入、輸出數(shù)據(jù)、中間計(jì)算結(jié)果及作堆棧用等。內(nèi)容只可讀出不可寫入,最大優(yōu)點(diǎn)是所存信息可長期保存,斷電時(shí),ROM中的信息不會(huì)消失。主要用于存放固定的程序和數(shù)據(jù),通常用它存放引導(dǎo)裝入程序。Cache高速緩沖存儲(chǔ)器CPU主存儲(chǔ)器Cache是位于CPU和主存(DRAM)之間規(guī)模較小、速度很高的靜態(tài)存儲(chǔ)器(SRAM)。在Cache中通常存放CPU當(dāng)前用的最多的程序和數(shù)據(jù),是使CPU能以最高的速度工作。設(shè)置高速緩沖存儲(chǔ)器是高檔微型計(jì)算機(jī)中最常用的一種方法,目前一般也將它們或它們的一部分制作在CPU芯片中。6.1.2存儲(chǔ)器的性能指標(biāo)1、存儲(chǔ)容量用某一芯片有多少個(gè)存儲(chǔ)單元,每個(gè)存儲(chǔ)單元存儲(chǔ)若干位來表示,是以bit為單位的。存儲(chǔ)容量=地址單元數(shù)×數(shù)據(jù)線位數(shù)2、存取時(shí)間即存取芯片中某一個(gè)單元的數(shù)據(jù)所需要的時(shí)間。3、其它指標(biāo)可靠性、功耗、價(jià)格等6264芯片容量為8k×8bit[例1]①512×4②1K×4③2K×1④8K×8[例2]欲組成16K×8的存儲(chǔ)器,需存儲(chǔ)器2114(1K×4)多少片?解:所需芯片數(shù)應(yīng)為(8/4)×(16K/1K)=2×16=32(片)問題1、現(xiàn)有1024×1bit靜態(tài)RAM芯片,欲組成64K×8bit存儲(chǔ)容量的存儲(chǔ)器,試求需要多少片RAM芯片?多少芯片組?多少根片內(nèi)地址選擇線?多少根芯片選擇線?2、設(shè)有一個(gè)具有14位地址和8位字長的存儲(chǔ)器,問:①該存儲(chǔ)器能存儲(chǔ)多少位的信息?②如果存儲(chǔ)器由1K×1bit的靜態(tài)RAM芯片組成,需多少芯片?答案:512片64組10根6根答案:128Kbit128片6.2讀寫存儲(chǔ)器(RAM)靜態(tài)讀寫存儲(chǔ)器SRAM(6264)讀寫存儲(chǔ)器(RAM)動(dòng)態(tài)讀寫存儲(chǔ)器DRAM(2164)只讀存儲(chǔ)器EPROM(2764)EEPROM62648K×8bit的SRAM芯片6.2.1靜態(tài)讀寫存貯器(SRAM)2、工作過程寫入數(shù)據(jù):在芯片的A12~A0上加上要寫入單元的地址;在D7~D0上加上要寫入的數(shù)據(jù);使CS1和CS2同時(shí)有效;在WE上加上有效的低電平,OE無效高電平。3、半導(dǎo)體存儲(chǔ)器與CPU的連接存儲(chǔ)器接口的設(shè)計(jì)存儲(chǔ)器片選控制方法:常用的片選控制方法有線選法、全譯碼法、局部譯碼法等幾種。(1)線選法線選法除將低位地址直接接片內(nèi)地址外,將余下的高位地址線,分別作為各個(gè)存儲(chǔ)器芯片的片選控制信號,如圖所示。(2)全地址譯碼法例1:存儲(chǔ)器62648KB芯片工作在F0000H—F1FFFH內(nèi)存空間,畫出和系統(tǒng)的連線圖。(3)部分地址譯碼方式6.2.2DRAM單管基本存儲(chǔ)電路讀操作——
◆行地址譯碼選中某一行,該行上所有基本存儲(chǔ)電路中的管子T全導(dǎo)通,
于是連在每一列上的刷新放大器讀取該行上各列電容C的電壓。
◆刷新放大器靈敏度高,將讀得的電壓放大整形成邏輯“0”或“1”的電平。
◆對列地址進(jìn)行譯碼產(chǎn)生列選信號,列選信號將被選行中該列的基本存
儲(chǔ)電路內(nèi)容讀出送到芯片的數(shù)據(jù)輸入/輸出I/O線上。寫操作——
相應(yīng)行、列選擇線為“1”,數(shù)據(jù)輸入/輸出I/O線上的信息經(jīng)刷新放大
器驅(qū)動(dòng)后再通過T管加到電容C上。刷新(再生)——
◆在讀/寫過程中,某條行選線為“1”,該行上所有(各列)基本存儲(chǔ)電
路都被選通,由刷新放大器讀取電容C上電壓;
◆對非寫的存儲(chǔ)電路,刷新放大器讀出、放大、驅(qū)動(dòng)之后又立即對之重
寫,進(jìn)行刷新(又稱再生),維持電容C上的電荷,保持該存儲(chǔ)電路中
的內(nèi)容(即狀態(tài))不變。
◆電容C是MOS管的極間電容,容量很小,讀出時(shí)電容C上的電荷又被寄
生的分布電容分泄,因此讀出后原來C上的電壓變得極小,是破壞性
讀出,讀后必須重寫。刷新操作周期——
◆電容C上電壓將按exp(-t/(RC))指數(shù)規(guī)律放電,因此DRAM須不斷進(jìn)行讀
出和再寫入,以使泄放的電荷得到補(bǔ)充,即要進(jìn)行刷新(再生)。雖然
每次讀/寫操作都進(jìn)行了刷新,因?yàn)樽x/寫操作是隨機(jī)的,不能保證
對DRAM中的所有基本存儲(chǔ)電路都按時(shí)刷新,因此必須設(shè)置專門的電路
來對DRAM中的所有存儲(chǔ)電路周期性地進(jìn)行刷新操作。
◆每個(gè)DRAM存儲(chǔ)單元兩次刷新的間隔時(shí)間隨溫度而變化,一般為1~
100ms。在70℃情況下典型的刷新時(shí)間不超過2ms。動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器DRAM典型存儲(chǔ)器——?jiǎng)討B(tài)RAM存儲(chǔ)器芯片Intel2164A(2)內(nèi)部結(jié)構(gòu)?存儲(chǔ)體:64K×1;?地址鎖存器:Intel2164A采用雙譯碼方式,其16位地址信息要分兩次送入芯片內(nèi)部,在芯片內(nèi)部有一個(gè)能保存8位地址信息的地址鎖存器;?數(shù)據(jù)輸入緩沖器:用以暫存輸入的數(shù)據(jù);?數(shù)據(jù)輸出緩沖器:用以暫存要輸出的數(shù)據(jù);?1/4I/O門電路:由行、列地址信號的最高位控制,能從相應(yīng)的4個(gè)存儲(chǔ)矩陣中選擇一個(gè)進(jìn)行輸入/輸出操作;典型存儲(chǔ)器——?jiǎng)討B(tài)RAM存儲(chǔ)器芯片Intel2164A?行、列時(shí)鐘緩沖器:用以協(xié)調(diào)行、列地址的選通信號;?寫允許時(shí)鐘緩沖器:用以控制芯片的數(shù)據(jù)傳送方向;?128讀出放大器:與4個(gè)128×128存儲(chǔ)陣列相對應(yīng),接收由行地址選通的4×128個(gè)存儲(chǔ)單元的信息,經(jīng)放大后,再寫回原存儲(chǔ)單元,是實(shí)現(xiàn)刷新操作的重要部分;?1/128行、列譯碼器:分別用來接收7位的行、列地址,經(jīng)譯碼后,從128×128個(gè)存儲(chǔ)單元中選擇一個(gè)確定的存儲(chǔ)單元,以便對其進(jìn)行讀/寫操作。將動(dòng)態(tài)存儲(chǔ)器所存放的每一比特信息讀出并照原樣寫入原單元的過程稱為動(dòng)態(tài)存儲(chǔ)器的刷新。刷新過程行地址循環(huán)一遍,可將整個(gè)芯片的所有地址單元刷新一遍。6.3只讀存儲(chǔ)器ROM第1類ROM,其中的內(nèi)容是在廠家制造時(shí)采用掩模操作或稱掩模編程而建立的,用戶無法改變這種ROM器件中的內(nèi)容,這類ROM稱為掩模ROM,簡稱ROM。第2類ROM中的內(nèi)容是由用戶根據(jù)需要借助于專門的設(shè)備來建立的,這類ROM稱為可編程只讀存儲(chǔ)器(PROM)。如同掩模編程的ROM一樣,PROM一旦編程后,其中的內(nèi)容就再也不能改變了。第3類ROM不僅可由用戶編程,而且還可以用特殊的設(shè)備擦除其中的內(nèi)容并重復(fù)編程多次,它們被稱為可擦可編程只讀存儲(chǔ)器(EPROM)。根據(jù)擦去信息的方式不同,EPROM分為紫外線擦除EPROM(簡稱EPROM)和電擦除的EPROM(ElectricallyEPROM)兩種,后者簡稱EEPROM(即E2PROM)。EEPROM用電信號擦除信息的時(shí)間為若干毫秒,比紫外線擦除信息的時(shí)間短得多。EEPROM的主要優(yōu)點(diǎn)是可按字節(jié)進(jìn)行擦除和重新編程。本節(jié)介紹掩模ROM、PROM和EPROM的基本原理。掩模只讀存儲(chǔ)器ROM可編程只讀存儲(chǔ)器PROM可擦可編程只讀存儲(chǔ)器EPROME2PROMFLASH存儲(chǔ)器(FlashMemory)原理上,F(xiàn)LASH屬于ROM型,但可隨時(shí)改寫信息功能上,F(xiàn)LASH相當(dāng)于RAM特點(diǎn):可按字節(jié)、區(qū)塊(Sector)或頁面(Page)進(jìn)行擦除和編程操作快速頁面寫入:先將頁數(shù)據(jù)寫入頁緩存,再在內(nèi)部邏輯的控制下,將整頁數(shù)據(jù)寫入相應(yīng)頁面由內(nèi)部邏輯控制寫入操作,提供編程結(jié)束狀態(tài)具有在線系統(tǒng)編程能力具有軟件和硬件保護(hù)能力內(nèi)部設(shè)有命令寄存器和狀態(tài)寄存器內(nèi)部可以自行產(chǎn)生編程電壓(VPP),所以只用VCC供電特點(diǎn)1、使內(nèi)部存儲(chǔ)信息在不加電的情況下保持10年左右2、可以用比較快的速度將信息擦除以后重寫,反復(fù)擦寫達(dá)幾十萬次,可以實(shí)現(xiàn)分塊擦除和重寫,也可以按字節(jié)擦除與重寫。還具有非易失性,可靠性能好,速度快以及容量大等許多優(yōu)點(diǎn)27648K×8bit的EPROM芯片教案授課題目第7章輸入輸出接口教研室主任教務(wù)科長授課時(shí)數(shù)教學(xué)方法教具授課班級與時(shí)間教學(xué)目標(biāo)知識目標(biāo):本章重點(diǎn)介紹輸入輸出接口的基本概念和輸入輸出接口的功能;著重討論不同外設(shè)數(shù)據(jù)傳送的不同方法及簡單接口的應(yīng)用。技能目標(biāo):掌握無條件傳送和查詢傳送的工作原理,難點(diǎn)是接口芯片的應(yīng)用。教學(xué)重點(diǎn)本章重點(diǎn)介紹輸入輸出接口的基本概念和輸入輸出接口的功能;著重討論不同外設(shè)數(shù)據(jù)傳送的不同方法及簡單接口的應(yīng)用。教學(xué)難點(diǎn)掌握無條件傳送和查詢傳送的工作原理,難點(diǎn)是接口芯片的應(yīng)用。教學(xué)內(nèi)容、方法及過程7.1微型計(jì)算機(jī)的輸入/輸出接口7.1.1輸入/輸出接口1.I/O接口的功能一個(gè)接口的基本功能是在系統(tǒng)總線和I/O設(shè)備之間傳輸信號,提供緩沖作用,以滿足接口兩邊的時(shí)序要求。尋址功能輸入輸出功能聯(lián)絡(luò)功能速度匹配功能數(shù)據(jù)格式轉(zhuǎn)換功能中斷管理功能可編程功能2.外設(shè)接口的編址方式每個(gè)接口部件都含有一組寄存器,CPU與外設(shè)進(jìn)行數(shù)據(jù)傳送時(shí),各類信息在接口中進(jìn)入不同的寄存器,一般稱這些寄存器為I/O端口,每個(gè)端口都有一個(gè)端口地址。系統(tǒng)對各種寄存器的操作,實(shí)際上是通過尋址,對個(gè)端口地址的選擇和操作,因此外設(shè)接口(I/O端口)有兩種編址方式。(1)外設(shè)地址與內(nèi)存地址統(tǒng)一編址這種編址方式又稱為存儲(chǔ)器映射編址方式。在這種編址方式中,將外設(shè)接口地址和內(nèi)部存儲(chǔ)器地址統(tǒng)一安排在內(nèi)存的地址空間中。即把內(nèi)存地址分配給外設(shè),由外設(shè)來占用這些地址。用于外設(shè)的這些地址,存儲(chǔ)器不能再使用。(2)外設(shè)與內(nèi)存獨(dú)立編址在這種編址方式中,內(nèi)存地址空間和外設(shè)地址空間是相互獨(dú)立的。例如,在8086CPU中,內(nèi)存地址是連續(xù)的1M字節(jié),從00000H~FFFFFH,而外設(shè)的地址范圍從0000H~FFFFH。它們相互獨(dú)立,互不影響。7.1.2輸入/輸出的控制方式 概括起來,在微型計(jì)算機(jī)系統(tǒng)中,主要有如下4種傳送方式解決上述問題: ①無條件傳送 ②查詢傳送 ③中斷傳送 ④直接存貯器存?。―MA)方式1.無條件傳送 在微機(jī)系統(tǒng)中,有一些簡單外設(shè).當(dāng)它們工作時(shí),隨時(shí)都準(zhǔn)備好接收CPU的輸出數(shù)據(jù)或它們的數(shù)據(jù)隨時(shí)都是準(zhǔn)備好的,CPU什么時(shí)候讀均可以正確地讀到它們的數(shù)據(jù)。也就是說外設(shè)無條件準(zhǔn)備好向CPU提供數(shù)據(jù)或接收CPU送來的數(shù)據(jù)。在CPU與這樣的外設(shè)交換數(shù)據(jù)的過程中,數(shù)據(jù)交換與指令的執(zhí)行是同步的。因此也有人稱其為同步傳送。 無條件傳送方式是一種簡單的輸入輸出方式,一般用于控制CPU與低速接口之間的信息交換.例如,開關(guān)、溫度、壓力流量等(A/D)轉(zhuǎn)換器。由于這些信號變換緩慢,當(dāng)需要采集這些數(shù)據(jù)時(shí),外設(shè)已經(jīng)將數(shù)據(jù)準(zhǔn)備就緒了,因此無需檢查端口的狀態(tài),就可以立即采集數(shù)據(jù)。由于數(shù)據(jù)保持時(shí)間相對于CPU的處理時(shí)間長得多,故輸入端可直接用輸入緩沖器與CPU的數(shù)據(jù)總線相連。若外設(shè)是輸出設(shè)備,一般要求接口有鎖存能力,也就是CPU送給外設(shè)的數(shù)據(jù)應(yīng)該在接口中保持一段時(shí)間,其原因是外設(shè)的速度較慢,所以要求CPU送到接口的數(shù)據(jù)能保持到外設(shè)動(dòng)作相適應(yīng)的時(shí)間。開關(guān)K看作一個(gè)簡單的外設(shè)。K的狀態(tài)是確定的,要么閉合,要么打開。當(dāng)計(jì)算機(jī)通過外設(shè)接口讀K的狀態(tài)時(shí),一定會(huì)讀到指令執(zhí)行時(shí)刻K的狀態(tài). 當(dāng)CPU讀接口地址FFF7H時(shí),或門輸出為低電平。該電平使輸入接口三態(tài)門導(dǎo)通,則開關(guān)K的狀態(tài)就由數(shù)據(jù)線D0讀到CPU。判斷讀入數(shù)據(jù)D0=0時(shí),K閉合;D0=1時(shí),K打開?!纠?-1】圖中外設(shè)是簡單的發(fā)光二極管.此外設(shè)的接口是用鎖存器來實(shí)現(xiàn)的.鎖存器在打入脈沖CP上升沿將輸入端D的數(shù)據(jù)鎖存在它的輸出Q端。編寫點(diǎn)亮二極管的程序?!纠?-2】類似于例1中,讓接在Q0~Q7上的二極管自上而下輪流點(diǎn)亮3s,編寫程序?qū)崿F(xiàn)。
2.查詢方式 無條件傳送對于那些慢速的或總是準(zhǔn)備好的外設(shè)是適應(yīng)的。但是,許多外設(shè)并不總是準(zhǔn)備好的。CPU與這類外設(shè)交換數(shù)據(jù)可以采用程序查詢方式。 所謂查詢方式就是微型計(jì)算機(jī)利用程序不斷地詢問外部設(shè)備的狀態(tài),根據(jù)它們所處的狀態(tài)來實(shí)現(xiàn)數(shù)據(jù)的輸入輸出。 為了實(shí)現(xiàn)這種工作方式,要求外部設(shè)備向微型計(jì)算機(jī)提供一個(gè)狀態(tài)信息。微型計(jì)算機(jī)校驗(yàn)外部設(shè)備所提供的狀態(tài)信息,即查詢外部設(shè)備,以便確定它的下一步操作。(1)單一外設(shè)的查詢工作 最簡單的情況是單一外設(shè)的情況。其采用查詢方式傳送數(shù)據(jù)的過程如下所述。如果CPU要從外設(shè)接收一個(gè)數(shù)據(jù),則CPU首先查詢外設(shè)的狀態(tài),看外設(shè)數(shù)據(jù)是否準(zhǔn)備好,若沒有準(zhǔn)備好,則等待;若外設(shè)已將數(shù)據(jù)準(zhǔn)備好,則CPU從外設(shè)讀取數(shù)據(jù),接收數(shù)據(jù)后,CPU向外設(shè)發(fā)響應(yīng)信號,表示數(shù)據(jù)已被接收。外設(shè)收到響應(yīng)信號后,即開始下一個(gè)數(shù)據(jù)的準(zhǔn)備工作。 若CPU需要向外設(shè)輸出一個(gè)數(shù)據(jù),同樣,CPU首先查詢外設(shè)的狀態(tài),看其是否空閑,若正忙,則等待;若外設(shè)準(zhǔn)備就緒,處于空閑狀態(tài),則CPU向外設(shè)送出數(shù)據(jù)和輸出就緒信號。就緒信號用來通知外設(shè);CPU送來有效數(shù)據(jù)。外設(shè)接收數(shù)據(jù)后,向CPU發(fā)出數(shù)據(jù)已收到的狀態(tài)信息。這樣,一個(gè)數(shù)據(jù)的輸出過程就告結(jié)束?!纠?-3】如圖7-5所示,現(xiàn)欲將48000H為首地址的順序100個(gè)單元的數(shù)據(jù),利用查詢方式輸出到外設(shè)。外設(shè)經(jīng)輸入輸出接口與8086的系統(tǒng)總線連接。CPU通過三態(tài)接口(74LS244)可以查詢外設(shè)的狀態(tài),而且當(dāng)外設(shè)狀態(tài)信號=1時(shí),可以接收CPU由鎖存器(74LS273)輸出的數(shù)據(jù)。=0時(shí),表示外設(shè)處于忙狀態(tài),不能接收數(shù)據(jù)。 程序如下:圖7-5查詢工作方式的I/O接口(2)多個(gè)外設(shè)查詢工作方式 上面我們介紹了單個(gè)外設(shè)利用查詢方式的工作情況。當(dāng)系統(tǒng)中有多個(gè)外設(shè)時(shí),查詢方式工作的流程成圖如圖7-6所示。 從圖可以看出,CPU逐個(gè)外設(shè)進(jìn)行查詢。若發(fā)現(xiàn)那個(gè)外設(shè)準(zhǔn)備就緒,就對該外設(shè)實(shí)施數(shù)據(jù)傳送。然后再對下一外設(shè)查詢,依次循環(huán)。從而可以實(shí)現(xiàn),在查詢過程中,CPU不能做別的事情,這就大大降低了CPU的效率。而且,假如某一外設(shè)剛好在查詢過后處于就緒狀態(tài),那么它必須等到CPU查詢完所有外設(shè),再次查詢此外設(shè)時(shí)才能發(fā)現(xiàn)它處于就緒狀態(tài),而后對此外設(shè)服務(wù)。這樣就不能對外設(shè)進(jìn)行實(shí)時(shí)數(shù)據(jù)交換,這對許多實(shí)時(shí)性要求較高的外設(shè)來說,就有可能丟失數(shù)據(jù)?!?.2簡單接口7.2.1三態(tài)門接口芯片 根據(jù)前面內(nèi)容的介紹,大家已經(jīng)了解到主機(jī)與外設(shè)之間的連接必須通過接口芯片來完成信息的傳送,如:信息的放大、隔離以及鎖存。接口芯片的類型非常繁多,在此我們介紹幾種常用的簡單的接口芯片。 一個(gè)典型的三態(tài)門接口芯片(74LS244)如圖7-7所示。其中,DO0~DO7為8個(gè)輸入端,IO0~I(xiàn)O7為8個(gè)輸出端,E1E2是兩個(gè)控制端,低電平有效,當(dāng)控制端有效時(shí),三態(tài)門導(dǎo)通;當(dāng)它們?yōu)楦唠娖綍r(shí),相應(yīng)的三態(tài)門口呈現(xiàn)高阻狀態(tài)。三態(tài)門只能作為輸入信號接口而不能作為輸出接口,這是因?yàn)?4LS244三態(tài)門本身沒有對信號的保持或鎖存能力。7.2.2鎖存器接口芯片 前面提到的三態(tài)門器件,可以用作固定狀態(tài)的輸入接口。但是,由于它沒有保持(或稱鎖存)數(shù)據(jù)的能力,無法直接用它實(shí)現(xiàn)數(shù)據(jù)的輸出接口。最簡單的輸出接口芯片74LS374,它是一種帶有三態(tài)輸出的鎖存器,其引線圖如圖7.8所示。其中D0~D7為8個(gè)輸入端,Q0~Q7為8個(gè)輸出端,為允許輸出信號,低電平有效,CP脈沖上升沿鎖存,與8086CPU連接時(shí),一般接ALE引腳。只有當(dāng)=0時(shí),74LS374的輸出三態(tài)門才導(dǎo)通。=1時(shí),74LS374的輸出呈現(xiàn)高阻狀態(tài)。由于74LS374是8位的帶有三態(tài)輸出的鎖存器,具有更大的使用靈活性,故它既可以作為輸入接口,又可以用作輸出接口。7.2.3簡單接口舉例1.已知8D鎖存器74LS374用作輸出接口,與CPU總線連接圖如圖7-9所示。試編制一個(gè)接口程序,使其在Q0輸出端產(chǎn)生一個(gè)周期和幅度均任意的方波,如圖所示。圖7-9方波輸出接口電路2.LED數(shù)碼管(1)LED數(shù)碼管分為共陽和共陰兩種結(jié)構(gòu),在此只介紹一種共陽封裝的LED數(shù)碼管,如圖7-10所示。(2)接口電路 這段七段LED數(shù)碼管與微機(jī)系統(tǒng)總線有多種接口方式。此處介紹用74LS138作為譯碼器進(jìn)行選片,用74LS273作為輸出接口,用三態(tài)門作為按鈕K的輸出接口,其連接圖如圖7-11所示。 在圖7-11中,要使數(shù)碼管顯示某數(shù)字或符號,必須用軟件來產(chǎn)生相應(yīng)的數(shù)據(jù)。這是因?yàn)榻涌陔娐分袥]有硬件譯碼器。例如,要顯示數(shù)字3,則LED的a、b、c、d、g各段應(yīng)亮而e、f應(yīng)不亮。結(jié)合圖,則應(yīng)向74LS273寫數(shù)據(jù)4FH。為了方便,可在內(nèi)存中建立有關(guān)顯示的數(shù)字(或符號)與相對應(yīng)輸出數(shù)據(jù)的對應(yīng)表。 下面一段程序可判斷按鈕的狀態(tài)。當(dāng)K閉合時(shí),顯示3,當(dāng)K斷開時(shí)顯示6。圖7-11LED數(shù)碼管及按鈕的一種接口電路教案授課題目第8章并行通信和并行接口8255A教研室主任教務(wù)科長授課時(shí)數(shù)教學(xué)方法教具授課班級與時(shí)間教學(xué)目標(biāo)知識目標(biāo):本章重點(diǎn)掌握計(jì)算機(jī)系統(tǒng)并行通信的概念;并行接口Intel8255A的結(jié)構(gòu)功能、三種工作方式和應(yīng)用。技能目標(biāo):難點(diǎn)是并行接口Intel8255A的工作方式選擇及特點(diǎn),8255A與8086系統(tǒng)的連接應(yīng)用。教學(xué)重點(diǎn)本章重點(diǎn)掌握計(jì)算機(jī)系統(tǒng)并行通信的概念;并行接口Intel8255A的結(jié)構(gòu)功能、三種工作方式和應(yīng)用。教學(xué)難點(diǎn)難點(diǎn)是并行接口Intel8255A的工作方式選擇及特點(diǎn),8255A與8086系統(tǒng)的連接應(yīng)用。教學(xué)內(nèi)容、方法及過程8.1并行通信與并行接口8255A8.1.1并行通信 所謂通信就是計(jì)算機(jī)與外部設(shè)備或者計(jì)算機(jī)之間的信息交換、數(shù)據(jù)傳輸,在計(jì)算機(jī)中,通信是通過輸入輸出(I/O)接口電路來實(shí)現(xiàn)的與外部設(shè)備或者其他的計(jì)算機(jī)數(shù)據(jù)傳輸及信息交換的。計(jì)算機(jī)的兩種基本通信方式是并行通信和串行通信。 并行通信是指將構(gòu)成一組數(shù)據(jù)的各位同時(shí)進(jìn)行傳送的一種通信方式,并行通信強(qiáng)調(diào)的是被傳送的各位同時(shí)輸入或輸出,例如一組8位數(shù)據(jù)或16位數(shù)據(jù)的同時(shí)傳入或傳出。 并行通信的優(yōu)點(diǎn)是傳輸速度快,信息率高,缺點(diǎn)是電纜耗損高。由于同時(shí)傳送所需的每一位二進(jìn)制位都需要一根通信電纜,在進(jìn)行長距離傳輸時(shí),電纜的損耗會(huì)成為突出的問題,而且傳輸?shù)目煽啃噪S著距離的增加而下降,因此并行通信適用于數(shù)據(jù)傳輸率較高、傳輸距離較短的場合。8.1.2并行I/O接口 實(shí)現(xiàn)并行通信的接口稱為并行接口。一個(gè)并行接口可以設(shè)計(jì)成負(fù)責(zé)輸入信息的輸入接口,也可以設(shè)計(jì)成負(fù)責(zé)輸出信息的輸出接口,如果設(shè)計(jì)成同時(shí)具有輸入/輸出功能的接口就是所謂的雙向通信接口。在計(jì)算機(jī)系統(tǒng)中連接打印機(jī)的接口、顯示器接口就是輸出接口;連接磁盤驅(qū)動(dòng)器的接口是雙向接口。 并行接口可以分為不可編程的硬件接口和可編程接口。8.2并行I/O接口芯片8255A8.2.18255A的外部引腳及內(nèi)部結(jié)構(gòu)1.8255A的外部引腳D7~D0為雙向數(shù)據(jù)信號線,用于8255A與系統(tǒng)數(shù)據(jù)線相連,傳送CPU與8255A之間的數(shù)據(jù)、控制信息、狀態(tài)信息。 RD(輸入):8255A讀信號,低電平有效。當(dāng)有效時(shí),CPU從8255A的指定端口讀取數(shù)據(jù)或狀態(tài)信息。通常接系統(tǒng)總線的信號。 WR(輸入):8255A寫信號,低電平有效。當(dāng)有效時(shí),CPU向8255A指定端口寫入控制字或數(shù)據(jù)。通常接系統(tǒng)總線的信號。 CS(輸入):片選信號,當(dāng)它為低電平(有效)時(shí),才能選中該8255A芯片,使
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 模具保養(yǎng)采購合同
- 專業(yè)工程服務(wù)合同指南
- 鋼筋施工勞務(wù)分包合同范例
- 格式化的委托書樣本
- 提前終止租房合同的終止協(xié)議格式
- 電焊條供貨合同樣本
- 居間合同介紹協(xié)議書格式
- 房屋建筑安全施工合同
- 檢測站招標(biāo)文件的節(jié)能創(chuàng)新目標(biāo)
- 房屋使用權(quán)租賃轉(zhuǎn)購合同
- 建設(shè)集團(tuán)公文格式平行文模板
- 在逃人員登記樣表
- 稻田養(yǎng)蟹技術(shù)課件
- 呼吸機(jī)波形分析-概要課件
- 經(jīng)絡(luò)腧穴學(xué)課件
- 建設(shè)工程環(huán)保專項(xiàng)方案
- 讀書之樂作文400字
- 老年人心力衰竭的特點(diǎn)課件
- 組培切片第五波重點(diǎn)看
- 國家開放大學(xué)實(shí)驗(yàn)學(xué)院生活中的法律第一單元測驗(yàn)答案
- 雙減工作教師責(zé)任書
評論
0/150
提交評論