微型計(jì)算機(jī)與接口技術(shù)課件_第1頁(yè)
微型計(jì)算機(jī)與接口技術(shù)課件_第2頁(yè)
微型計(jì)算機(jī)與接口技術(shù)課件_第3頁(yè)
微型計(jì)算機(jī)與接口技術(shù)課件_第4頁(yè)
微型計(jì)算機(jī)與接口技術(shù)課件_第5頁(yè)
已閱讀5頁(yè),還剩331頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

微型計(jì)算機(jī)與接口技術(shù)第1講微型計(jì)算機(jī)系統(tǒng)導(dǎo)論

1.微計(jì)算機(jī)系統(tǒng)的層次

2.系統(tǒng)總線概述

1.微計(jì)算機(jī)系統(tǒng)的層次微處理器(Microprocessor)微型計(jì)算機(jī)(Microcomputer)微計(jì)算機(jī)系統(tǒng)(Microcomputersystem)(1)微處理器(Microprocessor)不包含微型計(jì)算機(jī)硬件的全部功能,但它是微型計(jì)算機(jī)控制、處理的核心。單片VLSI電路,體系結(jié)構(gòu)技術(shù)、工作頻率已達(dá)空前高的水平。主流微處理器具有通用性,不僅用于微型機(jī)也用于工作站及超級(jí)計(jì)算機(jī)。由算邏部件、寄存器、控制部件組成。通用寄存器專(zhuān)用寄存器控制邏輯ALUAB內(nèi)部總線微處理器結(jié)構(gòu)框圖(2)微型計(jì)算機(jī)微處理器:執(zhí)行指令的核心。存儲(chǔ)器:指令碼、操作數(shù)、結(jié)果的存儲(chǔ)。外圍接口電路:并口、串口、外存接口、顯示器接口、網(wǎng)絡(luò)接口、聲音接口等。系統(tǒng)總線:不同層次的總線將上述模塊連接起來(lái),作為各種信息的通路,按信息類(lèi)別分為數(shù)據(jù)、地址、控制三類(lèi)總線。微處理器(up)總線控制邏輯

數(shù)據(jù)總線控制總線

輸入/輸出接口電路

存儲(chǔ)器地址總線

微計(jì)算機(jī)基本結(jié)構(gòu)(3)微計(jì)算機(jī)系統(tǒng)微計(jì)算機(jī):微處理器、存儲(chǔ)器、外圍接口電路、系統(tǒng)總線。軟件:系統(tǒng)軟件、中間軟件、應(yīng)用軟件。外部設(shè)備:軟驅(qū)、硬驅(qū)、光驅(qū)、鍵盤(pán)、鼠標(biāo)、顯示器。電源、機(jī)箱、控制面板。

算術(shù)邏輯單元寄存器陣列控制器電路數(shù)據(jù)總線地址總線控制總線只讀存儲(chǔ)器隨機(jī)訪問(wèn)存儲(chǔ)器串行輸入輸出接口并行輸入輸出接口外存儲(chǔ)器接口顯示器接口等等鍵盤(pán)、鼠標(biāo)顯示示器、打印機(jī)軟磁盤(pán)驅(qū)動(dòng)器硬磁盤(pán)驅(qū)動(dòng)器光盤(pán)驅(qū)動(dòng)器等等微處理器系統(tǒng)總線內(nèi)存儲(chǔ)器外圍接口電路電源、機(jī)箱、控制面板系統(tǒng)軟件中間件應(yīng)用軟件軟件外圍設(shè)備微型計(jì)算機(jī)系統(tǒng)微型計(jì)算機(jī)微處理器,微計(jì)算機(jī),微計(jì)算機(jī)系統(tǒng)三者關(guān)系2.系統(tǒng)總線概述概述ISA總線PCI總線(1)概述總線的定義:在微型計(jì)算機(jī)系統(tǒng)中,利用總線實(shí)現(xiàn)芯片內(nèi)部、印刷電路板各部件之間、機(jī)箱內(nèi)個(gè)插件之間、主機(jī)與外設(shè)之間或系統(tǒng)與系統(tǒng)之間的連接與通信。在這里我們把芯片內(nèi)部的各功能部件、芯片、插件板、集成的系統(tǒng)、主機(jī)和外設(shè)等都看成是一個(gè)個(gè)相對(duì)獨(dú)立的模塊。連接在總線上的模塊可分為主模塊和從屬模塊,對(duì)于讀操作命令,數(shù)據(jù)源模塊為從屬模塊(存儲(chǔ)器或I/O接口)目的模塊是主模塊(CPU或DMAC);對(duì)于寫(xiě)命令,正好和讀操作相反。因而總線可定義為:是一組信號(hào)的集合,是計(jì)算機(jī)各模塊之間進(jìn)行信息傳播的公共通道。

目前總線在微機(jī)系統(tǒng)中的作用已不僅僅是傳送數(shù)據(jù),總線的結(jié)構(gòu)還決定了機(jī)器系統(tǒng)硬件的組成結(jié)構(gòu),它是計(jì)算機(jī)總體結(jié)構(gòu)的支柱。總線設(shè)計(jì)的好壞直接影響整個(gè)計(jì)算機(jī)系統(tǒng)的性能、可靠性、可擴(kuò)展性和可升級(jí)性。隨著計(jì)算機(jī)技術(shù)的發(fā)展,總線結(jié)構(gòu)越來(lái)越復(fù)雜,功能也越來(lái)越強(qiáng)大。總線的分類(lèi):總線按傳送信息的類(lèi)別可分為:地址總線、數(shù)據(jù)總線、控制總線三類(lèi)??偩€按在微機(jī)結(jié)構(gòu)中所處的位置可分為:片內(nèi)總線。是指位于集成電路芯片內(nèi)部的總線。例如CPU內(nèi)部總線,用來(lái)連接其內(nèi)部的各功能單元。芯片總線。也成片級(jí)總線,用于同一電路板上各芯片之間連接的總線。系統(tǒng)總線。是指模塊式微型計(jì)算機(jī)機(jī)箱內(nèi)的底板總線,用來(lái)連接微機(jī)的各插件板。其表現(xiàn)形式是位于底板上的一個(gè)個(gè)標(biāo)準(zhǔn)的總線擴(kuò)展槽。通常所說(shuō)的微機(jī)總線就是指的這一總線。系統(tǒng)總線按采用的技術(shù)和發(fā)展水平通常有兩種分類(lèi)按性能分為高端總線(支持64位處理器的總線,如PCI)和低端總線(支持8、16位處理器的總線,如IBM-PC/XT、ISA總線);按技術(shù)差異分為傳統(tǒng)總線和現(xiàn)代總線。外部總線。用于系統(tǒng)與系統(tǒng)或自薦的連接和通信。為微機(jī)與微機(jī)之間、微機(jī)與外設(shè)之間提供標(biāo)準(zhǔn)連接。通常用的外部總線是IEEE-488和RS232接口總線??偩€的通信方式:為了保證通信的可靠性,主、從模塊間至少應(yīng)該滿(mǎn)足下述關(guān)系:發(fā)送模塊在開(kāi)始發(fā)送數(shù)據(jù)時(shí),接受模塊應(yīng)作好接受的準(zhǔn)備。在接受模塊沒(méi)有受到準(zhǔn)確的數(shù)據(jù)前,發(fā)送模塊不應(yīng)撤除發(fā)送信號(hào)。因此主、從模塊通常采用同步傳輸、半同步傳輸、異步傳輸三種方式來(lái)實(shí)現(xiàn)總線傳輸?shù)目刂?。總線標(biāo)準(zhǔn):為了是總線能夠更好地連接不同的模塊和傳輸數(shù)據(jù),為其制定或公開(kāi)總線的一些詳細(xì)規(guī)范,這種規(guī)范叫做總線標(biāo)準(zhǔn)??偩€標(biāo)準(zhǔn)包含的內(nèi)容有機(jī)械結(jié)構(gòu)規(guī)范、功能結(jié)構(gòu)規(guī)范和電氣規(guī)范。流行總線的性能指標(biāo):總線寬度(數(shù)據(jù)總線的條數(shù))、標(biāo)準(zhǔn)傳輸率(單位MB/s)、時(shí)鐘同步/異步、數(shù)據(jù)/地址的多路復(fù)用與非復(fù)用、信號(hào)線數(shù)等等。1.微計(jì)算機(jī)系統(tǒng)的層次微處理器(Microprocessor)微型計(jì)算機(jī)(Microcomputer)微計(jì)算機(jī)系統(tǒng)(Microcomputersystem)(1)微處理器(Microprocessor)不包含微型計(jì)算機(jī)硬件的全部功能,但它是微型計(jì)算機(jī)控制、處理的核心。單片VLSI電路,體系結(jié)構(gòu)技術(shù)、工作頻率已達(dá)空前高的水平。主流微處理器具有通用性,不僅用于微型機(jī)也用于工作站及超級(jí)計(jì)算機(jī)。由算邏部件、寄存器、控制部件組成。通用寄存器專(zhuān)用寄存器控制邏輯ALUAB內(nèi)部總線微處理器結(jié)構(gòu)框圖(2)微型計(jì)算機(jī)微處理器:執(zhí)行指令的核心。存儲(chǔ)器:指令碼、操作數(shù)、結(jié)果的存儲(chǔ)。外圍接口電路:并口、串口、外存接口、顯示器接口、網(wǎng)絡(luò)接口、聲音接口等。系統(tǒng)總線:不同層次的總線將上述模塊連接起來(lái),作為各種信息的通路,按信息類(lèi)別分為數(shù)據(jù)、地址、控制三類(lèi)總線。微處理器(up)總線控制邏輯

數(shù)據(jù)總線控制總線

輸入/輸出接口電路

存儲(chǔ)器地址總線

微計(jì)算機(jī)基本結(jié)構(gòu)(3)微計(jì)算機(jī)系統(tǒng)微計(jì)算機(jī):微處理器、存儲(chǔ)器、外圍接口電路、系統(tǒng)總線。軟件:系統(tǒng)軟件、中間軟件、應(yīng)用軟件。外部設(shè)備:軟驅(qū)、硬驅(qū)、光驅(qū)、鍵盤(pán)、鼠標(biāo)、顯示器。電源、機(jī)箱、控制面板。

算術(shù)邏輯單元寄存器陣列控制器電路數(shù)據(jù)總線地址總線控制總線只讀存儲(chǔ)器隨機(jī)訪問(wèn)存儲(chǔ)器串行輸入輸出接口并行輸入輸出接口外存儲(chǔ)器接口顯示器接口等等鍵盤(pán)、鼠標(biāo)顯示示器、打印機(jī)軟磁盤(pán)驅(qū)動(dòng)器硬磁盤(pán)驅(qū)動(dòng)器光盤(pán)驅(qū)動(dòng)器等等微處理器系統(tǒng)總線內(nèi)存儲(chǔ)器外圍接口電路電源、機(jī)箱、控制面板系統(tǒng)軟件中間件應(yīng)用軟件軟件外圍設(shè)備微型計(jì)算機(jī)系統(tǒng)微型計(jì)算機(jī)微處理器,微計(jì)算機(jī),微計(jì)算機(jī)系統(tǒng)三者關(guān)系2.系統(tǒng)總線概述概述ISA總線PCI總線(1)概述總線的定義:在微型計(jì)算機(jī)系統(tǒng)中,利用總線實(shí)現(xiàn)芯片內(nèi)部、印刷電路板各部件之間、機(jī)箱內(nèi)個(gè)插件之間、主機(jī)與外設(shè)之間或系統(tǒng)與系統(tǒng)之間的連接與通信。在這里我們把芯片內(nèi)部的各功能部件、芯片、插件板、集成的系統(tǒng)、主機(jī)和外設(shè)等都看成是一個(gè)個(gè)相對(duì)獨(dú)立的模塊。連接在總線上的模塊可分為主模塊和從屬模塊,對(duì)于讀操作命令,數(shù)據(jù)源模塊為從屬模塊(存儲(chǔ)器或I/O接口)目的模塊是主模塊(CPU或DMAC);對(duì)于寫(xiě)命令,正好和讀操作相反。因而總線可定義為:是一組信號(hào)的集合,是計(jì)算機(jī)各模塊之間進(jìn)行信息傳播的公共通道。

目前總線在微機(jī)系統(tǒng)中的作用已不僅僅是傳送數(shù)據(jù),總線的結(jié)構(gòu)還決定了機(jī)器系統(tǒng)硬件的組成結(jié)構(gòu),它是計(jì)算機(jī)總體結(jié)構(gòu)的支柱??偩€設(shè)計(jì)的好壞直接影響整個(gè)計(jì)算機(jī)系統(tǒng)的性能、可靠性、可擴(kuò)展性和可升級(jí)性。隨著計(jì)算機(jī)技術(shù)的發(fā)展,總線結(jié)構(gòu)越來(lái)越復(fù)雜,功能也越來(lái)越強(qiáng)大??偩€的分類(lèi):總線按傳送信息的類(lèi)別可分為:地址總線、數(shù)據(jù)總線、控制總線三類(lèi)??偩€按在微機(jī)結(jié)構(gòu)中所處的位置可分為:片內(nèi)總線。是指位于集成電路芯片內(nèi)部的總線。例如CPU內(nèi)部總線,用來(lái)連接其內(nèi)部的各功能單元。芯片總線。也成片級(jí)總線,用于同一電路板上各芯片之間連接的總線。系統(tǒng)總線。是指模塊式微型計(jì)算機(jī)機(jī)箱內(nèi)的底板總線,用來(lái)連接微機(jī)的各插件板。其表現(xiàn)形式是位于底板上的一個(gè)個(gè)標(biāo)準(zhǔn)的總線擴(kuò)展槽。通常所說(shuō)的微機(jī)總線就是指的這一總線。系統(tǒng)總線按采用的技術(shù)和發(fā)展水平通常有兩種分類(lèi)按性能分為高端總線(支持64位處理器的總線,如PCI)和低端總線(支持8、16位處理器的總線,如IBM-PC/XT、ISA總線);按技術(shù)差異分為傳統(tǒng)總線和現(xiàn)代總線。外部總線。用于系統(tǒng)與系統(tǒng)或自薦的連接和通信。為微機(jī)與微機(jī)之間、微機(jī)與外設(shè)之間提供標(biāo)準(zhǔn)連接。通常用的外部總線是IEEE-488和RS232接口總線。總線的通信方式:為了保證通信的可靠性,主、從模塊間至少應(yīng)該滿(mǎn)足下述關(guān)系:發(fā)送模塊在開(kāi)始發(fā)送數(shù)據(jù)時(shí),接受模塊應(yīng)作好接受的準(zhǔn)備。在接受模塊沒(méi)有受到準(zhǔn)確的數(shù)據(jù)前,發(fā)送模塊不應(yīng)撤除發(fā)送信號(hào)。因此主、從模塊通常采用同步傳輸、半同步傳輸、異步傳輸三種方式來(lái)實(shí)現(xiàn)總線傳輸?shù)目刂???偩€標(biāo)準(zhǔn):為了是總線能夠更好地連接不同的模塊和傳輸數(shù)據(jù),為其制定或公開(kāi)總線的一些詳細(xì)規(guī)范,這種規(guī)范叫做總線標(biāo)準(zhǔn)??偩€標(biāo)準(zhǔn)包含的內(nèi)容有機(jī)械結(jié)構(gòu)規(guī)范、功能結(jié)構(gòu)規(guī)范和電氣規(guī)范。流行總線的性能指標(biāo):總線寬度(數(shù)據(jù)總線的條數(shù))、標(biāo)準(zhǔn)傳輸率(單位MB/s)、時(shí)鐘同步/異步、數(shù)據(jù)/地址的多路復(fù)用與非復(fù)用、信號(hào)線數(shù)等等。1.8086/8088指令系統(tǒng)

8086/8088指令格式

8086/8088指令系統(tǒng)的尋址方式

8086/8088指令系統(tǒng)

(1)8086/8088指令格式

用匯編語(yǔ)言編寫(xiě)的匯編語(yǔ)言程序輸入計(jì)算機(jī)后,必須由“匯編程序”將它翻譯成由機(jī)器指令(指令碼)組成的機(jī)器語(yǔ)言程序,才能由計(jì)算機(jī)識(shí)別并執(zhí)行。因此匯編語(yǔ)言程序需由匯編程序翻譯成可執(zhí)行的機(jī)器語(yǔ)言程序,一般來(lái)說(shuō),這一過(guò)程不必由人來(lái)干預(yù)。我們這里只介紹一下基本原理,以便在必要時(shí)也可以手工完成類(lèi)似的工作。8086/8088指令系統(tǒng)的指令類(lèi)型較多,功能很強(qiáng)。各種指令由于功能不同,需要指令碼提供的信息也不同。為了滿(mǎn)足不同功能的要求又要盡量減少指令所占的空間,8086/8088指令系統(tǒng)采用了一種靈活的、由1~6個(gè)字節(jié)組成的變字長(zhǎng)的指令格式,包括操作碼、尋址方式以及操作數(shù)三個(gè)部分,如圖3.1所示。通常指令的第一字節(jié)為操作碼字節(jié)(OPCODE),規(guī)定指令的操作類(lèi)型;第二字節(jié)為尋址方式字節(jié)(MOD),規(guī)定操作數(shù)的尋址方式;接著以后的3~6字節(jié)依據(jù)指令的不同而取舍,可變字長(zhǎng)的指令主要體現(xiàn)在這里,一般由它指出存儲(chǔ)器操作數(shù)地址的位移量或立即數(shù)。圖3.18086/8088不同字長(zhǎng)的指令碼格式

操作碼/尋址方式字節(jié)格式如下:

第一字節(jié)中,W指示操作數(shù)類(lèi)型:W=0為字節(jié),W=1為字;D指示操作數(shù)的傳送方向:D=0表示寄存器操作數(shù)為源操作數(shù),D=1表示寄存器操作數(shù)為目的操作數(shù)。第二字節(jié)指出所用的兩個(gè)操作數(shù)存放的位置,以及存儲(chǔ)器中操作數(shù)偏移地址的計(jì)算方法。其中:REG字段規(guī)定一個(gè)寄存器操作數(shù),它作為源操作數(shù)還是目的操作數(shù)已由第一字節(jié)中的D位規(guī)定。由REG字段選擇寄存器的具體規(guī)定如表3.1所示。表3.1REG字段編碼表

REGW=1(字操作)W=0(字節(jié)操作)000AXAL001CXCL010DXDL011BXBL100SPAH101BPCH110SIDH111DIBHMOD字段用來(lái)區(qū)分另一個(gè)操作數(shù)在寄存器中(寄存器尋址)還是在存儲(chǔ)器中(存儲(chǔ)器尋址),在存儲(chǔ)器尋址的情況下,還用來(lái)指出該字節(jié)后面有無(wú)位移量,有多少位位移量。MOD字段的編碼如表3.2所示。表3.2MOD字段編碼表

MOD尋址方式00存儲(chǔ)器尋址,沒(méi)有位移量01存儲(chǔ)器尋址,有8位位移10存儲(chǔ)器尋址,有16位位移11寄存器尋址,沒(méi)有位移量R/M字段受MOD字段控制。MOD=11為寄存器方式,R/M字段將指出第二操作數(shù)所在的寄存器編號(hào);MOD=00,01,10為存儲(chǔ)器方式,R/M則指出如何計(jì)算存儲(chǔ)器中操作數(shù)的偏移地址。MOD與R/M字段組合的尋址方式見(jiàn)表3.3。表3.3MOD與R/M字段組合的尋址方式

例3.1

MOVAH,[BX+DI+50H]

代碼格式:100010100110000101010000OPCODEDWMODREGR/Mdisp–8指令碼為:8A6150H

例3.2ADDdisp[BX][DI],DX

;disp=2345H

代碼格式:00000001100100010101000000100011OPCODEDWMODREGR/Mdisp–Hidisp-Hi指令碼為:01914523H(2)8086/8088指令系統(tǒng)的尋址方式

1.操作數(shù)的種類(lèi)

1)數(shù)據(jù)操作數(shù)這類(lèi)操作數(shù)是與數(shù)據(jù)有關(guān)的操作數(shù),即指令中操作的對(duì)象是數(shù)據(jù)。數(shù)據(jù)操作數(shù)又可分為:

(1)立即數(shù)操作數(shù)。指令中要操作的數(shù)據(jù)包含在指令中。

(2)寄存器操作數(shù)。指令中要操作的數(shù)據(jù)存放在指定的寄存器中。

(3)存儲(chǔ)器操作數(shù)。指令中要操作的數(shù)據(jù)存放在指定的存儲(chǔ)單元中。

(4)I/O操作數(shù)。指令中要操作的數(shù)據(jù)來(lái)自或送到I/O端口。2)地址操作數(shù)這類(lèi)操作數(shù)是與程序轉(zhuǎn)移地址有關(guān)的操作數(shù),即指令中操作的對(duì)象不是數(shù)據(jù),而是要轉(zhuǎn)移的目標(biāo)地址。它也可以分為立即數(shù)操作數(shù)、寄存器操作數(shù)和存儲(chǔ)器操作數(shù),即要轉(zhuǎn)移的目標(biāo)地址包含在指令中,或存放在寄存器中,或存放在存儲(chǔ)單元之中。對(duì)于數(shù)據(jù)操作數(shù),有的指令有兩個(gè)操作數(shù):一個(gè)稱(chēng)為源操作數(shù),在操作過(guò)程中其值不改變;另一個(gè)稱(chēng)為目的操作數(shù),操作后一般被操作結(jié)果代替。有的指令只有一個(gè)操作數(shù),或沒(méi)有(或隱含)操作數(shù)。對(duì)于地址操作數(shù),指令只有一個(gè)目的操作數(shù),它是一個(gè)供程序轉(zhuǎn)移的目標(biāo)地址。2.尋址方式所謂尋址方式,就是指指令中給出的尋找操作數(shù)(包括數(shù)據(jù)操作數(shù)和地址操作數(shù))的方法。根據(jù)操作數(shù)的種類(lèi),8086/8088指令系統(tǒng)的尋址方式分為兩大類(lèi):數(shù)據(jù)尋址方式和地址尋址方式。

1)數(shù)據(jù)尋址方式數(shù)據(jù)尋址方式可分為立即數(shù)尋址方式、寄存器尋址方式、存儲(chǔ)器尋址方式和I/O端口尋址方式四種類(lèi)型。(1)立即數(shù)尋址方式(ImmediateAddressing)。立即數(shù)尋址方式所提供的操作數(shù)直接包含在指令中,緊跟在操作碼之后,它作為指令的一部分,這種操作數(shù)稱(chēng)為立即數(shù)。立即數(shù)可以是8位的,也可以是16位的。如果是16位數(shù),則高位字節(jié)存放在高地址存儲(chǔ)單元中,低位字節(jié)存放在低地址存儲(chǔ)單元中。例如:

MOV BL,80H MOV AX,1090H則指令執(zhí)行情況如圖3.2所示。執(zhí)行結(jié)果為:(BL)=80H,(AX)=1090H。圖3.2立即數(shù)尋址方式指令的執(zhí)行情況(2)寄存器尋址方式(RegisterAddressing)。寄存器尋址方式的操作數(shù)存放在指令規(guī)定的寄存器中,寄存器的名字在指令中指出。對(duì)于16位操作數(shù),寄存器可以是AX、BX、CX、DX、SI、DI、SP或BP。對(duì)于8位操作數(shù),寄存器可以是AH、AL、BH、BL、CH、CL、DH或DL。例如:

MOV CL,DL MOV AX,BX如果(DL)=50H,(BX)=1234H,則指令執(zhí)行情況如圖3.3所示。執(zhí)行結(jié)果為:(CL)=50H,(AX)=1234H。圖3.3寄存器尋址方式的指令執(zhí)行情況

由于寄存器尋址方式的操作數(shù)就在CPU內(nèi)部的寄存器中,不需要訪問(wèn)存儲(chǔ)器來(lái)取得操作數(shù),因而可以取得較高的運(yùn)行速度。(3)存儲(chǔ)器尋址方式(MemoryAddressing)。存儲(chǔ)器尋址方式的操作數(shù)存放在存儲(chǔ)單元中。在第2講中已經(jīng)知道,操作數(shù)在存儲(chǔ)器中的物理地址是由段地址左移4位與操作數(shù)在段內(nèi)的偏移地址相加得到的。段地址在實(shí)模式和保護(hù)模式下可從不同途徑取得。本節(jié)要討論的問(wèn)題是指令中是如何給出存儲(chǔ)器操作數(shù)在段內(nèi)的偏移地址的。偏移地址又稱(chēng)為有效地址(EffectiveAddress,EA),所以存儲(chǔ)器尋址方式即為求得有效地址(EA)的不同途徑。

有效地址可以由以下三種地址分量組成:●位移量(Displacement):它是存放在指令中的一個(gè)8位或16位的數(shù),但它不是立即數(shù),而是一個(gè)地址?!窕?BaseAddress):它是存放在基址寄存器BX或BP中的內(nèi)容?!褡冎?IndexAddess):它是存放在變址寄存器SI或DI中的內(nèi)容。對(duì)于某條具體指令,這三個(gè)地址分量可有不同的組合。如果存在兩個(gè)或兩個(gè)以上的分量,那么就需要進(jìn)行加法運(yùn)算,求出操作數(shù)的有效地址(EA),進(jìn)而求出物理地址(PA)。正是因?yàn)檫@三種地址分量有不同的組合,才使得對(duì)存儲(chǔ)器操作數(shù)的尋址產(chǎn)生了若干種不同的方式。①直接尋址方式(DirectAddressing)。直接尋址方式的操作數(shù)有效地址只包含位移量一種分量,即在指令的操作碼后面直接給出有效地址。對(duì)這種尋址方式有:EA=位移量。例如:

MOVAL,[1064H]

如果(DS)=2000H,則指令執(zhí)行情況如圖3.4所示。執(zhí)行結(jié)果為:(AL)=45H。圖3.4直接尋址方式的指令執(zhí)行情況

注意這種直接尋址方式與前面介紹的立即數(shù)尋址方式的不同。從指令的表示形式來(lái)看,在直接尋址方式中,對(duì)于表示有效地址的16位數(shù),必須加上方括號(hào)。從指令的功能上來(lái)看,本例指令的功能不是將立即數(shù)1064H傳送到累加器AL,而是將一個(gè)有效地址是1064H的存儲(chǔ)單元的內(nèi)容傳送到AL。設(shè)此時(shí)數(shù)據(jù)段寄存器(DS)=2000H,則該存儲(chǔ)單元的物理地址為:PA=2000H

10H+1064H=20000H+1064H=21064H

如果沒(méi)有特殊指明,直接尋址方式的操作數(shù)一般在存儲(chǔ)器的數(shù)據(jù)段中,即隱含的段寄存器是DS。但是8086/8088也允許段超越,此時(shí)需要在指令中特別標(biāo)明,方法是在有關(guān)操作數(shù)的前面寫(xiě)上操作數(shù)所在段的段寄存器名,再加上冒號(hào)。例如,若以上指令中源操作數(shù)不在數(shù)據(jù)段而在附加數(shù)據(jù)段中,則指令應(yīng)寫(xiě)為如下形式:

MOVAL,ES:[1064H]

在匯編語(yǔ)言指令中,可以用符號(hào)地址來(lái)表示位移量。例如:

MOVAL,[value]或MOVAL,value此時(shí)value為存儲(chǔ)單元的符號(hào)地址。②寄存器間接尋址方式(RegisterIndirectAddressing)。寄存器間接尋址方式的操作數(shù)有效地址只包含基址寄存器(BX)的內(nèi)容或變址寄存器(SI、DI)的內(nèi)容一種分量。因此,操作數(shù)的有效地址在某個(gè)寄存器中,而操作數(shù)本身則在存儲(chǔ)器中的數(shù)據(jù)段內(nèi)。這與寄存器尋址方式操作數(shù)就在寄存器中是不同的。寄存器間接尋址方式的有效地址表示為:?EA=(SI)(DI)(BX)

書(shū)寫(xiě)指令時(shí),用做間址的寄存器必須加上方括弧,以免與一般的寄存器尋址方式混淆。例如:MOVAX,[SI]MOV[BX],AL

如果(DS)=3000H,(SI)=2000H,(BX)=1000H,(AL)=64H,則上述兩條指令的執(zhí)行情況如圖3.5所示。執(zhí)行結(jié)果為:(AX)=4050H,(31000H)=64H。圖3.5寄存器間接尋址方式的指令執(zhí)行情況同樣,寄存器間接尋址方式也允許段超越。例如:

MOVES:[DI],AX③寄存器相對(duì)尋址方式(RegisterRelativeAddressing)。寄存器相對(duì)尋址方式的操作數(shù)有效地址EA是一個(gè)基址寄存器或變址寄存器的內(nèi)容和指令中給定的8位或16位位移量相加之和,所以有效地址由兩種分量組成??捎米黾拇嫫飨鄬?duì)尋址方式的寄存器有基址寄存器BX、BP和變址寄存器SI、DI。即(SI)(DI)(BX)(BP)EA=+disp–8/disp–16

上述位移量可以看成是一個(gè)存放于寄存器中的基值的一個(gè)相對(duì)值,故稱(chēng)為寄存器相對(duì)尋址方式。在一般情況下,若指令中指定的寄存器是BX、SI、DI,則操作數(shù)默認(rèn)為存放在數(shù)據(jù)段中;若指令中指定的寄存器是BP,則操作數(shù)默認(rèn)為存放在堆棧段中。同樣,寄存器相對(duì)尋址方式也允許段超越。位移量既可以是一個(gè)8位或16位的立即數(shù),也可以是符號(hào)地址。例如:

MOV[SI+10H],AXMOVCX,[BX+COUNT]

如果(DS)=3000H,(SI)=2000H,(BX)=1000H,COUNT=1050H,(AX)=4050H,則指令執(zhí)行情況如圖3.6所示。執(zhí)行結(jié)果為:(32010H)=4050H,(CX)=4030H。圖3.6寄存器相對(duì)尋址方式的指令執(zhí)行情況

該尋址方式的操作數(shù)在匯編語(yǔ)言指令中書(shū)寫(xiě)時(shí)可以是下述形式之一:MOVAL,[BP+TABLE]MOVAL,[BP]+TABLEMOVAL,TABLE[BP]

其實(shí)以上三條指令代表的是同一功能的指令。其中TABLE為8位或16位位移量。④基址變址尋址方式(BasedIndexedAddressing)。基址變址尋址方式的操作數(shù)有效地址是一個(gè)基址寄存器(BX或BP)和一個(gè)變址寄存器(SI或DI)的內(nèi)容之和,所以有效地址由兩種分量組成。即

在一般情況下,由基址寄存器決定操作數(shù)在哪個(gè)段中。若用BX的內(nèi)容作為基地址,則操作數(shù)在數(shù)據(jù)段中;若用BP的內(nèi)容作為基地址,則操作數(shù)在堆棧段中。基址變址尋址方式同樣也允許段超越。例如:MOV[BX+DI],AXMOVAH,[BP][SI]

設(shè)當(dāng)前(DS)=3000H,(SS)=4000H,(BX)=1000H,(DI)=1100H,(AX)=0050H,(BP)=2000H,(SI)=1200H,則指令的執(zhí)行情況如圖3.7所示。執(zhí)行結(jié)果為:(32100H)=0050H,(AH)=56H。圖3.7基址變址尋址方式的指令執(zhí)行情況

該尋址方式的操作數(shù)在匯編語(yǔ)言指令中書(shū)寫(xiě)時(shí)可以是下列形式之一:

MOVAX,[BP+SI]MOVAX,[BP][SI]⑤基址變址相對(duì)尋址方式(BasedIndexedRelativeAddressing)?;纷冎废鄬?duì)尋址方式的操作數(shù)有效地址是一個(gè)基址寄存器內(nèi)容、一個(gè)變址寄存器內(nèi)容與指令中指定的一個(gè)8位或16位位移量之和,所以有效地址由三個(gè)分量組成。即

同樣,當(dāng)基址寄存器為BX時(shí),操作數(shù)在數(shù)據(jù)段中;基址寄存器為BP時(shí),操作數(shù)在堆棧段中?;纷冎废鄬?duì)尋址方式同樣也允許段超越。例如:

MOVAH,[BX+DI+1234H] MOV[BP+SI+DATA],CX

若(DS)=4000H,(SS)=5000H,(BX)=1000H,(DI)=1500H,(BP)=2000H,(SI)=1050H,(CX)=2050H,DATA=10H,則指令執(zhí)行情況如圖3.8所示。執(zhí)行結(jié)果為:(AH)=64H,(53060H)=2050H?;纷冎废鄬?duì)尋址方式也可以表示成以下幾種不同的形式:

MOVAX,[BX+SI+COUNT] MOVAX,[BX][SI+COUNT] MOVAX,[BX+SI]COUNT MOVAX,[BX][SI]COUNT MOVAX,COUNT[BX][SI]圖3.8基址變址相對(duì)尋址方式的指令執(zhí)行情況(4)?I/O端口尋址方式。I/O端口尋址有以下兩種尋址方式:

①端口直接尋址方式。對(duì)這種尋址方式,端口地址用8位立即數(shù)(0~255)表示。例如:

INAL,21H

此指令表示從地址為21H的端口中讀取數(shù)據(jù)送到AL中。假設(shè)21H端口提供的數(shù)據(jù)為7FH,則指令執(zhí)行情況如圖3.9所示。執(zhí)行結(jié)果為:將21H端口提供的數(shù)據(jù)7FH輸入到8位寄存器AL中。②端口間接尋址方式。當(dāng)I/O端口地址大于FFH時(shí),必須事先將端口地址存放在DX寄存器中。例如:

MOVDX,120HOUT?DX,AX

前一條指令將端口地址120H送到DX寄存器,后一條指令將AX中的內(nèi)容輸出到地址由DX寄存器內(nèi)容所指定的端口中。指令執(zhí)行情況如圖3.10所示。執(zhí)行結(jié)果為:將AX寄存器的內(nèi)容輸出到120H端口。圖3.9端口直接尋址的指令執(zhí)行情況圖3.10端口間接尋址的指令執(zhí)行情況2)地址尋址方式在8086/8088指令系統(tǒng)中,有一組指令被用來(lái)控制程序的執(zhí)行順序。程序的執(zhí)行順序是由CS和IP的內(nèi)容所決定的。通常情況下,當(dāng)BIU完成一次取指周期后,就自動(dòng)改變IP的內(nèi)容以指向下一條指令的地址,使程序按預(yù)先存放在程序存儲(chǔ)器中的指令的次序,由低地址到高地址順序執(zhí)行。如需要改變程序的執(zhí)行順序,當(dāng)轉(zhuǎn)移到所要求的指令地址再順序執(zhí)行時(shí),可以安排一條程序轉(zhuǎn)移指令,并按指令的要求修改IP內(nèi)容或同時(shí)修改IP和CS的內(nèi)容,從而將程序轉(zhuǎn)移到指令所指定的轉(zhuǎn)移地址。地址尋址方式就是找出程序轉(zhuǎn)移的地址。轉(zhuǎn)移地址可以在段內(nèi)(稱(chēng)為段內(nèi)轉(zhuǎn)移),也可以跨段(稱(chēng)段間轉(zhuǎn)移)。尋求轉(zhuǎn)移地址的方法稱(chēng)為地址尋址方式,它有如下四種方式。(1)段內(nèi)直接尋址方式。段內(nèi)直接尋址方式也稱(chēng)為相對(duì)尋址方式。轉(zhuǎn)移的地址是當(dāng)前的IP內(nèi)容和指令規(guī)定的下一條指令到目標(biāo)地址之間的8位或16位相對(duì)位移量之和,相對(duì)位移量可正可負(fù)。當(dāng)位移量是8位時(shí),稱(chēng)為短轉(zhuǎn)移,轉(zhuǎn)移范圍為?128~+127;位移量是16位時(shí),稱(chēng)為近轉(zhuǎn)移,轉(zhuǎn)移范圍為?32768~+32767。這種尋址方式適用于無(wú)條件轉(zhuǎn)移或條件轉(zhuǎn)移類(lèi)指令。但條件轉(zhuǎn)移里只有8位位移量的短轉(zhuǎn)移。

段內(nèi)直接尋址轉(zhuǎn)移指令的格式可以表示為:

JMPNEARPTRPROGIA JMPSHORTQUEST

其中,PROGIA和QUEST均為轉(zhuǎn)向的目標(biāo)地址,在機(jī)器指令中,用位移量來(lái)表示。在匯編語(yǔ)言中,如果位移量為16位,則在目標(biāo)地址前加操作符NEARPTR;如果位移量為8位,則在目標(biāo)地址前加操作符SHORT。但是,如果目標(biāo)地址的標(biāo)號(hào)已經(jīng)定義(即標(biāo)號(hào)先定義后引用),那么,即使在標(biāo)號(hào)前沒(méi)有寫(xiě)運(yùn)算符SHORT,匯編程序也能自動(dòng)生成一個(gè)2字節(jié)的短轉(zhuǎn)移指令。這種情況屬于隱含的短轉(zhuǎn)移。(2)段內(nèi)間接尋址方式。該尋址方式的程序轉(zhuǎn)移地址存放在寄存器或存儲(chǔ)單元中。存儲(chǔ)器可用各種數(shù)據(jù)尋址方式表示。指令的操作是用指定的寄存器或存儲(chǔ)器中的值取代當(dāng)前IP的內(nèi)容,以實(shí)現(xiàn)程序的段內(nèi)轉(zhuǎn)移。這種尋址方式以及以下的兩種段間尋址方式都不能用于條件轉(zhuǎn)移指令。也就是說(shuō),條件轉(zhuǎn)移指令只能使用段內(nèi)直接尋址的8位位移量。

段內(nèi)間接尋址轉(zhuǎn)移指令的格式可以表示為:

JMPBX JMPWORDPTR[BP+TABLE]

其中WORDPTR為操作符,用以指出其后的尋址方式所取得的目標(biāo)地址是一個(gè)字的有效地址。(3)段間直接尋址方式。這種尋址方式是在指令中直接給出16位的段地址和16位的偏移地址用來(lái)更新當(dāng)前的CS和IP的內(nèi)容。指令的格式可以表示為:

JMPLABEL_NAMEJMPFARPTRNEXTROUTINT其中,LABEL_NAME是一個(gè)在另外的代碼段內(nèi)已定義的遠(yuǎn)標(biāo)號(hào)。指令的操作是用標(biāo)號(hào)的偏移地址取代指令指針寄存器IP的內(nèi)容,同時(shí)用標(biāo)號(hào)所在段的段地址取代當(dāng)前代碼段寄存器CS的內(nèi)容,結(jié)果使程序轉(zhuǎn)移到另一代碼段內(nèi)指定的標(biāo)號(hào)處。第二條指令利用運(yùn)算符將標(biāo)號(hào)NEXTROUTINT的屬性定義為FAR。(4)段間間接尋址方式。這種尋址方式是由指令中給出的存儲(chǔ)器尋址方式求出存放轉(zhuǎn)移地址的四個(gè)連續(xù)存儲(chǔ)單元的地址。指令的操作是將存儲(chǔ)器的前兩個(gè)單元的內(nèi)容送給IP,后兩個(gè)單元的內(nèi)容送給CS,以實(shí)現(xiàn)到另一個(gè)段的轉(zhuǎn)移。以下是兩條段間間接轉(zhuǎn)移指令的例子:

JMPVAR_DOUBLEWORDJMPDWORDPTR[BP][DI]上面第一條指令中,VAR_DOUBLEWORD應(yīng)是一個(gè)已定義為32位的存儲(chǔ)器變量;第二條指令中,利用運(yùn)算符PTR將存儲(chǔ)器操作數(shù)的類(lèi)型定義為DWORD(雙字)。(3)8086/8088指令系統(tǒng)

數(shù)據(jù)傳送指令算術(shù)運(yùn)算指令位操作指令串操作指令程序控制指令處理器控制指令1.?dāng)?shù)據(jù)傳送指令數(shù)據(jù)傳送指令是程序中使用最頻繁的指令。這是因?yàn)椴徽摮绦蜥槍?duì)何種具體的實(shí)際問(wèn)題,往往都需要將原始數(shù)據(jù)、中間結(jié)果、最終結(jié)果以及其他各種信息在CPU的寄存器和存儲(chǔ)器或I/O端口之間多次傳送。數(shù)據(jù)傳送指令按其功能的不同,可以分為通用數(shù)據(jù)傳送指令、輸入輸出指令、目標(biāo)地址傳送指令和標(biāo)志傳送指令等四組。1)通用數(shù)據(jù)傳送指令通用數(shù)據(jù)傳送指令有以下四種。

(1)數(shù)據(jù)傳送指令MOV(MOVement)。指令格式及操作:

MOVdst,src;(dst)←(src)

指令格式中的dst表示目的操作數(shù),src表示源操作數(shù)(下同)。指令實(shí)現(xiàn)的操作是將源操作數(shù)送給目的操作數(shù)。這種傳送實(shí)際上是進(jìn)行數(shù)據(jù)的“復(fù)制”,源操作數(shù)本身不變。

這種雙操作數(shù)指令在匯編語(yǔ)言中的表示方法,總是將目的操作數(shù)寫(xiě)在前面,源操作數(shù)寫(xiě)在后面,二者之間用一個(gè)逗號(hào)隔開(kāi)。在MOV指令中源操作數(shù)可以是存儲(chǔ)器、寄存器、段寄存器和立即數(shù);目的操作數(shù)可以是存儲(chǔ)器、寄存器(不能為IP)和段寄存器(不能為CS)。數(shù)據(jù)傳送的方向如圖3.11所示。圖3.11MOV指令數(shù)據(jù)傳送方向

必須注意,不能用一條MOV指令實(shí)現(xiàn)以下傳送:

①存儲(chǔ)單元之間的傳送。

②立即數(shù)至段寄存器的傳送。

③段寄存器之間的傳送。需說(shuō)明一點(diǎn),對(duì)于代碼段寄存器CS和指令指針寄存器IP,通常無(wú)需用戶(hù)利用傳送指令改變其中的內(nèi)容。但是CS可以作為源操作數(shù)。(2)堆棧操作指令。堆棧操作指令是用來(lái)完成壓入和彈出堆棧操作的。8086/8088指令系統(tǒng)中提供了完成這兩種操作的相應(yīng)指令。

①壓入堆棧指令PUSH(PUSHwordontostack)。指令格式及操作:

PUSH src;(SP)←(SP)?2,((SP)+1:(SP))←(src)

指令完成的操作是“先移后入”,即先將堆棧指針SP減2,使SP始終指向棧頂,然后再將操作數(shù)src壓入(SP)+1和(SP)兩個(gè)存儲(chǔ)單元中。指令中的操作數(shù)src可以是通用寄存器和段寄存器,也可以是由某種尋址方式所指示的存儲(chǔ)單元,但不能是立即數(shù)。例如:

PUSHAX ;(SP)←(SP)?2,((SP)+1)←(AH),((SP))←(AL) PUSHCS PUSH[SI]②彈出堆棧指令POP(POPwordoffstack)。指令格式及操作:

POPdst ;(dst)←((SP)+1:(SP)),(SP)←(SP)+2

指令完成的操作是“先出后移”,即先將堆棧指針SP所指示的棧頂存儲(chǔ)單元的值彈出到操作數(shù)dst中,然后再將堆棧指針SP加2,使其指向棧頂。指令中的操作數(shù)dst可以是存儲(chǔ)器、通用寄存器或段寄存器(但不能是代碼段寄存器CS),同樣也不能是立即數(shù)。例如:

POPBX;(BL)←((SP)),(BH)←((SP)+1),(SP)←(SP)+2POPESPOPMEM[DI]

應(yīng)該注意,堆棧操作指令中的操作數(shù)類(lèi)型必須是字操作數(shù),即16位操作數(shù)。(3)數(shù)據(jù)交換指令XCHG(eXCHanGe)。指令格式及操作:

XCHGdst,src ;(dst)←→(src)

該指令的操作是使源操作數(shù)與目的操作數(shù)進(jìn)行交換,即不僅將源操作數(shù)傳送到目的操作數(shù),而且同時(shí)將目的操作數(shù)傳送到源操作數(shù)。交換指令的源操作數(shù)和目的操作數(shù)各自均可以是寄存器或存儲(chǔ)器,但不能二者同時(shí)為存儲(chǔ)器。也就是說(shuō),可以在寄存器與寄存器之間,或者寄存器與存儲(chǔ)器之間進(jìn)行交換。此外,段寄存器的內(nèi)容不能參加交換。交換的內(nèi)容可以是一個(gè)字節(jié)(8位),也可以是一個(gè)字(16位)。2)輸入輸出指令輸入輸出指令共有兩條。輸入指令I(lǐng)N用于從外設(shè)端口讀入數(shù)據(jù),輸出指令OUT則向端口發(fā)送數(shù)據(jù)。無(wú)論是讀入的數(shù)據(jù)或是準(zhǔn)備發(fā)送的數(shù)據(jù)都必須放在寄存器AL(字節(jié))或AX(字)中。輸入輸出指令可以分為兩大類(lèi):一類(lèi)是端口直接尋址的輸入輸出指令;另一類(lèi)是端口通過(guò)DX寄存器間接尋址的輸入輸出指令。在直接尋址的指令中只能尋址256個(gè)端口(0~255),而間接尋址的指令中可尋址64K個(gè)端口(0~65535)。(1)輸入指令I(lǐng)N(INputbyteorword)。輸入指令分直接尋址輸入指令和間接尋址輸入指令。

①直接尋址的輸入指令。指令格式及操作:

INacc,port ;(acc)←(port)

指令中直接給出端口地址(地址小于0FFH),其功能為從指令中直接指定的端口中讀入一個(gè)字節(jié)或一個(gè)字送AL或AX。②間接尋址的輸入指令。指令格式及操作:

INacc,DX ;(acc)←((DX))

此指令是從DX寄存器內(nèi)容指定的端口中將8/16位數(shù)據(jù)送入AL/AX中。這種尋址方式的端口地址由16位地址表示,執(zhí)行此指令前應(yīng)將16位地址存入DX寄存器中。(2)輸出指令OUT(OUTputbyteorword)。輸出指令分直接尋址輸出指令和間接尋址輸出指令。

①直接尋址的輸出指令。指令格式及操作:

OUTport,acc ;(port)←(acc)

此指令將AL(8位)或AX(16位)中的數(shù)據(jù)輸出到指令指定的I/O端口,端口地址應(yīng)不大于FFH。②間接尋址的輸出指令。指令格式及操作:

OUTDX,acc ;((DX))←(acc)

此指令將AL(8位)或AX(16位)中的數(shù)據(jù)輸出到由DX寄存器內(nèi)容指定的I/O端口中。2.算術(shù)運(yùn)算指令

1)算術(shù)運(yùn)算的數(shù)據(jù)類(lèi)型

8086/8088的算術(shù)運(yùn)算指令可以處理四種類(lèi)型的數(shù):無(wú)符號(hào)的二進(jìn)制數(shù)、帶符號(hào)的二進(jìn)制數(shù)、無(wú)符號(hào)的壓縮十進(jìn)制數(shù)(壓縮型BCD碼)和無(wú)符號(hào)的非壓縮十進(jìn)制數(shù)(非壓縮型BCD碼)。除壓縮十進(jìn)制數(shù)只有加/減運(yùn)算外,其余三種數(shù)據(jù)類(lèi)型都可以進(jìn)行加、減、乘、除運(yùn)算。二進(jìn)制的無(wú)符號(hào)數(shù)和帶符號(hào)數(shù)的長(zhǎng)度都可以是8位或16位,但應(yīng)注意它們所能表示的數(shù)的范圍是不同的。若是帶符號(hào)數(shù),則用補(bǔ)碼表示。

十進(jìn)制數(shù)以字節(jié)的形式存儲(chǔ)。對(duì)壓縮十進(jìn)制數(shù),每個(gè)字節(jié)存兩位數(shù),即兩位BCD碼,因而對(duì)于一個(gè)字節(jié)來(lái)說(shuō),壓縮十進(jìn)制數(shù)的范圍是0~99。而對(duì)非壓縮的十進(jìn)制數(shù),每個(gè)字節(jié)存一位數(shù),即由字節(jié)的低4位決定存放的數(shù)字,對(duì)于高4位,在進(jìn)行乘/除運(yùn)算時(shí)必須全為0,加/減運(yùn)算時(shí)可以是任何值。

8086/8088提供的各種調(diào)整操作指令可以方便地進(jìn)行壓縮或非壓縮十進(jìn)制數(shù)的算術(shù)運(yùn)算。2)算術(shù)運(yùn)算指令對(duì)標(biāo)志位的影響

8086/8088的算術(shù)運(yùn)算指令將運(yùn)算結(jié)果的某些特性傳送到6個(gè)狀態(tài)標(biāo)志位上去,這些標(biāo)志位中的絕大多數(shù)可由跟在算術(shù)運(yùn)算指令后的條件轉(zhuǎn)移指令進(jìn)行測(cè)試,以改變程序的流程。因此掌握指令執(zhí)行結(jié)果對(duì)標(biāo)志位的影響,對(duì)編程有著重要的作用。關(guān)于6個(gè)狀態(tài)標(biāo)志位的含義已在第3章中做了介紹,這里不再重復(fù)。算術(shù)運(yùn)算類(lèi)指令共有20條,包括加、減、乘、除運(yùn)算,符號(hào)擴(kuò)展和十進(jìn)制調(diào)整指令,除符號(hào)擴(kuò)展指令(CBW,CWD)外,其余指令都影響標(biāo)志位。3)二進(jìn)制數(shù)運(yùn)算指令二進(jìn)制數(shù)運(yùn)算指令包括加法、減法、乘法、除法和符號(hào)擴(kuò)展指令等五種。

(1)加法指令。加法指令包括不帶進(jìn)位加法指令、帶進(jìn)位加法指令和加1指令。

①加法指令A(yù)DD(ADDition)。指令格式及操作:

ADDdst,src ;(dst)←(dst)+(src)ADD指令將目的操作數(shù)與源操作數(shù)相加,并將結(jié)果送給目的操作數(shù)。加法指令將影響狀態(tài)標(biāo)志位。

目的操作數(shù)可以是寄存器或存儲(chǔ)器,源操作數(shù)可以是寄存器、存儲(chǔ)器或立即數(shù)。但是源操作數(shù)和目的操作數(shù)不能同時(shí)為存儲(chǔ)器。另外,不能對(duì)段寄存器進(jìn)行加法運(yùn)算(段寄存器也不能參加、減、乘、除運(yùn)算)。加法指令的操作對(duì)象可以是8位數(shù)(字節(jié)),也可以是16位數(shù)(字)。例如:ADDCL,10ADDDX,SIADDAX,MEMADDDATA[BX],ALADDALPHA[DI],30H;變量ALPHA的類(lèi)型決定指令完成字節(jié)加還是字加

相加的數(shù)據(jù)類(lèi)型可以根據(jù)編程者的意圖,規(guī)定為帶符號(hào)數(shù)或無(wú)符號(hào)數(shù)。對(duì)于無(wú)符號(hào)數(shù),若相加結(jié)果超出了8位或16位無(wú)符號(hào)數(shù)所能表示的范圍,則進(jìn)位標(biāo)志位CF被置1;對(duì)于帶符號(hào)數(shù),如果相加結(jié)果超出了8位或16位補(bǔ)碼所能表示的范圍(?128

+127或?32768

+32767),則溢出標(biāo)志位OF被置1,結(jié)果溢出。②帶進(jìn)位加法指令A(yù)DC(ADditionwithCarry)。指令格式及操作:

ADCdst,src ;(dst)←(dst)+(src)+(CF)ADC指令是將目的操作數(shù)與源操作數(shù)相加,再加上進(jìn)位標(biāo)志CF的內(nèi)容,然后將結(jié)果送給目的操作數(shù)。與ADD指令一樣,ADC指令的運(yùn)算結(jié)果也將修改狀態(tài)標(biāo)志位。目的操作數(shù)及源操作數(shù)的類(lèi)型與ADD指令相同,而且ADC指令同樣也可以進(jìn)行字節(jié)操作或字操作。帶進(jìn)位加法指令主要用于多字節(jié)數(shù)據(jù)的加法運(yùn)算。如果低字節(jié)相加時(shí)產(chǎn)生進(jìn)位,則在下一次高字節(jié)相加時(shí)將這個(gè)進(jìn)位加進(jìn)去。③加1指令I(lǐng)NC(INCrementby1)。指令格式及操作:

INCdst;(dst)←(dst)+1INC指令將目的操作數(shù)加1,并將結(jié)果送回目的操作數(shù)。指令將影響狀態(tài)標(biāo)志位,如SF、ZF、AF、PF和OF,但對(duì)進(jìn)位標(biāo)志CF沒(méi)有影響。

INC指令中目的操作數(shù)可以是寄存器或存儲(chǔ)器,但不能是立即數(shù)和段寄存器。其類(lèi)型為字節(jié)操作或字操作均可。例如:INCDLINCSIINCBYTEPTR[BX][SI]INCWORDPTR[DI]

指令中的BYTEPTR或WORDPTR分別指定隨后的存儲(chǔ)器操作數(shù)的類(lèi)型是字節(jié)或字。

INC指令常常用于在循環(huán)程序中修改地址。

(2)減法指令。減法指令包括不帶借位減法指令、帶借位減法指令、減1指令、求補(bǔ)指令和比較指令。

①減法指令SUB(SUBtraction)。指令格式及操作:

SUBdst,src ;(dst)←(dst)?(src)SUB指令將目的操作數(shù)減源操作數(shù),結(jié)果送回目的操作數(shù)。指令對(duì)狀態(tài)標(biāo)志位有影響。

操作數(shù)的類(lèi)型與加法指令一樣,即目的操作數(shù)可以是寄存器或存儲(chǔ)器,源操作數(shù)可以是立即數(shù)、寄存器或存儲(chǔ)器,但不允許兩個(gè)存儲(chǔ)器操作數(shù)相減;既可以字節(jié)相減,也可以字相減。例如:

SUBAL,37HSUBDX,BXSUBCX,VARE1SUBARRAY[DI],AXSUBBETA[BX][DI],512 ;BETA為字型變量,若為字節(jié)型變量,則源操作數(shù)超出范圍

減法數(shù)據(jù)的類(lèi)型也可以根據(jù)程序員的要求約定為帶符號(hào)數(shù)或無(wú)符號(hào)數(shù)。當(dāng)無(wú)符號(hào)數(shù)的較小數(shù)減較大數(shù)時(shí),因不夠減而產(chǎn)生借位,此時(shí)進(jìn)位標(biāo)志CF置1。當(dāng)帶符號(hào)數(shù)的較小數(shù)減較大數(shù)時(shí),將得到負(fù)的結(jié)果,則符號(hào)標(biāo)志SF置1。帶符號(hào)數(shù)相減如果結(jié)果溢出,則OF置1。②帶借位減法指令SBB(SuBtractionwithBorrow)。指令格式及操作:

SBBdst,src ;(dst)←(dst)-(src)-(CF)SBB指令是將目的操作數(shù)減源操作數(shù),然后再減進(jìn)位標(biāo)志CF,并將結(jié)果送回目的操作數(shù)。SBB指令對(duì)標(biāo)志位的影響與SUB指令相同。

目的操作數(shù)及源操作數(shù)的類(lèi)型也與SUB指令相同。8位或16位數(shù)運(yùn)算均可。例如:

SBBBX,1000 SBBCX,DX SBBAL,DATA1[SI] SBBDISP[BP],BL SBBBYTEPTR[SI+6],97

帶借位減指令主要用于多字節(jié)的減法。③減1指令DEC(DECrementby1)。指令格式及操作:

DECdst ;(dst)←(dst)?1DEC指令將目的操作數(shù)減1,結(jié)果送回目的操作數(shù)。指令對(duì)狀態(tài)標(biāo)志位SF、ZF、AF、PF和OF有影響,但不影響進(jìn)位標(biāo)志CF。操作數(shù)與INC一樣,可以是寄存器或存儲(chǔ)器(立即數(shù)和段寄存器不可)。其類(lèi)型是字節(jié)操作或字操作均可。例如:DECBLDECCXDECBYTEPTR[BX]DECWORDPTR[BP][DI]

在循環(huán)程序中常常利用DEC指令來(lái)修改循環(huán)次數(shù)。例如:

MOVAX,0FFFFHCYC:DEC?AX JNZCYC HLT

以上程序段中DECAX指令重復(fù)執(zhí)行65535(0FFFFH)次。此程序?qū)嶋H上是一段延時(shí)程序。⑤比較指令CMP(CoMPare)。指令格式及操作:

CMPdst,src ;(dst)?(src)CMP指令將目的操作數(shù)減源操作數(shù),但結(jié)果不送回目的操作數(shù)。因此,執(zhí)行比較指令以后,被比較的兩個(gè)操作數(shù)內(nèi)容均保持不變,而比較結(jié)果反映在狀態(tài)標(biāo)志位上,這是比較指令與減法指令SUB的區(qū)別所在。CMP指令的目的操作數(shù)可以是寄存器或存儲(chǔ)器,源操作數(shù)可以是立即數(shù)、寄存器或存儲(chǔ)器,但不能同時(shí)為存儲(chǔ)器??梢赃M(jìn)行字節(jié)比較,也可以是字比較。例如:

CMPAL,0AH ;寄存器與立即數(shù)比較

CMPCX,DI ;寄存器與寄存器比較

CMPAX,AREA1 ;寄存器與存儲(chǔ)器比較

CMP[BX+5],SI ;存儲(chǔ)器與寄存器比較比較指令的執(zhí)行結(jié)果將影響狀態(tài)標(biāo)志位。例如,若兩個(gè)被比較的內(nèi)容相等,則(ZF)=1。又如,假設(shè)被比較的兩個(gè)無(wú)符號(hào)數(shù)中,前者小于后者(即不夠減),則(CF)=1,等等。比較指令常常與條件轉(zhuǎn)移指令結(jié)合起來(lái)使用,完成各種條件判斷和相應(yīng)的程序轉(zhuǎn)移。

例3.5

在數(shù)據(jù)段從MYDATA開(kāi)始的存儲(chǔ)單元中分別存放了兩個(gè)8位無(wú)符號(hào)數(shù),試比較它們的大小,并將大者傳送到MAX單元。程序如下:

LEA BX,MYDATA ;MYDATA偏移地址送BX MOV AL,[BX] ;第一個(gè)無(wú)符號(hào)數(shù)送AL INC BX ;BX指向第二個(gè)無(wú)符號(hào)數(shù)

CMP AL,[BX] ;兩個(gè)數(shù)比較

JNC DONE ;如CF=0,則轉(zhuǎn)DONE MOV AL,[BX] ;否則,第二個(gè)無(wú)符號(hào)數(shù)送ALDONE:MOVMAX,AL ;較大的無(wú)符號(hào)數(shù)送MAX單元

HLT ;停止3.位操作指令位操作指令是對(duì)8位或16位的寄存器或存儲(chǔ)單元中的內(nèi)容按位進(jìn)行操作。這一類(lèi)指令包括邏輯運(yùn)算指令、移位指令和循環(huán)移位指令等三組。

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

8086/8088指令系統(tǒng)的邏輯運(yùn)算指令有AND(邏輯“與”)、TEST(測(cè)試)、OR(邏輯“或”)、XOR(邏輯“異或”)和NOT(邏輯“非”)五條指令,這些指令對(duì)操作數(shù)中的各個(gè)位分別進(jìn)行布爾運(yùn)算。各種邏輯運(yùn)算的結(jié)果如表3.4所示。表4.4邏輯運(yùn)算返回的值

XYXANDYXORYXXORYNOTX000110110001011101101100

以上五條邏輯運(yùn)算指令中,惟有NOT指令對(duì)狀態(tài)標(biāo)志位不產(chǎn)生影響,其余四條指令(即AND、TEST、OR和XOR)對(duì)狀態(tài)標(biāo)志位均有影響。這些指令將根據(jù)各自邏輯運(yùn)算的結(jié)果影響SF、ZF和PF狀態(tài)標(biāo)志位,同時(shí)將CF和OF置“0”,但使AF的值不確定。(1)邏輯“與”指令A(yù)ND(logicalAND)。指令格式及操作:

ANDdst,src;(dst)←(dst)∧(src)AND指令將目的操作數(shù)和源操作數(shù)按位進(jìn)行邏輯“與”運(yùn)算,并將結(jié)果送回目的操作數(shù)。目的操作數(shù)可以是寄存器或存儲(chǔ)器,源操作數(shù)可以是立即數(shù)、寄存器或存儲(chǔ)器。但是指令的兩個(gè)操作數(shù)不能同時(shí)是存儲(chǔ)器,即不能將兩個(gè)存儲(chǔ)器的內(nèi)容進(jìn)行邏輯“與”操作。AND指令操作對(duì)象的類(lèi)型可以是字節(jié),也可以是字。例如:ANDAL,00001111H ;寄存器"與"立即數(shù)ANDCX,DI ;寄存器"與"寄存器ANDSI,MEM_NAME ;寄存器"與"存儲(chǔ)器ANDALPHA[DI],AX ;存儲(chǔ)器"與"寄存器

AND[BX][SI],0FFFEH ;存儲(chǔ)器"與"立即數(shù)

AND指令可以用于屏蔽某些不關(guān)心的位,而保留另一些感興趣的位。為了做到這一點(diǎn),只需將屏蔽的位和“0”進(jìn)行邏輯“與”,而將要求保留的位和“1”進(jìn)行邏輯“與”即可。例如ANDAL,0FH指令將AL寄存器的高4位屏蔽,保留低4位。該指令可將數(shù)字0~9的ASCII碼轉(zhuǎn)換成相應(yīng)的非壓縮型BCD碼。例如:MOVAL,'6' ;(AL)=00110110BANDAL,0FH ;(AL)=00000110B

利用ANDAL,11011111B指令可以將AL中的英文字母(用ASCII碼表示)轉(zhuǎn)換成為大寫(xiě)字母。如果字母原來(lái)已經(jīng)是大寫(xiě),則以上AND指令不起作用,因?yàn)榇髮?xiě)字母ASCII碼的第5位總是0;如果原來(lái)是小寫(xiě)字母,則將其第5位置“0”,轉(zhuǎn)換成為相應(yīng)的大寫(xiě)字母。大寫(xiě)和小寫(xiě)英文字母ASCII碼的對(duì)比如表3.5所示。表3.5大寫(xiě)和小寫(xiě)英文字母ASCII碼的對(duì)比

大寫(xiě)字母小寫(xiě)字母'A'=41H=01000001B'B'=42H=01000010B…

'Z'=5AH=01011010B'a'=61H=01100001B'b'=62H=01100010B…

'z'=7AH=01111010B(2)測(cè)試指令TEST(TESTornon-destructivelogicalAND)。指令格式及操作:

TESTdst,src ;(dst)∧(src)TEST指令的操作實(shí)質(zhì)上與AND指令相同,即把目的操作數(shù)和源操作數(shù)進(jìn)行邏輯“與”運(yùn)算。二者的區(qū)別在于TEST指令不把邏輯運(yùn)算的結(jié)果送回目的操作數(shù),只將結(jié)果反映在狀態(tài)標(biāo)志位上。例如,“與”的結(jié)果最高位是“0”還是“1”,結(jié)果是否為全“0”,結(jié)果中“1”的個(gè)數(shù)是奇數(shù)還是偶數(shù)等,分別由SF、ZF和PF狀態(tài)標(biāo)志位體現(xiàn)。和AND指令一樣,TEST指令總是將CF和OF清零,但使AF的值不確定。TEST指令的例子如下:TESTBH,7 ;寄存器''與''立即數(shù)(結(jié)果不回送,下同)TESTSI,BP ;寄存器''與''寄存器TEST[SI],CH ;存儲(chǔ)器''與''寄存器TEST[BX][DI],BYTEPTR6AH ;存儲(chǔ)器''與''立即數(shù)IN AL,PORT ;從端口PORT輸入數(shù)據(jù)TEST AL,00101010B ;測(cè)試第1、3、5位JNZ NEXT ;任一位不為0,則轉(zhuǎn)移到NEXTNEXT:…TEST指令常常用于位測(cè)試,它與條件轉(zhuǎn)移指令一起,共同完成對(duì)特定位狀態(tài)的判斷,并實(shí)現(xiàn)相應(yīng)的程序轉(zhuǎn)移。這樣的作用與比較指令CMP有些類(lèi)似,不過(guò)TEST指令只比較某一個(gè)指定的位,而CMP指令比較整個(gè)操作數(shù)(字節(jié)或字)。例如以下幾條指令判斷一個(gè)端口地址為PORT的外設(shè)端口輸入的數(shù)據(jù),若輸入數(shù)據(jù)的第1、3、5位中的任一位不等于零,則轉(zhuǎn)移到NEXT。(3)邏輯“或”指令OR(logicalinclusiveOR)。指令格式及操作:

ORdst,src ;(dst)←(dst)∨(src)OR指令將目的操作數(shù)和源操作數(shù)按位進(jìn)行邏輯“或”運(yùn)算,并將結(jié)果送回目的操作數(shù)。

OR指令操作數(shù)的類(lèi)型與AND相同,即目的操作數(shù)可以是寄存器或存儲(chǔ)器,源操作數(shù)可以是立即數(shù)、寄存器或存儲(chǔ)器。但兩個(gè)操作數(shù)不能同時(shí)都是存儲(chǔ)器。例如:OR BL,0F6H ;寄存器''或''立即數(shù)OR AX,BX ;寄存器''或''寄存器OR CL,BETA[BX][DI] ;寄存器''或''存儲(chǔ)器OR GAMMA[SI],DX ;存儲(chǔ)器''或''寄存器OR MEM_BYTE,80H ;存儲(chǔ)器''或''立即數(shù)OR指令的一個(gè)常見(jiàn)的用途是將寄存器或存儲(chǔ)器中某些特定的位設(shè)置成“1”,而不管這些位原來(lái)的狀態(tài)如何,同時(shí)使其余位保持原來(lái)的狀態(tài)不變。為此,應(yīng)將需置“1”的位和“1”進(jìn)行邏輯“或”,而將要求保持不變的位和“0”進(jìn)行邏輯“或”。例如,以下指令可將AH寄存器及AL寄存器的最高位同時(shí)置“1”,而AX中的其余位保持不變:ORAX,8080H ;(AX)∨(1000000010000000B)AND指令和OR指令有一個(gè)共同的特性:如果將一個(gè)寄存器的內(nèi)容和該寄存器本身進(jìn)行邏輯“與”操作或者邏輯“或”操作,則寄存器原來(lái)的內(nèi)容不會(huì)改變,但寄存器中的內(nèi)容將影響SF、ZF和PF狀態(tài)標(biāo)志位,且將OF和CF清零。

利用這個(gè)特性,可以在數(shù)據(jù)傳送指令之后,使該數(shù)據(jù)影響標(biāo)志位,然后可以判斷數(shù)據(jù)的正負(fù)。又如,以下幾條指令判斷數(shù)據(jù)是否為零:MOVAX,DATA ;(AX)←DATAORAX,AX ;影響標(biāo)志(用ANDAX,AX指令亦可)JZ ZERO ;如為零,轉(zhuǎn)移到ZERO… ;否則,…ZERO:…

上述程序中如果不使用ORAX,AX(或ANDAX,AX)指令,則不能緊跟著進(jìn)行條件判斷和程序轉(zhuǎn)移,因?yàn)镸OV指令不影響標(biāo)志位。當(dāng)然采用CMPAX,0指令代替上述AND或OR指令也可以得到同樣的效果,但比較指令字節(jié)較多,執(zhí)行速度較慢。(4)邏輯“異或”指令XOR(logicaleXclusiveOR)。指令格式及操作:

XOR dst,src ;(dst)←(dst)

(src)XOR指令將目的操作數(shù)和源操作數(shù)按位進(jìn)行邏輯“異或”運(yùn)算,并將結(jié)果送回目的操作數(shù)。XOR指令操作數(shù)的類(lèi)型和AND、OR指令均相同,此處不再贅述,請(qǐng)看下面的例子:XORDI,23F6H ;寄存器‘’異或‘’立即數(shù)XORSI,DX ;寄存器''異或''寄存器XORCL,BUFFER ;寄存器''異或''存儲(chǔ)器XORMEM[BX],AX ;存儲(chǔ)器''異或''寄存器

XORTABLE[BP][SI],3DH ;存儲(chǔ)器''異或''立即數(shù)XOR指令的一個(gè)用途是將寄存器或存儲(chǔ)器中某些特定的位“求反”,而使其余位保持不變。為此,可將欲“求反”的位和“1”進(jìn)行“異或”,而將要求保持不變的位和“0”進(jìn)行“異或”。例如,若要使AL寄存器中的第1、3、5、7位求反,第0、2、4、6位保持不變,則只需將AL和10101010B(即0AAH)“異或”即可。MOVAL,0FH ;(AL)=00001111BXOR?AL,0AAH ;(AL)=10100101B(0A5H)XOR指令的另一個(gè)用途是將寄存器的內(nèi)容清零,例如:

XORAX,AX ;AX清零

XORCX,CX ;CX清零

例3.7

從偏移地址TABLE開(kāi)始的內(nèi)存區(qū)中,存放著100個(gè)字節(jié)型數(shù)據(jù),要求將這些數(shù)進(jìn)行累加,并將累加和的低位存SUM單元,高位存SUM+1單元。程序如下:

LEA BX,TABLE ;(BX)←數(shù)據(jù)表地址指針

MOVCL,100 ;(CL)←數(shù)據(jù)塊長(zhǎng)度

XOR AX,AX ;清AL、AH,并清進(jìn)位CFLOOPER: ADD AL,[BX] ;加一個(gè)數(shù)到AL JNC GOON ;如(CF)=0,轉(zhuǎn)移到GOON INC AH ;否則,AH加1GOON:INC BX ;地址指針加1 DEC CL ;計(jì)數(shù)值減1 JNZ LOOPER ;如(CL)≠0,轉(zhuǎn)移到LOOPER MOV SUM,AX ;否則,(SUM)←(AL),(SUM+1)←(AH) HLT ;停止(1)I/O接口概述一、I/O接口的作用

主機(jī)與外界交換信息稱(chēng)為輸入/輸出(I/O)。主機(jī)與外界的信息交換是通過(guò)輸入/輸出設(shè)備進(jìn)行的。一般的輸入/輸出設(shè)備都是機(jī)械或機(jī)電相結(jié)合的產(chǎn)物,比如常規(guī)的外設(shè)有鍵盤(pán)、顯示器、打印機(jī)、掃描儀、磁盤(pán)機(jī)、鼠標(biāo)器等,它們相對(duì)于高速的中央處理器來(lái)說(shuō),速度要慢得多。此外,不同外設(shè)的信號(hào)形式、數(shù)據(jù)格式也各不相同。因此,外部設(shè)備不能與CPU直接相連,需要通過(guò)相應(yīng)的電路來(lái)完成它們之間的速度匹配、信號(hào)轉(zhuǎn)換,并完成某些控制功能。通常把介于主機(jī)和外設(shè)之間的一種緩沖電路稱(chēng)為I/O接口電路,簡(jiǎn)稱(chēng)I/O接口圖4.1主機(jī)與外設(shè)的連接

如圖所示,對(duì)于主機(jī),I/O接口提供了外部設(shè)備的工作狀態(tài)及數(shù)據(jù);對(duì)于外部設(shè)備,I/O接口記憶了主機(jī)送給外設(shè)的一切命令和數(shù)據(jù),從而使主機(jī)與外設(shè)之間協(xié)調(diào)一致的工作

對(duì)于微型計(jì)算機(jī)來(lái)說(shuō),設(shè)計(jì)微處理器CPU時(shí),并不設(shè)計(jì)它與外設(shè)之間的接口部分,而是將輸入/輸出設(shè)備的接口電路設(shè)計(jì)成相對(duì)獨(dú)立的部件,通過(guò)它們將各種類(lèi)型的外設(shè)與CPU連接起來(lái),從而構(gòu)成完整的微型計(jì)算機(jī)硬件系統(tǒng)。因此,一臺(tái)微型計(jì)算機(jī)的輸入/輸出系統(tǒng)應(yīng)該包括I/O接口、I/O設(shè)備及相關(guān)的控制軟件。一個(gè)微機(jī)系統(tǒng)的綜合處理能力,系統(tǒng)的可靠性、兼容性、性?xún)r(jià)比,甚至在某個(gè)場(chǎng)合能否使用都和I/O系統(tǒng)有著密切的關(guān)系。輸入/輸出系統(tǒng)是計(jì)算機(jī)系統(tǒng)的重要組成部分之一,任何一臺(tái)高性能計(jì)算機(jī),如果沒(méi)有高質(zhì)量的輸入/輸出系統(tǒng)與之配合工作,計(jì)算機(jī)的高性能便無(wú)法發(fā)揮出來(lái)。二、CPU與外設(shè)交換的信息主機(jī)與I/O設(shè)備之間交換的信息可分為數(shù)據(jù)信息、狀態(tài)信息和控制信息三類(lèi)。

1.數(shù)據(jù)信息數(shù)據(jù)信息又分為數(shù)字量、模擬量和開(kāi)關(guān)量三種形式。

1)數(shù)字量數(shù)字量是計(jì)算機(jī)可以直接發(fā)送、接收和處理的數(shù)據(jù)。例如,由鍵盤(pán)、顯示器、打印機(jī)及磁盤(pán)等I/O外設(shè)與CPU交換的信息,它們是以二進(jìn)制形式表示的數(shù)或以ASCII碼表示的數(shù)符。2)模擬量當(dāng)計(jì)算機(jī)應(yīng)用于控制系統(tǒng)中時(shí),輸入的信息一般為來(lái)自現(xiàn)場(chǎng)的連續(xù)變化的物理量,如溫度、壓力、流量、位移、濕度等,這些物理量通過(guò)傳感器并經(jīng)放大處理得到模擬電壓或電流,這些模擬量必須先經(jīng)過(guò)模擬量向數(shù)字量的轉(zhuǎn)換(A/D轉(zhuǎn)換)后才能輸入計(jì)算機(jī)。反過(guò)來(lái),計(jì)算機(jī)輸出的控制信號(hào)都是數(shù)字量,也必須先經(jīng)過(guò)數(shù)字量向模擬量的

溫馨提示

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

評(píng)論

0/150

提交評(píng)論