微處理器原理與接口技術(shù)_第1頁(yè)
微處理器原理與接口技術(shù)_第2頁(yè)
微處理器原理與接口技術(shù)_第3頁(yè)
微處理器原理與接口技術(shù)_第4頁(yè)
微處理器原理與接口技術(shù)_第5頁(yè)
已閱讀5頁(yè),還剩381頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

微處理器原理與接口技術(shù)第一頁(yè),共386頁(yè)。課程簡(jiǎn)介掌握微處理器、微機(jī)、單片機(jī)的基本結(jié)構(gòu)及工作原理掌握微機(jī)、單片機(jī)輸入輸出接口的工作原理掌握單片機(jī)應(yīng)用系統(tǒng)硬件及軟件設(shè)計(jì)方法課程教學(xué)目標(biāo)SO1第二頁(yè),共386頁(yè)。課程主要內(nèi)容:一、8086/8088CPU及微機(jī)系統(tǒng)工作原理8086/8088內(nèi)部結(jié)構(gòu)、外部引腳、工作方式、總線時(shí)序、微機(jī)系統(tǒng)組成。二、微機(jī)接口技術(shù)存儲(chǔ)器、并行接口、串行接口、定時(shí)/計(jì)數(shù)器、中斷控制器。三、80C51單片機(jī)基本工作原理80C51內(nèi)部結(jié)構(gòu)、外部引腳、工作時(shí)序。四、80C51單片機(jī)內(nèi)部接口電路并口、串口、定時(shí)/計(jì)數(shù)器、中斷系統(tǒng)。五、80C51單片機(jī)程序設(shè)計(jì)指令系統(tǒng)、匯編程序設(shè)計(jì)、C51程序設(shè)計(jì)。六、80C51單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)串行擴(kuò)展總線、人機(jī)接口、模擬接口、功率接口、設(shè)計(jì)實(shí)例。第三頁(yè),共386頁(yè)。多動(dòng)手、勤思考、善總結(jié)。

如何學(xué)好本課程:第四頁(yè),共386頁(yè)。第一章微型計(jì)算機(jī)基礎(chǔ)知識(shí)

1.1數(shù)制與編碼1.2微機(jī)的基本結(jié)構(gòu)和工作特點(diǎn)

第五頁(yè),共386頁(yè)。1.1數(shù)制與編碼一、不同數(shù)制及其相互轉(zhuǎn)換例:100=100D=64H=01100100B=144Q第六頁(yè),共386頁(yè)。二、計(jì)算機(jī)中的信息編碼1、無(wú)符號(hào)整數(shù)的編碼√普通二進(jìn)制碼√BCD碼例:123的普通二進(jìn)制碼為7Bh,8421BCD碼為123h.第七頁(yè),共386頁(yè)。2、有符號(hào)整數(shù)的編碼√原碼√反碼√補(bǔ)碼例:-1的8位補(bǔ)碼為FFh,16位補(bǔ)碼為FFFFh.第八頁(yè),共386頁(yè)。3、浮點(diǎn)數(shù)的編碼IEEE-754標(biāo)準(zhǔn)格式單精度(32位)、雙精度(64位)、長(zhǎng)雙精度(80位)例:-123456.0的32位浮點(diǎn)數(shù)形式為C7F12000h.符號(hào)位階碼尾數(shù)總位數(shù)

短浮點(diǎn)數(shù)182332

長(zhǎng)浮點(diǎn)數(shù)1115264

臨時(shí)浮點(diǎn)數(shù)1156480

單精度數(shù)代碼對(duì)應(yīng)的數(shù)值公式為:(-1)s*1.M*2E-127第九頁(yè),共386頁(yè)。4、西文字符的編碼ASCII編碼數(shù)字符號(hào)0~9:30H~39H小寫(xiě)字母:a~z:61H~7AH大寫(xiě)字母:A~Z:41H~5AH標(biāo)點(diǎn)符號(hào):控制字符:擴(kuò)展字符:例:HELLO字符串的ASCII編碼為48454C4C4Fh.第十頁(yè),共386頁(yè)。5、漢字編碼國(guó)標(biāo)碼機(jī)內(nèi)碼加上8080H例:“你好!”的機(jī)內(nèi)碼為C4E3BAC3A3A1h.一級(jí)常用漢字3755個(gè),二級(jí)次常用漢字3008個(gè)

輸入碼(鍵盤(pán)輸入)字形碼(顯示、打印)第十一頁(yè),共386頁(yè)。6、其它信息在計(jì)算機(jī)中的編碼表示圖片、聲音、視頻……編碼標(biāo)準(zhǔn)的JPG數(shù)據(jù)(1524字節(jié),僅列出約1/6)第十二頁(yè),共386頁(yè)。1.1微計(jì)算機(jī)的基本組成和工作原理

1.1.1微計(jì)算機(jī)的基本組成微型機(jī)將運(yùn)算器和控制器集成在一塊芯片上,該芯片被稱為微處理器MPU(MicroProcessingUnit),也就是我們習(xí)慣說(shuō)的CPU(CentralProcessingUnit),是計(jì)算機(jī)結(jié)構(gòu)中心的核心部分。第十三頁(yè),共386頁(yè)。計(jì)算機(jī)的基本結(jié)構(gòu)框圖第十四頁(yè),共386頁(yè)。(1)運(yùn)算器:是計(jì)算機(jī)對(duì)各種數(shù)據(jù)進(jìn)行運(yùn)算,對(duì)各種信息進(jìn)行加工、處理的部件,因此,它是數(shù)據(jù)運(yùn)算、加工和處理的中心。(2)存儲(chǔ)器:是計(jì)算機(jī)存放各種數(shù)據(jù)、信息和執(zhí)行程序的部件。存儲(chǔ)器又分主存儲(chǔ)器(又稱內(nèi)存)和輔助存儲(chǔ)器(又稱外存)。(3)輸入設(shè)備:它給計(jì)算機(jī)輸入各種原始信息,包括數(shù)據(jù)、文字、聲音、圖像和程序,并將它們轉(zhuǎn)換成計(jì)算機(jī)能識(shí)別的二進(jìn)制代碼存入存儲(chǔ)器中。常用的輸入設(shè)備有鍵盤(pán)、鼠標(biāo)、掃描儀,手寫(xiě)板及數(shù)碼相機(jī)等。第十五頁(yè),共386頁(yè)。(4)輸出設(shè)備:它將計(jì)算機(jī)中各種數(shù)據(jù)運(yùn)算的結(jié)果,各種信息加工、處理的結(jié)果以人們可識(shí)別的信息形式輸出。常用的輸出設(shè)備有顯示器、打印機(jī)等。輸入、輸出設(shè)備是人機(jī)交互的設(shè)備,統(tǒng)稱為外部設(shè)備,簡(jiǎn)稱外設(shè)。(5)控制器:是計(jì)算機(jī)對(duì)以上各部件進(jìn)行控制、指揮,以實(shí)現(xiàn)計(jì)算機(jī)運(yùn)行過(guò)程自動(dòng)化的部件。因此,它是計(jì)算機(jī)發(fā)布操作命令的控制中心和指揮系統(tǒng)。第十六頁(yè),共386頁(yè)。以上的五大基本組成是計(jì)算機(jī)的實(shí)體,統(tǒng)稱為計(jì)算機(jī)硬件(Hardware)。其中運(yùn)算器和控制器稱為計(jì)算機(jī)系統(tǒng)的主機(jī)。而把包括解題步驟在內(nèi)的各式各樣的程序叫做計(jì)算機(jī)軟件(Software)。第十七頁(yè),共386頁(yè)。1.2微處理器、微計(jì)算機(jī)、微計(jì)算機(jī)系統(tǒng)

1.2.1微處理器(Microprocessor)

微處理器就是把中央處理器CPU的復(fù)雜電路,包括運(yùn)算器和控制器做在一片或幾片大規(guī)模集成電路的半導(dǎo)體芯片上。把這種微縮的CPU大規(guī)模集成電路LSI(LargeScaleIntegration)稱為微處理器(Microprocessor),簡(jiǎn)稱MP、μP或CPU。其職能是執(zhí)行算術(shù)、邏輯運(yùn)算和控制整個(gè)計(jì)算機(jī)自動(dòng)地、協(xié)調(diào)地完成操作。第十八頁(yè),共386頁(yè)。1.2微機(jī)的基本結(jié)構(gòu)和工作特點(diǎn)

總線有4個(gè)層次(見(jiàn)主板照片)微機(jī)基本結(jié)構(gòu)(主機(jī)部分)第十九頁(yè),共386頁(yè)。微處理器微型計(jì)算機(jī)系統(tǒng)從局部到全局分為三個(gè)層次:微型計(jì)算機(jī)(主機(jī))微型計(jì)算機(jī)系統(tǒng)+存儲(chǔ)器+I/O接口+總線+外設(shè)+電源+軟件第二十頁(yè),共386頁(yè)。第二十一頁(yè),共386頁(yè)。微機(jī)工作特點(diǎn)(VonNeumann的程序存儲(chǔ)思想)首先將程序(指令序列)編好,然后通過(guò)輸入設(shè)備送到存儲(chǔ)器中保存起來(lái),接下來(lái)就可以由計(jì)算機(jī)自動(dòng)執(zhí)行存好的程序了。具體過(guò)程是:

①取出指令:從存儲(chǔ)單元取出一條指令送到CPU內(nèi)部的指令寄存器暫存;

②分析指令:將指令寄存器中的指令送到指令譯碼器,譯出對(duì)應(yīng)的微操作;

③執(zhí)行指令:向有關(guān)部件發(fā)出控制信號(hào),完成指令規(guī)定的操作;

④繼續(xù)執(zhí)行下一條指令,直到程序執(zhí)行完為止。

匈牙利數(shù)學(xué)家馮·諾依曼第二十二頁(yè),共386頁(yè)。微機(jī)系統(tǒng)實(shí)例-IBMPC/XT機(jī)主板總線的層次第二十三頁(yè),共386頁(yè)。(1)片內(nèi)總線:又稱芯片內(nèi)部總線,位于CPU芯片內(nèi)部,用來(lái)實(shí)現(xiàn)CPU內(nèi)部各功能單元電路之間的相互連接和信號(hào)的相互傳遞。(2)片總線:又稱元件級(jí)總線,是微機(jī)主板上以CPU為核心,芯片與芯片間連接的總線。(3)內(nèi)總線:通常又稱為微機(jī)系統(tǒng)總線,用來(lái)實(shí)現(xiàn)計(jì)算機(jī)系統(tǒng)中的插件板與插件板間的連接。各種微計(jì)算機(jī)系統(tǒng)中都有自己的系統(tǒng)總線,如IBMPC微機(jī)的PC總線,IBMPC/XT微機(jī)的ISA總線,80386/80486微機(jī)的EISA總線以及Pentium微機(jī)的PCI,AGP總線等。(4)外總線:又稱通信總線,用于系統(tǒng)之間的連接,完成系統(tǒng)與系統(tǒng)間的通信。例如,微機(jī)系統(tǒng)與微機(jī)系統(tǒng)、微機(jī)系統(tǒng)與測(cè)量?jī)x器之間、微機(jī)系統(tǒng)與其他電子設(shè)備系統(tǒng)之間、微機(jī)系統(tǒng)與多媒體設(shè)備之間的通信。如RS-232C,IEEE-488,CAMAC和USB等。第二十四頁(yè),共386頁(yè)。1.1數(shù)制與編碼1.2微機(jī)的基本結(jié)構(gòu)和工作特點(diǎn)

本章小節(jié)作業(yè):1-2EO1第二十五頁(yè),共386頁(yè)。第二章8086/8088微處理器結(jié)構(gòu)及工作原理2.1微處理器的主要性能指標(biāo)2.28086/8088的內(nèi)部結(jié)構(gòu)2.38086/8088的引腳功能與工作方式2.48086/8088的總線周期與工作時(shí)序2.58086/8088的存儲(chǔ)器和I/O端口組織2.632位80X86微處理器第二十六頁(yè),共386頁(yè)。

字長(zhǎng):4位,8位,16位,32位,64位…指令數(shù):8086/8088有133條基本指令運(yùn)算速度:MIPS可訪問(wèn)地址空間:n條地址線可訪問(wèn)2n個(gè)存儲(chǔ)單元高速緩存:位于CPU與主存儲(chǔ)器之間虛擬存儲(chǔ)空間:外存用作內(nèi)存擴(kuò)展多處理器支持:主處理器+協(xié)處理器2.1微處理器的主要性能指標(biāo)第二十七頁(yè),共386頁(yè)。2.28086/8088微處理器的內(nèi)部結(jié)構(gòu)一、8086/8088CPU的編程結(jié)構(gòu)

8086第二十八頁(yè),共386頁(yè)。功能:負(fù)責(zé)指令的執(zhí)行,進(jìn)行8位及16位的各種運(yùn)算。組成:①運(yùn)算器:ALU(算術(shù)邏輯單元)+暫存器+標(biāo)志寄存器(FLAG)②通用寄存器組:AX,BX,CX,DX,BP,SP,SI,DI③控制器:核心為指令譯碼器1.執(zhí)行部件(EU)第二十九頁(yè),共386頁(yè)。2.總線接口單元(BIU)功能:負(fù)責(zé)與存儲(chǔ)器及I/O接口之間的數(shù)據(jù)傳送操作。

■從程序存儲(chǔ)單元取指令送到指令隊(duì)列,供EU執(zhí)行;

■從數(shù)據(jù)存儲(chǔ)單元或I/O端口取操作數(shù);

■將操作結(jié)果送到數(shù)據(jù)存儲(chǔ)單元或I/O端口。組成:①段寄存器(DS、CS、ES、SS)②指令指針寄存器IP(指向下一條要執(zhí)行指令)③20位地址加法器(邏輯地址20位物理地址)④6字節(jié)(8088為4字節(jié))指令隊(duì)列緩沖器(FIFO結(jié)構(gòu))第三十頁(yè),共386頁(yè)。3.BIU與EU的協(xié)調(diào)工作①每當(dāng)8086的指令隊(duì)列中有兩個(gè)空字節(jié),或8088的指令隊(duì)列中有一個(gè)空字節(jié)時(shí),BIU就會(huì)自動(dòng)進(jìn)入總線周期,把指令取到指令隊(duì)列中。取指的順序是按指令在程序存儲(chǔ)單元中的存儲(chǔ)順序。第三十一頁(yè),共386頁(yè)。②每當(dāng)EU準(zhǔn)備執(zhí)行一條指令時(shí),它會(huì)從BIU部件的指令隊(duì)列前部取出指令的代碼,然后用幾個(gè)時(shí)鐘周期去執(zhí)行指令。在執(zhí)行指令的過(guò)程中,如果必須訪問(wèn)存儲(chǔ)器或者I/O端口,那么EU就會(huì)請(qǐng)求BIU進(jìn)入總線周期,完成訪問(wèn)內(nèi)存或者I/O端口的操作;如果此時(shí)BIU正好處于空閑狀態(tài),會(huì)立即響應(yīng)EU的請(qǐng)求。但是,如果BIU正在將某個(gè)指令字節(jié)取到指令隊(duì)列中,則BIU將首先完成這個(gè)取指令的總線周期,然后再去響應(yīng)EU發(fā)出的訪問(wèn)總線的請(qǐng)求。第三十二頁(yè),共386頁(yè)。③當(dāng)指令隊(duì)列已滿,且EU又沒(méi)有總線訪問(wèn)請(qǐng)求時(shí),BIU便進(jìn)入空閑狀態(tài)。④在執(zhí)行轉(zhuǎn)移指令、調(diào)用指令和返回指令時(shí),EU會(huì)將指令隊(duì)列中已經(jīng)裝入的字節(jié)全部消除,并要求BIU開(kāi)始讀取要轉(zhuǎn)向的那個(gè)程序段中的指令代碼。第三十三頁(yè),共386頁(yè)。不難看出,BIU與EU的工作是不同步的。EU在執(zhí)行指令的時(shí)候,BIU也在進(jìn)行取指令、讀操作數(shù)或存操作結(jié)果的操作,這是一個(gè)并行工作過(guò)程,改變了以往計(jì)算機(jī)取指令→譯碼→執(zhí)行指令的串行工作方式,大大提高了工作效率。第三十四頁(yè),共386頁(yè)。圖8086/8088CPU的寄存器結(jié)構(gòu)

第三十五頁(yè),共386頁(yè)。二、8086/8088CPU內(nèi)部寄存器AX,BX,CX,DX,CS,DS,SS,ES,BP,SP,SI,DI,IP,F(xiàn)LAG共14個(gè)。1.數(shù)據(jù)寄存器四個(gè)16位數(shù)據(jù)寄存器(AX、BX、CX、DX),可以存放16位的操作數(shù),也可拆成8個(gè)8位的寄存器(AH、AL;BH、BL;CH、CL;DH、DL)來(lái)使用。其中AX稱為累加器,BX稱為基址寄存器,CX稱為計(jì)數(shù)寄存器,DX稱為數(shù)據(jù)寄存器。第三十六頁(yè),共386頁(yè)。2.指針寄存器兩個(gè)16位的指針寄存器SP和BP,其中SP是堆棧指針寄存器,由它和堆棧段寄存器SS一起來(lái)確定堆棧在內(nèi)存中的位置;BP是基址指針寄存器,通常用于存放基地址。3.變址寄存器兩個(gè)16位的變址寄存器SI和DI,其中SI是源變址寄存器,DI是目的變址寄存器,都用于指令的變址尋址方式。第三十七頁(yè),共386頁(yè)。4.段寄存器四個(gè)16位段寄存器,即代碼段寄存器CS、數(shù)據(jù)段寄存器DS、堆棧段寄存器SS和附加段寄存器ES。這些段寄存器的內(nèi)容與有效的地址偏移量一起,可確定內(nèi)存的物理地址。通常CS控制程序區(qū),DS和ES控制數(shù)據(jù)區(qū),SS控制堆棧區(qū)。5.指令指針寄存器IPIP和CS一起可以確定下一條指令的內(nèi)存地址。順序執(zhí)行程序時(shí),CPU每取一個(gè)指令字節(jié),IP自動(dòng)加1,指向下一個(gè)要讀取的字節(jié);當(dāng)IP單獨(dú)改變時(shí),會(huì)發(fā)生段內(nèi)的程序轉(zhuǎn)移;當(dāng)CS和IP同時(shí)改變時(shí),會(huì)產(chǎn)生段間的程序轉(zhuǎn)移。第三十八頁(yè),共386頁(yè)。6.處理器狀態(tài)字FLAG(FLAG)FLAG標(biāo)志寄存器的內(nèi)容,又稱為處理器狀態(tài)字PSW。其中共有9個(gè)標(biāo)志位,可分成兩類:一類為狀態(tài)標(biāo)志,一類為控制標(biāo)志。其中狀態(tài)標(biāo)志表示前一步操作(如加、減等)執(zhí)行以后,ALU所處的狀態(tài),后續(xù)操作可以根據(jù)這些狀態(tài)標(biāo)志進(jìn)行判斷,實(shí)現(xiàn)轉(zhuǎn)移;控制標(biāo)志則可以通過(guò)指令人為設(shè)置,用以對(duì)某一種特定的功能起控制作用(如中斷屏蔽等),反映了人們對(duì)微機(jī)系統(tǒng)工作方式的可控制性。第三十九頁(yè),共386頁(yè)。狀態(tài)標(biāo)志:6個(gè)ZF—零標(biāo)志,運(yùn)算結(jié)果為0時(shí),ZF=1。CF—進(jìn)位標(biāo)志,做加法時(shí)最高位出現(xiàn)進(jìn)位或做減法時(shí)最高位出現(xiàn)借位,CF=1。AF—輔助進(jìn)位標(biāo)志,通常用于對(duì)BCD算術(shù)運(yùn)算結(jié)果的調(diào)整。OF—溢出標(biāo)志。有符號(hào)數(shù)運(yùn)算結(jié)果超出8/16位補(bǔ)碼表示范圍時(shí),OF=1。PF—奇偶標(biāo)志,運(yùn)算結(jié)果低8位中l(wèi)的個(gè)數(shù)為偶數(shù)時(shí),PF=1。SF—符號(hào)標(biāo)志,與運(yùn)算結(jié)果的最高位取相同的值。第四十頁(yè),共386頁(yè)??刂茦?biāo)志:3個(gè)TF—陷阱標(biāo)志(單步標(biāo)志位、跟蹤標(biāo)志)。將該位置1,將使8086/8088進(jìn)入單步工作方式,通常用于程序的調(diào)試。IF—中斷允許標(biāo)志,將若該位置1,則處理器可以響應(yīng)可屏蔽中斷,否則不響應(yīng)。DF—方向標(biāo)志,將該位清零,則串操作指令的地址調(diào)整方向?yàn)檫f增,否則,為遞減。第四十一頁(yè),共386頁(yè)。一、8086/8088CPU的兩種工作模式為了適應(yīng)各種應(yīng)用場(chǎng)合,在設(shè)計(jì)8086/8088CPU芯片時(shí),就考慮了其可工作在兩種模式下,即最小模式與最大模式。最小模式:系統(tǒng)中只有一個(gè)8086/8088微處理器,所有的總線控制信號(hào)都由8086/8088直接產(chǎn)生,系統(tǒng)中的總線控制邏輯電路被減到最少,最小模式適用于規(guī)模較小的微機(jī)應(yīng)用系統(tǒng)。最大模式:系統(tǒng)中至少包含兩個(gè)微處理器,8086/8088為主處理器,其它的為協(xié)處理器,協(xié)助主處理器工作。而總線控制信號(hào)由8288總線控制器產(chǎn)生。最大模式用在中、大規(guī)模的微機(jī)應(yīng)用系統(tǒng)中。2.38086/8088微處理器工作模式及外部結(jié)構(gòu)第四十二頁(yè),共386頁(yè)。最小模式下的系統(tǒng)結(jié)構(gòu)圖第四十三頁(yè),共386頁(yè)。存儲(chǔ)器簡(jiǎn)單I/O第四十四頁(yè),共386頁(yè)。最大模式下的系統(tǒng)結(jié)構(gòu)圖第四十五頁(yè),共386頁(yè)。二、8086/8088CPU的外部引腳

第四十六頁(yè),共386頁(yè)。兩種模式下名稱和功能相同的引腳:VCC、GND:電源、接地引腳,8086/8088采用單一的+5V電源,但有兩個(gè)接地引腳。AD15~AD0:地址/數(shù)據(jù)復(fù)用的總線信號(hào)引腳,分時(shí)輸出低16位地址及16位數(shù)據(jù)。A19/s6~A16/s3:地址/狀態(tài)復(fù)用信號(hào)引腳,分時(shí)輸出存儲(chǔ)器高4位地址及狀態(tài)信息,其中s6始終為低電平,S5用來(lái)指示中斷允許標(biāo)志IF的狀態(tài);s4、s3共有四種組合,用來(lái)表示當(dāng)前使用的段寄存器,即:00:ES,01:SS,10:CS,11:DS。8086的引腳功能第四十七頁(yè),共386頁(yè)。NMI、INTR:中斷請(qǐng)求信號(hào)輸入引腳,引入中斷源向CPU提出的中斷請(qǐng)求信號(hào),前者為上升沿有效,后者為高電平有效,前者為非屏蔽中斷請(qǐng)求,后者為可屏蔽中斷請(qǐng)求信號(hào)。:讀控制輸出信號(hào)引腳,低電平有效,用以指明要執(zhí)行一個(gè)對(duì)內(nèi)存單元或I/O端口的讀操作,具體是讀內(nèi)存單元,還是讀I/O端口,取決于控制信號(hào)。CLK:時(shí)鐘信號(hào)輸入引腳,時(shí)鐘信號(hào)為矩形波信號(hào),占空比約為33%,即1/3周期為高電平,2/3周期為低電平,8086/8088的時(shí)鐘頻率(又稱為主頻)為4.77MHz,即從該引腳輸入的時(shí)鐘信號(hào)的頻率為4.77MHz。第四十八頁(yè),共386頁(yè)。RESET:復(fù)位信號(hào)輸入引腳,高電平有效。8088/8086CPU要求復(fù)位信號(hào)至少維持4個(gè)時(shí)鐘周期才能起到復(fù)位的效果,復(fù)位信號(hào)輸入之后,CPU結(jié)束當(dāng)前操作,并對(duì)處理器的標(biāo)志寄存器、IP、DS、SS、ES寄存器及指令隊(duì)列進(jìn)行清零操作,而將CS設(shè)置為0FFFFH。READY:準(zhǔn)備就緒信號(hào)輸入引腳,高電平有效,READY引腳接收來(lái)自內(nèi)存或I/O端口的響應(yīng)信號(hào),為高時(shí)表明內(nèi)存單元或I/O端口已經(jīng)準(zhǔn)備好進(jìn)行讀寫(xiě)操作,為低則表示還沒(méi)有準(zhǔn)備好,CPU就會(huì)在總線周期中自動(dòng)插入Tw等待周期,直到檢測(cè)到高電平才進(jìn)行數(shù)據(jù)傳輸。第四十九頁(yè),共386頁(yè)。測(cè)試信號(hào)輸入引腳,低電平有效,TEST信號(hào)與WAIT指令結(jié)合起來(lái)使用,CPU執(zhí)行WAIT指令后,處于等待狀態(tài),當(dāng)TEST引腳輸入低電平時(shí),系統(tǒng)脫離等待狀態(tài),繼續(xù)執(zhí)行WAIT指令后面的指令。最小/最大模式選擇輸入引腳,其高、低輸入電平?jīng)Q定了CPU工作在最小模式還是最大模式,接+5V時(shí),CPU工作于最小模式,接地時(shí),CPU工作于最大模式。高8位數(shù)據(jù)允許/狀態(tài)復(fù)用信號(hào)輸出引腳。分時(shí)輸出有效信號(hào),表示高8位數(shù)據(jù)線D15~D8上的數(shù)據(jù)有效和S7狀態(tài)信號(hào),但S7未定義任何實(shí)際意義。第五十頁(yè),共386頁(yè)。最小模式下的引腳中斷響應(yīng)輸出引腳,低電平有效,該信號(hào)是CPU響應(yīng)中斷請(qǐng)求后向中斷源發(fā)出的認(rèn)可信號(hào),并用以通知中斷源,提供中斷類型碼,該信號(hào)為兩個(gè)連續(xù)的負(fù)脈沖。地址鎖存允許輸出信號(hào),高電平有效,CPU通過(guò)該引腳向地址鎖存器8282/8283發(fā)出地址鎖存允許信號(hào),把當(dāng)前地址/數(shù)據(jù)復(fù)用總線上輸出的地址信息鎖存起來(lái)。數(shù)據(jù)允許輸出引腳,低電平有效,為總線收發(fā)器8286提供一個(gè)控制信號(hào),表示CPU當(dāng)前準(zhǔn)備發(fā)送或接收一個(gè)數(shù)據(jù)。第五十一頁(yè),共386頁(yè)。數(shù)據(jù)收發(fā)控制輸出,在使用8286/8287作為數(shù)據(jù)總線收發(fā)器時(shí)控制數(shù)據(jù)傳送的方向,高電平表示數(shù)據(jù)由CPU經(jīng)總線收發(fā)器8286/8287輸出,否則,數(shù)據(jù)傳送方向相反。存儲(chǔ)器或I/O端口選擇輸出,低電平表示CPU要進(jìn)行I/O端口的讀寫(xiě)操作,低位地址總線上出現(xiàn)的是I/O端口的地址;高電平表示CPU要進(jìn)行存儲(chǔ)器的讀寫(xiě)操作,地址總線上出現(xiàn)的是要訪問(wèn)的存儲(chǔ)器的地址。第五十二頁(yè),共386頁(yè)。寫(xiě)控制信號(hào)輸出,低電平有效,與配合實(shí)現(xiàn)對(duì)存儲(chǔ)單元或I/O端口的寫(xiě)操作控制??偩€保持請(qǐng)求輸入,高電平有效。這是系統(tǒng)中的其它總線部件向CPU發(fā)來(lái)的總線請(qǐng)求信號(hào)??偩€保持響應(yīng)輸出,高電平有效,表示CPU認(rèn)可其它總線部件提出的總線占用請(qǐng)求,準(zhǔn)備讓出總線控制權(quán)。第五十三頁(yè),共386頁(yè)。最大模式下的引腳S2S1S0總線周期000中斷響應(yīng)001讀I/O端口010寫(xiě)I/O端口011暫停100取指101讀存儲(chǔ)器110寫(xiě)存儲(chǔ)器111無(wú)作用第五十四頁(yè),共386頁(yè)。QS1QS0性能00無(wú)操作01從指令隊(duì)列的第一個(gè)字節(jié)取走代碼10隊(duì)列為空11除第一個(gè)字節(jié)外,還取走了后續(xù)字節(jié)中的代碼第五十五頁(yè),共386頁(yè)。:多處理器系統(tǒng)中的總線請(qǐng)求/允許線。:總線封鎖信號(hào),多處理器系統(tǒng)中避免訪問(wèn)沖突。與8087(協(xié)處理器)或8089(I/O處理器)相連接,保證系統(tǒng)中的各個(gè)處理器同步工作,實(shí)現(xiàn)總線共享。第五十六頁(yè),共386頁(yè)。2.48086/8088的總線周期與工作時(shí)序一、8086/8088CPU的時(shí)鐘占空比為1/3的矩形波,由8284時(shí)鐘發(fā)生器產(chǎn)生。第五十七頁(yè),共386頁(yè)。二、8086/8088CPU的總線周期概念:BIU通過(guò)總線訪問(wèn)一次(讀寫(xiě)一次數(shù)據(jù)或讀取一次指令)存儲(chǔ)器或I/O接口所花的時(shí)間。1個(gè)總線周期=4個(gè)T狀態(tài)+若干個(gè)可選的Tw狀態(tài)第五十八頁(yè),共386頁(yè)。最小模式下的總線寫(xiě)操作時(shí)序送出地址送出數(shù)據(jù)送出寫(xiě)信號(hào)撤消寫(xiě)信號(hào)(完成寫(xiě)操作)第五十九頁(yè),共386頁(yè)。8086最小模式下的總線寫(xiě)操作時(shí)序第六十頁(yè),共386頁(yè)。(2)讀總線周期時(shí)序

最小模式下的總線讀操作時(shí)序第六十一頁(yè),共386頁(yè)。(3)中斷響應(yīng)周期時(shí)序

典型的8086中斷時(shí)序圖第六十二頁(yè),共386頁(yè)。指令與總線操作注:.8086/8088采用小端字節(jié)序(littleendian),字型數(shù)據(jù)(16位)在存儲(chǔ)器中的存放順序?yàn)椋旱妥止?jié)存放在低地址單元,高字節(jié)存放在高地址單元。.字型數(shù)據(jù)低字節(jié)所在的低地址單元為偶數(shù)時(shí),稱為規(guī)則字(如本例),否則稱為非規(guī)則字。.8086應(yīng)用系統(tǒng)中,1MB存儲(chǔ)器空間由偶地址單元庫(kù)和奇地址單元庫(kù)組成,分別由A0和BHE作片選。偶地址單元的數(shù)據(jù)通過(guò)D0~D7傳輸,奇地址單元的數(shù)據(jù)通過(guò)D8~D15傳輸。第六十三頁(yè),共386頁(yè)?!瑼Bh…179BBh179B9h對(duì)于8086應(yīng)用系統(tǒng):.BHE與A0的00、01、10組合分別對(duì)應(yīng)一個(gè)總線周期內(nèi)對(duì)偶地址的16位讀寫(xiě)(如本例)、對(duì)奇地址的8位讀寫(xiě)、對(duì)偶地址的8位讀寫(xiě)。.規(guī)則字的讀寫(xiě)只需一個(gè)總線周期,非規(guī)則字的讀寫(xiě)需要兩個(gè)總線周期?!瑿Dh…179BAh179B8hA0=0BHE=0D0~D7D8~D15D0~D15A1~A19A1~A19A0~A19MEMW偶地址單元奇地址單元①②③④①①①①②②圖中①~④步的操作分別對(duì)應(yīng)一個(gè)總線周期中的T1~T4時(shí)鐘周期。MOVAX,1234hMOVDS,AXMOVBX,0ABCDhMOV[5678h],BX第六十四頁(yè),共386頁(yè)。第六十五頁(yè),共386頁(yè)。MOVDX,2A8hNEXT:INAL,DXOUTDX,ALJMPNEXT執(zhí)行效果?第六十六頁(yè),共386頁(yè)。1.存儲(chǔ)容量8086/8088有20根地址線,可以直接尋址的存儲(chǔ)器單元數(shù)為1MB。2.物理地址8086/8088可直接尋址1MB的存儲(chǔ)空間,其地址區(qū)域?yàn)?0000H~FFFFFH,訪問(wèn)每個(gè)存儲(chǔ)單元所需的20位地址,稱為存儲(chǔ)單元的物理地址,也稱實(shí)際地址。2.58086/8088的存儲(chǔ)器和I/O端口組織一、存儲(chǔ)器組織第六十七頁(yè),共386頁(yè)。3.存儲(chǔ)器的分段及邏輯地址由于CPU內(nèi)部的寄存器都是16位的,為了能夠提供20位的物理地址,系統(tǒng)中采用了存儲(chǔ)器分段的方法。1MB存儲(chǔ)器空間邏輯上可劃分為64K個(gè)段,兩個(gè)相鄰段的首地址相差16個(gè)字節(jié),每個(gè)段最大存儲(chǔ)量64KB。由CS、DS、SS、ES段寄存器來(lái)指定存儲(chǔ)單元所處的段,由IP、SP、BX、BP、SI、DI等地址指針寄存器指定或由指令直接給出存儲(chǔ)單元相對(duì)于所處段起始地址的16位段內(nèi)偏移量(也稱偏移地址或有效地址)。以段值:段內(nèi)偏移量形式表示的地址稱為邏輯地址。(段地址:偏移地址)第六十八頁(yè),共386頁(yè)。存儲(chǔ)器的每個(gè)段的容量為64KB,并允許在整個(gè)存儲(chǔ)空間內(nèi)浮動(dòng),即段與段之間可以部分重疊、完全重疊、連續(xù)排列,非常靈活。第六十九頁(yè),共386頁(yè)。4.物理地址的形成物理地址=段值×16+偏移地址例如:邏輯地址1234H:0005H對(duì)應(yīng)的物理地址為12345H。注意:.物理地址與邏輯地址并不是一一對(duì)應(yīng)的;.段寄存器與偏移地址寄存器的搭配第七十頁(yè),共386頁(yè)。5.存儲(chǔ)器分段組織帶來(lái)的好處.便于操作系統(tǒng)對(duì)應(yīng)用程序進(jìn)行有效的內(nèi)存管理(地址浮動(dòng));.壓縮代碼長(zhǎng)度。程序代碼和數(shù)據(jù)不超過(guò)64KB時(shí),可使用同一個(gè)段空間。第七十一頁(yè),共386頁(yè)。6.系統(tǒng)專用存儲(chǔ)空間.中斷矢量區(qū):00000H~003FFH共1K字節(jié),用以存放256種中斷類型的中斷向量,每個(gè)中斷向量占用4個(gè)字節(jié),共256×4=1024=1K.顯示緩沖區(qū):B0000H—B0F9FH約4K字節(jié),是單色顯示器的顯示緩沖區(qū),存放文本方式下,所顯示字符的ASCII碼及屬性碼;B8000H—BBF3FH約16K字節(jié),是彩色顯示器的顯示緩沖區(qū),存放圖形方式下,屏幕顯示象素的代碼。.啟動(dòng)區(qū):FFFF0H—FFFFFH共16個(gè)單元,用以存放一條無(wú)條件轉(zhuǎn)移指令的代碼,轉(zhuǎn)移到系統(tǒng)的初始化部分。第七十二頁(yè),共386頁(yè)。7.堆棧(1)堆棧的概念堆棧是在存儲(chǔ)器中開(kāi)辟的一個(gè)臨時(shí)存儲(chǔ)區(qū),這個(gè)存儲(chǔ)區(qū)的一端固定(稱為棧底),另一端活動(dòng)(稱為棧頂),且只允許數(shù)據(jù)從活動(dòng)端(棧頂)進(jìn)出。采用“后進(jìn)先出”的規(guī)則。(2)堆棧的組織堆棧指針SP總是指向堆棧的棧頂。8086/8088堆棧的生長(zhǎng)方向是從大地址向小地址,每次入棧操作SP遞減2B(因8086/8088只支持對(duì)字型數(shù)據(jù)的堆棧操作)。第七十三頁(yè),共386頁(yè)。(3)堆棧的功能及工作過(guò)程功能:保存斷點(diǎn)地址和重要數(shù)據(jù)。入棧操作:以PUSHAX為例

SPSP-2(SP+1)高字節(jié)AH(SP)低字節(jié)AL出棧操作:以POPBX為例低字節(jié)單元BL(SP)高字節(jié)單元BH(SP+1)SPSP+2…………SP12h34hAHAL低地址高地址SS段PUSHAX…34h12h…SP12h34hAHALSS段POPBX…34h12h…SP12h34hBHBLSS段第七十四頁(yè),共386頁(yè)。二、I/O端口組織I/O端口的地址編排方式:與存儲(chǔ)器統(tǒng)一編址獨(dú)立編址80X86采用獨(dú)立編址方式。I/O端口有獨(dú)立的64K字節(jié)或32K字。采用專用的IN/OUT指令來(lái)訪問(wèn)端口。第七十五頁(yè),共386頁(yè)。本章小結(jié)2.1微處理器的主要性能指標(biāo)2.28086/8088的內(nèi)部結(jié)構(gòu)(EU+BIU,14個(gè)REG,FLAG各位功能)2.38086/8088的引腳功能與工作方式(最小/最大,引腳分時(shí)復(fù)用,系統(tǒng)結(jié)構(gòu))2.48086/8088的總線周期與工作時(shí)序(概念,4個(gè)T狀態(tài),Tw,了解時(shí)序)2.58086/8088的存儲(chǔ)器和I/O端口組織(分段結(jié)構(gòu),邏輯地址->物理地址)2.632位80X86微處理器(不要求)第七十六頁(yè),共386頁(yè)。第三章8086/8088的指令系統(tǒng)3.18086/8088的指令格式與尋址方式3.28086/8088指令系統(tǒng)詳解第七十七頁(yè),共386頁(yè)。3.18086/8088的指令格式與尋址方式一、8086/8088指令的基本格式

操作碼[操作數(shù)](指令長(zhǎng)度為1~6B,其中操作碼1~2B)如:B83412h(其功能是將數(shù)據(jù)1234h賦值給AX寄存器)機(jī)器指令如:B83412h的助記符指令形式為MOVAX,1234h助記符指令(便于理解和記憶)助記符操作數(shù)[,操作數(shù)](可借助匯編或解釋程序?qū)⒅浄噶钷D(zhuǎn)換為機(jī)器指令)助記符目的操作數(shù)源操作數(shù)第七十八頁(yè),共386頁(yè)。指令中的操作數(shù)可能是:立即數(shù):指令中出現(xiàn)的常量型操作數(shù),與操作碼共同存放在代碼段。寄存器操作數(shù):存放在通用寄存器或段寄存器中。存儲(chǔ)器操作數(shù):存放在存儲(chǔ)器某一個(gè)單元或連續(xù)多個(gè)單元。I/O端口操作數(shù):來(lái)源于或要傳送到某I/O端口。第七十九頁(yè),共386頁(yè)。二、8086/8088指令的尋址方式隱含尋址I/O尋址立即尋址寄存器尋址存儲(chǔ)器尋址直接尋址間接尋址相對(duì)尋址基址變址尋址相對(duì)基址變址尋址8086/8088尋址方式(固定尋址)尋址方式:指令中操作數(shù)所在地址的表示方式。.一般討論尋址方式時(shí)多指源操作數(shù)的尋址方式。.在轉(zhuǎn)移控制類指令中,尋址方式指的是轉(zhuǎn)移地址的表示方式。第八十頁(yè),共386頁(yè)。1.隱含尋址(固定尋址):操作數(shù)在默認(rèn)的寄存器中指令中未出現(xiàn)操作數(shù),實(shí)際上總是對(duì)特定寄存器進(jìn)行操作。例如:DAA指令總是對(duì)AL中的數(shù)進(jìn)行加6調(diào)整。第八十一頁(yè),共386頁(yè)。2.I/O尋址:操作數(shù)在I/O端口中IN/OUT指令(對(duì)I/O端口進(jìn)行讀/寫(xiě)操作)采用I/O尋址方式。指令中給出了要進(jìn)行輸入/輸出操作的I/O端口地址。8位端口地址可直接給出,也可用DX存放;16位端口地址必須用DX存放。例1:INAL,50H;將50H端口的數(shù)據(jù)讀入AL。例2:MOVAX,1234HMOVDX,5678HOUTDX,AX;將AX中的數(shù)據(jù)1234H輸出到;5678H端口和5679H端口。第八十二頁(yè),共386頁(yè)。3.立即尋址:操作數(shù)在存儲(chǔ)器代碼段操作數(shù)本身直接出現(xiàn)在指令中(立即數(shù))。例1:MOVCX,1234H;將16位立即數(shù)1234H存入CX例2:MOVAL,255;將8位立即數(shù)255存入AL立即數(shù)只能用作指令的源操作數(shù)。第八十三頁(yè),共386頁(yè)。4.寄存器尋址:操作數(shù)在寄存器中指令中給出已存放了操作數(shù)的寄存器。例1:MOVDS,AX;將AX中的16位數(shù)傳送給(存入)DS。例2:INCBX;將BX中的16位數(shù)取出加1后再存入BX。第八十四頁(yè),共386頁(yè)。5.存儲(chǔ)器尋址:操作數(shù)在存儲(chǔ)器中存儲(chǔ)器尋址直接尋址間接尋址相對(duì)尋址基址變址尋址相對(duì)基址變址尋址第八十五頁(yè),共386頁(yè)。直接尋址由指令直接給出存儲(chǔ)器操作數(shù)的有效地址(EA)。MOVAL,ES:[1234h];EA=1234h,段跨越MOVAX,[2001H];EA=2001h,非規(guī)則字MOVBX,X;EA=OFFSET(X)MOVCL,ARRAY+2;EA=OFFSET(ARRAY)+2MOVAL,TAIL-6;EA=OFFSET(TAIL)-6變量是符號(hào)化了的地址,加不加方括號(hào)效果一樣,都是直接尋址。(未使用段跨越前綴時(shí),段地址默認(rèn)存放在DS中)第八十六頁(yè),共386頁(yè)。間接尋址存儲(chǔ)器操作數(shù)的有效地址放在BX、BP基址寄存器或SI、DI變址寄存器中。MOVAL,[BX];EA=(BX),8位操作MOVAX,ES:[SI];EA=(SI),段跨越,16位操作INCBYTEPTR[BP];EA=(BP),8位操作第八十七頁(yè),共386頁(yè)。相對(duì)尋址存儲(chǔ)器操作數(shù)的有效地址由BX、BP、SI或DI的值加一個(gè)位移量構(gòu)成。MOVAL,[BX+2];也可寫(xiě)作2[BX],EA=(BX)+2MOVAX,BUFF[SI-3];也可寫(xiě)作[SI+BUFF-3];EA=(SI)+OFFSET(BUFF)-3第八十八頁(yè),共386頁(yè)?;纷冎穼ぶ反鎯?chǔ)器操作數(shù)的有效地址由BX或BP基址寄存器的值加SI或DI變址寄存器的值構(gòu)成,共有4種組合。MOVAL,[BX][SI];也可寫(xiě)作[BX+SI],EA=(BX)+(SI)ADDAL,[BX][DI];EA=(BX)+(DI)MOVAX,ES:[BP+SI];EA=(BP)+(SI),段跨越,16位操作INCWORDPTR[BP][DI];EA=(BP)+(DI),16位操作第八十九頁(yè),共386頁(yè)。相對(duì)基址變址尋址存儲(chǔ)器操作數(shù)的有效地址由BX或BP基址寄存器的值加SI或DI變址寄存器的值再加一個(gè)位移量構(gòu)成。MOVAL,[BX+3][SI-1]ADDAL,3[BX][DI]MOVAX,ES:[BP+SI+VAR1-2]第九十頁(yè),共386頁(yè)。三、8086/8088指令的執(zhí)行時(shí)間

指令的空間指標(biāo)與時(shí)間指標(biāo)指令的執(zhí)行時(shí)間=基本執(zhí)行時(shí)間+計(jì)算EA的時(shí)間+執(zhí)行總線周期的時(shí)間。第九十一頁(yè),共386頁(yè)。3.28086/8088指令系統(tǒng)詳解一、數(shù)據(jù)傳送類指令通用傳送指令:MOV、PUSH、POP、XCHG累加器AL、AX專用傳送指令:IN、OUT、XLAT目標(biāo)地址傳送指令:LEA、LDS、LES標(biāo)志傳送指令:LAHF、SAHF、PUSHF、POPF133條基本指令,可組合為上千種指令功能。第九十二頁(yè),共386頁(yè)。MOV指令的源操作數(shù)和目的操作數(shù)r?rr?segr?mr←immseg?mm←imm第九十三頁(yè),共386頁(yè)。MOV指令使用中常犯的錯(cuò)誤數(shù)據(jù)類型不匹配

MOVAX,DL×MOVAL,2000H×兩個(gè)存儲(chǔ)器操作數(shù)直接傳送MOV[2000H],[1000H]×MOVAL,DLMOVAX,2000HMOVAX,[1000H]MOV[2000H],AX第九十四頁(yè),共386頁(yè)。MOV指令使用中常犯的錯(cuò)誤給段寄存器賦立即數(shù)MOVDS,1000H×MOVAX,1000HMOVDS,AX以CS或IP為目的操作數(shù)MOVCS,AX×MOVIP,AX×第九十五頁(yè),共386頁(yè)。PUSH、POP指令的用法通用寄存器、段寄存器操作數(shù)

PUSHAXPUSHESPOPBXPOPDS存儲(chǔ)器操作數(shù)

PUSH[BX]PUSH[2000H]POP[BX]POP[1000H]第九十六頁(yè),共386頁(yè)。PUSH、POP對(duì)棧頂指針SP的影響入棧操作:以PUSHAX為例

SPSP-2(SP+1)高字節(jié)AH(SP)低字節(jié)AL出棧操作:以POPBX為例低字節(jié)單元BL(SP)高字節(jié)單元BH(SP+1)SPSP+2第九十七頁(yè),共386頁(yè)。PUSH、POP指令使用中常犯的錯(cuò)誤使用非字?jǐn)?shù)據(jù)類型作為源或目的操作數(shù)PUSHAL×PUSHAXPOPAL×POPAX使用立即數(shù)作為源或目的操作數(shù)PUSH2000H×

POP2000H×使用特殊寄存器CS、IP作為目的操作數(shù)POPCS×POPIP×第九十八頁(yè),共386頁(yè)。IN、OUT指令使用中常犯的錯(cuò)誤端口地址超過(guò)8位卻未使用DX寄存器INAL,100H×MOVDX,100HINAL,DX

使用了AL、AX之外的寄存器

INBL,20H×INAL,20H

使用了DX之外的端口地址寄存器

MOVCX,2000HMOVDX,2000HOUTCX,AL×OUTDX,AL端口地址寫(xiě)法錯(cuò)誤

INAL,[20H]×INAL,20H

INAL,[DX]×INAL,DX

源、目的操作數(shù)位置顛倒

IN20H,AL×INAL,20HOUTAL,21H×OUT21H,AL

第九十九頁(yè),共386頁(yè)。例:用MOV、PUSH/POP、XCHG指令完成兩寄存器AX、BX寄存器數(shù)據(jù)的交換。

MOVCX,AXMOVAX,BXMOVBX,CX6字節(jié)機(jī)器碼PUSHAXPUSHBXPOPAXPOPBX4字節(jié)機(jī)器碼XCHGAX,BX1字節(jié)機(jī)器碼第一百頁(yè),共386頁(yè)。例:將數(shù)據(jù)段從AREA1開(kāi)始的100個(gè)字節(jié)搬到附加段AREA2開(kāi)始的存儲(chǔ)區(qū)中。LEASI,AREA1;源數(shù)據(jù)塊首地址AREA1賦給地址指針SI

LEADI,AREA2;目的數(shù)據(jù)塊首地址AREA2賦給地址指針DIMOVCX,100;數(shù)據(jù)塊長(zhǎng)度值100賦給計(jì)數(shù)器寄存器CXAGAIN:MOVAL,[SI];從DS段SI所指地址中取字節(jié)給ALMOVES:[DI],AL;將AL的值送入ES段DI所指地址中INCSI;SI=SI+1指向下一個(gè)存儲(chǔ)器單元INCDI;DI=DI+1指向下一個(gè)存儲(chǔ)器單元DECCX;CX=CX-1計(jì)數(shù)器減1JNZAGAIN;(CX)不等于零則循環(huán),等于零則結(jié)束循環(huán)第一百零一頁(yè),共386頁(yè)。數(shù)據(jù)傳送類指令總結(jié)源、目的操作數(shù)類型必須一致源、目的操作數(shù)不能同為存儲(chǔ)器操作數(shù)源、目的操作數(shù)不能同為段寄存器立即數(shù)、CS、IP不能作目的操作數(shù)數(shù)傳指令僅改變目的操作數(shù),源操作數(shù)不變(XCHG除外)數(shù)傳指令的執(zhí)行不影響狀態(tài)標(biāo)志位(SAHF、POPF除外)IN、OUT指令專用寄存器為AL、AX、DXXLAT指令專用寄存器為AL、BX堆棧操作只能按字進(jìn)行第一百零二頁(yè),共386頁(yè)。二、算術(shù)運(yùn)算類指令加法指令:ADD、ADC、INC、DAA、AAA減法指令:SUB、SBB、DEC、DAS、AAS、NEG、CMP乘法指令:MUL、IMUL、AAM除法指令:DIV、IDIV、AAD、CBW、CWD第一百零三頁(yè),共386頁(yè)。除INC和DEC指令不影響CF標(biāo)志外,算術(shù)運(yùn)算指令對(duì)6個(gè)狀態(tài)標(biāo)志位都有相應(yīng)的影響。

CF=1——無(wú)符號(hào)數(shù)運(yùn)算產(chǎn)生溢出OF=1——有符號(hào)數(shù)運(yùn)算產(chǎn)生溢出ZF=1——兩數(shù)運(yùn)算結(jié)果為0SF=1——兩個(gè)有符號(hào)數(shù)運(yùn)算結(jié)果為負(fù)AF=1——兩個(gè)BCD數(shù)運(yùn)算半字節(jié)有進(jìn)位PF=1——兩數(shù)運(yùn)算結(jié)果有偶數(shù)個(gè)1第一百零四頁(yè),共386頁(yè)。算術(shù)運(yùn)算類指令總結(jié)算術(shù)運(yùn)算指令會(huì)影響狀態(tài)標(biāo)志位INC和DEC指令不影響CF位加減法指令無(wú)專用寄存器乘除法指令有專用寄存器AL、AX、DXBCD調(diào)整指令有專用寄存器AL、AX符號(hào)擴(kuò)展指令有專用寄存器AL、AX、DX乘法指令:8位×8位→16位或16位×16位→32位除法指令:16位÷8位→8位…8位或32位÷16位→16位…16位比較指令僅影響狀態(tài)標(biāo)志,不送回相減結(jié)果加減法指令無(wú)有符號(hào)、無(wú)符號(hào)之分乘除法指令有有符號(hào)、無(wú)符號(hào)之分第一百零五頁(yè),共386頁(yè)。三、邏輯運(yùn)算類指令布爾型指令:AND、OR、XOR、NOT、TEST移位類指令:SHL/SAL、SHR、SAR循環(huán)移位類指令:ROL、ROR、RCL、RCR第一百零六頁(yè),共386頁(yè)。三、邏輯運(yùn)算類指令移位循環(huán)單向邏輯算術(shù)帶C不帶C左移右移左移右移左移右移左移右移移位與乘除法的關(guān)系第一百零七頁(yè),共386頁(yè)。移位指令中寄存器CL的使用若僅移1位,可直接給出移位值1RORAL,1RORAX,1SHRBYTEPTR[BX],1SHRWORDPTR[BX],1若移超過(guò)1位,需將移位位數(shù)先放入CL中MOVCL,nSHRAX,CL第一百零八頁(yè),共386頁(yè)。邏輯運(yùn)算類指令總結(jié)AND、TEST指令的相同點(diǎn)和不同點(diǎn)位與、或、異或?qū)ξ恢档淖饔肧HL、SAL指令形式不同但功能相同SHR、SAR指令形式不同且功能也不同CL寄存器在位移量中的作用大、小循環(huán)移位指令的功能區(qū)別第一百零九頁(yè),共386頁(yè)。四、串操作類指令串傳送指令:MOVSB、MOVSW串比較指令:CMPSB、CMPSW串掃描指令:SCASB、SCASW從串取指令:LODSB、LODSW存入串指令:STOSB、STOSW第一百一十頁(yè),共386頁(yè)。MOVSBMOVAL,DS:[SI]INCSI/DECSIMOVES:[DI],ALINCDI/DECDIMOVAX,DS:[SI]INCSI/DECSIINCSI/DECSIMOVES:[DI],AXINCDI/DECDIINCDI/DECDILODSBSTOSBDF=0/1MOVSWSTOSWLODSW第一百一十一頁(yè),共386頁(yè)。串操作指令的重復(fù)前綴特點(diǎn)僅用于串操作指令前,僅為前綴而非指令功能REP前綴當(dāng)(CX)=0時(shí),退出REP重復(fù)REPE/REPZ前綴當(dāng)(CX)=0或(ZF)=0時(shí),退出REPE/REPZ重復(fù)REPNE/REPNZ前綴當(dāng)(CX)=0或(ZF)=1時(shí),退出REPNE/REPNZ重復(fù)第一百一十二頁(yè),共386頁(yè)。MOV、MOVSB指令、REP前綴的應(yīng)用例:將數(shù)據(jù)段自AREA1開(kāi)始的100個(gè)字節(jié)搬到附加段自AREA2開(kāi)始的連續(xù)單元中。DSESARREA2ARREA1第一百一十三頁(yè),共386頁(yè)。用MOV指令LEASI,AREA1LEADI,AREA2MOVCX,100NEXT:MOVAL,[SI]MOVES:[DI],ALINCSIINCDI

DECCXJNZNEXTLOOPNEXT用MOVSB指令LEASI,AREA1LEADI,AREA2MOVCX,100CLDNEXT:MOVSB

LOOPNEXT用REP前綴LEASI,AREA1LEADI,AREA2MOVCX,100CLDREPMOVSB

第一百一十四頁(yè),共386頁(yè)。串操作指令總結(jié)尾符B、W對(duì)地址指針調(diào)整值的作用控制標(biāo)志DF對(duì)地址指針調(diào)整方向的作用源、目的串與段寄存器DS、ES的約定關(guān)系源、目的串與指針寄存器SI、DI的約定關(guān)系寄存器AL、AX在串操作指令中的作用計(jì)數(shù)器CX在串操作指令中的作用重復(fù)前綴REP/REPE/REPNE在串操作指令中的作用第一百一十五頁(yè),共386頁(yè)。五、控制轉(zhuǎn)移類指令無(wú)條件轉(zhuǎn)移指令:JMP有條件轉(zhuǎn)移指令:Jcc(cc為條件)過(guò)程調(diào)用指令:CALL、RET中斷指令:INT、IRET循環(huán)控制指令:LOOP、LOOPZ、LOOPNZ、JCXZ

(LOOPE)(LOOPNE)第一百一十六頁(yè),共386頁(yè)。JMP指令的種類段內(nèi)直接間接段間直接:間接JMPNEARPTRMAINJMPBXJMPWORDPTR[BX]JMPDWORDPTR[BX]JMPFARPTRMAIN第一百一十七頁(yè),共386頁(yè)。CALL、JMP指令比較CALL指令:

先保護(hù)現(xiàn)場(chǎng)CS當(dāng)前:IP當(dāng)前后獲得調(diào)用過(guò)程入口CS目的:IP目的JMP指令

不保護(hù)現(xiàn)場(chǎng)CS當(dāng)前:IP當(dāng)前只獲得跳轉(zhuǎn)程序入口CS目的:IP目的第一百一十八頁(yè),共386頁(yè)。有條件轉(zhuǎn)移指令的英文符號(hào)Zero——目的操作數(shù)減源操作數(shù)為0(ZF=0)Equal——目的操作數(shù)等于源操作數(shù)(ZF=0)Above——目的操作數(shù)高于源操作數(shù)(CF=0)Below——目的操作數(shù)低于源操作數(shù)(CF=1)Greater——目的操作數(shù)大于源操作數(shù)(OF⊕SF=0)Less——目的操作數(shù)小于源操作數(shù)(OF⊕SF=1)Carry——兩無(wú)符號(hào)運(yùn)算后有進(jìn)位(CF=1)Overflow——兩有符號(hào)運(yùn)算后有溢出(OF=1)Sign——兩有符號(hào)運(yùn)算后有符號(hào)(SF=1)Parity——奇偶位為偶(PF=1)Not——不是第一百一十九頁(yè),共386頁(yè)。INT——中斷控制指令中斷概念特事特辦,立即處理中斷類型

內(nèi)部中斷:軟中斷,由執(zhí)行中斷指令獲得中斷服務(wù)如常用的INT21H

外部中斷:硬中斷,由外部電平觸發(fā)獲得中斷服務(wù)第一百二十頁(yè),共386頁(yè)。LOOP——循環(huán)控制指令指令特點(diǎn)以計(jì)數(shù)器CX,標(biāo)志位ZF為條件,控制循環(huán)體指令格式LOOPLABEL若(CX-1)≠0,執(zhí)行循環(huán)體LABEL,否則退出LOOPZLABEL或LOOPELABEL若(CX-1)≠0且ZF=1,執(zhí)行循環(huán)體LABEL

LOOPNZLABEL或LOOPNELABEL若(CX-1)≠0且ZF=0、執(zhí)行循環(huán)體LABELLOOPNEXTDECCXJNZNEXT第一百二十一頁(yè),共386頁(yè)??刂妻D(zhuǎn)移類指令總結(jié)JMP指令中段內(nèi)、段間轉(zhuǎn)移的特點(diǎn)Jcc指令與狀態(tài)標(biāo)志位的關(guān)系及指令的多樣性CMP、TEST與Jcc指令的配合CALL、JMP、INT指令的相同點(diǎn)與不同點(diǎn)第一百二十二頁(yè),共386頁(yè)。 六、CPU控制類指令標(biāo)志位控制:CLC、CMC、STC、CLD、STD、CLI、STI外部同步:HLT、WAIT、ESC、LOCK空操作:NOP第一百二十三頁(yè),共386頁(yè)。本章小結(jié)一、數(shù)據(jù)傳送類指令二、算術(shù)運(yùn)算類指令三、邏輯運(yùn)算類指令四、串操作類指令五、控制轉(zhuǎn)移類指令六、CPU控制類指令第一百二十四頁(yè),共386頁(yè)。第四章匯編語(yǔ)言程序設(shè)計(jì)4.1偽指令及宏匯編基本語(yǔ)法4.2順序程序設(shè)計(jì)4.3分支程序設(shè)計(jì)4.4循環(huán)程序設(shè)計(jì)4.5子程序設(shè)計(jì)4.6系統(tǒng)功能調(diào)用4.7BIOS調(diào)用4.8實(shí)用程序設(shè)計(jì)第一百二十五頁(yè),共386頁(yè)。4.1偽指令及宏匯編基本語(yǔ)法一、宏匯編語(yǔ)言程序的語(yǔ)句類型基本指令語(yǔ)句偽指令語(yǔ)句宏指令語(yǔ)句第一百二十六頁(yè),共386頁(yè)。二、宏匯編語(yǔ)言程序的語(yǔ)句格式[標(biāo)號(hào):]操作符操作數(shù)[,操作數(shù)][;注釋]標(biāo)號(hào):符號(hào)化的代碼地址。操作符:可以是指令、偽指令或宏指令的助記符。操作數(shù):可以是以下形式:·常數(shù)·寄存器名·標(biāo)號(hào)、變量名(符號(hào)化的數(shù)據(jù)地址)·表達(dá)式(由常數(shù)、地址常量和運(yùn)算符組合而成)NEXT:ADDAX,BX;AX(AX)+(BX)第一百二十七頁(yè),共386頁(yè)。匯編語(yǔ)言程序中標(biāo)識(shí)符的命名規(guī)則字母:A~Z或a~z注:匯編源程序中不區(qū)分大小寫(xiě)字符數(shù)字:0~9注:數(shù)字不用于標(biāo)識(shí)符的第一位特殊符號(hào):?、/、_、%等注:標(biāo)識(shí)符中謹(jǐn)慎使用特殊符號(hào)第一百二十八頁(yè),共386頁(yè)。匯編語(yǔ)言程序中的保留字運(yùn)算符例:OFFSET、PTR匯編源程序中標(biāo)識(shí)符不能使用的字符串寄存器名例:AX、SP標(biāo)志符例:CF、TF指令助記符例:MOV、ADD偽指令符例:SEGMENT、END第一百二十九頁(yè),共386頁(yè)。匯編語(yǔ)言程序中的表達(dá)式(操作數(shù)段含有運(yùn)算符)MOVAX,[2000H+2]

MOVAX,BUFF+3MOVCX,TYPEXMOVBH,HIGHCXMOVBL,LOW(12*8-5%2)

ANDAL,0AHAND0AH

第一百三十頁(yè),共386頁(yè)。匯編語(yǔ)言程序中的運(yùn)算符

算術(shù)運(yùn)算符:+、-、*、/、MOD邏輯運(yùn)算符:AND、OR、XOR、NOT、SHL、SHR關(guān)系運(yùn)算符:EQ、NE、LT、GT、LE、GE分析運(yùn)算符:SEG、OFFSET、TYPE、SIZE、LENGTH綜合運(yùn)算符:PTR、段超越前綴、THIS、SHORT、HIGH、LOW(合成運(yùn)算符)第一百三十一頁(yè),共386頁(yè)。三、偽指令及其應(yīng)用數(shù)據(jù)定義及存儲(chǔ)器分配偽指令:DB、DW、DD、DQ、DT符號(hào)定義偽指令:EQU、=(=可重復(fù)定義,都不分配內(nèi)存)段定義偽指令:SEGMENT、ENDS段尋址偽指令:ASSUME地址定位偽指令:ORG(與地址有關(guān)的$)結(jié)構(gòu)與記錄有關(guān)的偽指令:STRUC、RECORD過(guò)程定義偽指令:PROC、ENDP宏定義偽指令:MACRO、ENDM第一百三十二頁(yè),共386頁(yè)。DATASEGMENTNUM1DB41H,'A'NUM2DB4*5ORG$+1NUM3DB-1,255NUM4DW-1,255MAXEQU85NUM5DB'AB'NUM6DW'AB'SOMEEQU$-NUM5NUM7DB?,80+4*20SHR2NUM8DBSOMEDUP('')TOTAL=20XDB2DUP(?,'?')TOTAL=15YDB3DUP(6,2DUP(-1)),-2PTR1DWNUM2PTR2DDNUM4MEMSIZEEQU$-NUM1DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAL,(MAX+TOTAL)*2+55MOVAH,SOMEMOVCL,MEMSIZEMOVCH,TYPEPTR2MOVBL,LENGTHNUM8MOVBH,SIZENUM8EXIT:MOVAH,4CHINT21HCODEENDSENDSTART第一百三十三頁(yè),共386頁(yè)。四、宏指令及其應(yīng)用無(wú)參數(shù)宏定義及宏調(diào)用宏定義:SHIFTMACROMOVCL,4SHLAX,CLENDM宏調(diào)用:MOVAX,1000HSHIFTMOV[2000H],AX子程序定義:SHIFTPROCMOVCL,4SHLAX,CLRETSHIFTENDP子程序調(diào)用:MOVAX,1000HCALLSHIFTMOV[2000H],AX第一百三十四頁(yè),共386頁(yè)。宏定義:SHIFTMACROReg,NMOVCL,NSHLReg,CLENDM宏調(diào)用:MOVAX,1000HMOVBL,20HSHIFTAX,4SHIFTBL,5有參數(shù)宏定義及宏調(diào)用第一百三十五頁(yè),共386頁(yè)。過(guò)程:執(zhí)行程序時(shí),重復(fù)調(diào)用過(guò)程代碼,需保護(hù)、恢復(fù)現(xiàn)場(chǎng),省空費(fèi)時(shí)。宏vs子程序(過(guò)程)宏:匯編源程序時(shí),重復(fù)復(fù)制宏代碼,無(wú)斷點(diǎn)問(wèn)題,省時(shí)費(fèi)空第一百三十六頁(yè),共386頁(yè)。五、匯編語(yǔ)言的上機(jī)過(guò)程上機(jī)的硬件、軟件環(huán)境硬件:PC/XT以上PC機(jī)軟件:DOS3.3以上操作系統(tǒng)上機(jī)的軟件工具匯編源程序文件的編輯軟件:EDIT、UltraEdit、NotePad

*.ASM源程序文本文件匯編源程序文件的匯編軟件:MASM、TASM

*.OBJ目標(biāo)代碼文件目標(biāo)代碼文件的連接軟件:LINK、TLINK

*.EXE可執(zhí)行文件可執(zhí)行文件的調(diào)試軟件:DEBUG、TD第一百三十七頁(yè),共386頁(yè)。ASM:匯編語(yǔ)言源程序文件OBJ:浮動(dòng)的目標(biāo)代碼文件EXE:重定位的絕對(duì)代碼文件問(wèn)題的算法D.ASMD.EXE文本編輯匯編連接調(diào)試D.OBJEditUltraEditTASMMASMTDTLINKLINK其它OBJ(包括庫(kù)代碼)第一百三十八頁(yè),共386頁(yè)。一般說(shuō)來(lái),編制一個(gè)匯編語(yǔ)言程序的步驟如下:(1)分析題意確定算法。這一步是能否編制出高質(zhì)量程序的關(guān)鍵,因此拿到題應(yīng)該仔細(xì)地分析和理解題意,找出合理的算法及適當(dāng)?shù)臄?shù)據(jù)結(jié)構(gòu),不應(yīng)當(dāng)急于去寫(xiě)程序。(2)根據(jù)算法畫(huà)流程圖。流程圖可以減少出錯(cuò)的可能性??捎纱值郊?xì)把算法逐步地具體化,直到便于用指令實(shí)現(xiàn)為止。(3)根據(jù)流程圖編寫(xiě)程序。(4)上機(jī)調(diào)試程序。第一百三十九頁(yè),共386頁(yè)。4.2順序程序設(shè)計(jì)順序程序是從第一條指令開(kāi)始,按其自然順序一條一條地執(zhí)行,直到最后一條指令為止。例1:雙字加/減法例2:表達(dá)式求值例3:查表操作第一百四十頁(yè),共386頁(yè)。DATASEGMENTXDB81HYDB-1ZDB4RESULTDW?,?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AX

MOVAL,ZCBWMOVBX,AX

MOVAL,XADDAL,YCBWCWD

IDIVBX

MOVRESULT,AXMOVRESULT+2,DX

EXIT:MOVAH,4CHINT21HCODEENDSENDSTART例:編程求(X+Y)÷Z的值,其中X、Y、Z均為8位有符號(hào)型變量,結(jié)果(商和余數(shù))為兩個(gè)16位有符號(hào)數(shù)。第一百四十一頁(yè),共386頁(yè)。4.3分支程序設(shè)計(jì)e?YN一、標(biāo)準(zhǔn)分支結(jié)構(gòu)第一百四十二頁(yè),共386頁(yè)。例:編程求DATASEGMENTXDB-2YDB?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXCMPX,0JGEPLUSMINUS:MOVY,-1JMPEXITPLUS:MOVY,1EXIT:MOVAH,4CHINT21HCODEENDSENDSTART第一百四十三頁(yè),共386頁(yè)。二、分支結(jié)構(gòu)的其它形式e?NY1、第一百四十四頁(yè),共386頁(yè)。例:編程求DATASEGMENTXDB-2YDB?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AX

MOVY,1CMPX,0JGEEXITMOVY,-1EXIT:MOVAH,4CHINT21HCODEENDSENDSTART第一百四十五頁(yè),共386頁(yè)。例:編程求DATASEGMENTXDB-2YDB?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AX

MOVAL,XMOVY,ALCMPX,0JGEEXITNEGYEXIT:MOVAH,4CHINT21HCODEENDSENDSTART第一百四十六頁(yè),共386頁(yè)。例:編程實(shí)現(xiàn)以下運(yùn)算。DATASEGMENTXDB2YDB3ZDB?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AX

MOVAL,XMOVZ,ALCMPAL,YJAEEXITMOVAL,YMOVZ,ALEXIT:MOVAH,4CHINT21HCODEENDSENDSTART第一百四十七頁(yè),共386頁(yè)。2、e1?YNe2?Ne3?YYN第一百四十八頁(yè),共386頁(yè)。例:編程實(shí)現(xiàn)以下運(yùn)算。DATASEGMENTXDB-2YDB?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AX

CMPX,0JLLESSJGGREATEREQUAL:MOVY,0JMPEXITGREATER:MOVY,1JMPEXITLESS:MOVY,-1

EXIT:MOVAH,4CHINT21HCODEENDSENDSTART第一百四十九頁(yè),共386頁(yè)。例:編程實(shí)現(xiàn)以下運(yùn)算。DATASEGMENTXDB85YDB?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AX

CMPX,90JAESACMPX,80JAESBCMPX,70JAESC

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論