現(xiàn)代遠(yuǎn)程教育《微機(jī)原理及接口技術(shù)》課程學(xué)習(xí)指導(dǎo)
《現(xiàn)代遠(yuǎn)程教育《微機(jī)原理及接口技術(shù)》課程學(xué)習(xí)指導(dǎo)》由會(huì)員分享,可在線閱讀,更多相關(guān)《現(xiàn)代遠(yuǎn)程教育《微機(jī)原理及接口技術(shù)》課程學(xué)習(xí)指導(dǎo)(27頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、 現(xiàn)代遠(yuǎn)程教育 《微機(jī)原理及接口技術(shù)》 課 程 學(xué) 習(xí) 指 導(dǎo) 書(shū) 作者:錢(qián)曉捷 2008年11月 “微機(jī)原理及接口技術(shù)”課程學(xué)習(xí)指導(dǎo)書(shū) “微機(jī)原理及接口技術(shù)”是電子工程、自動(dòng)控制、機(jī)電等電氣信息類專業(yè)的必修課,是一門(mén)軟硬件相互結(jié)合的重要課程。本課程以IA-32處理器和32位匯編語(yǔ)言為主體介紹32位個(gè)人微機(jī)系統(tǒng)的基本工作原理,要求學(xué)生學(xué)習(xí)處理器的指令集結(jié)構(gòu)、常用指令和匯編語(yǔ)言編程,通過(guò)微機(jī)總線技術(shù),理解處理器與半導(dǎo)體存貯器的連接、常用I/O 接口的連接方法,以及外設(shè)進(jìn)行數(shù)據(jù)傳送的方法;本著硬件與軟件相結(jié)合的原則,講授常用微機(jī)接口應(yīng)用技術(shù);并對(duì)各
2、種提高處理器性能的最新技術(shù)有所了解。 第1章 微型計(jì)算機(jī)系統(tǒng)概述 (一)本章學(xué)習(xí)目標(biāo) 本章通過(guò)微處理器發(fā)展尤其是Intel 80x86系列處理器發(fā)展引出各種基本概念,從馮諾依曼計(jì)算機(jī)結(jié)構(gòu)引出微型計(jì)算機(jī)硬件組成,以16位和32位PC機(jī)為例全面理解微型機(jī)層次結(jié)構(gòu),通過(guò)熟悉Windows控制臺(tái)環(huán)境了解微型機(jī)軟件系統(tǒng)。 (二)本章學(xué)習(xí)重點(diǎn)和考試要求 了解處理器(CPU)、通用處理器和專用處理器(微控制器和數(shù)字信號(hào)處理器)的含義,熟悉字長(zhǎng)、時(shí)鐘頻率、集成度和摩爾定律的含義。 了解x86結(jié)構(gòu)系列處理器的發(fā)展,尤其是熟悉8086、Pentium處理器的特點(diǎn),理解處理器引腳、IA-32結(jié)構(gòu)、Cac
3、he、復(fù)雜指令集計(jì)算機(jī)、精簡(jiǎn)指令集計(jì)算機(jī)、指令流水線、超標(biāo)量技術(shù)、多媒體指令、Intel 64結(jié)構(gòu)、動(dòng)態(tài)執(zhí)行技術(shù)、多核技術(shù)的概念。 掌握馮諾伊曼計(jì)算機(jī)的基本思想,掌握組成部件(5大部件、3個(gè)子系統(tǒng))、二進(jìn)制編碼(以及字節(jié)、字、雙字和4字的二進(jìn)制位數(shù))、存儲(chǔ)程序控制(以及字節(jié)可尋址存儲(chǔ)單元、存儲(chǔ)器地址、讀寫(xiě)操作的含義)、取指-譯碼-執(zhí)行周期的含義。 了解微型計(jì)算機(jī)組成結(jié)構(gòu),熟悉IBM PC/AT機(jī)和32位PC機(jī)主機(jī)結(jié)構(gòu),掌握總線、地址總線、數(shù)據(jù)總線和控制總線的含義。 理解計(jì)算機(jī)層次結(jié)構(gòu)及其特點(diǎn),掌握匯編語(yǔ)言的特點(diǎn)、軟硬件等價(jià)性原理、軟件兼容(系列機(jī)、兼容機(jī))的思想。 (三)本章學(xué)習(xí)指導(dǎo)
4、 本章學(xué)習(xí)課時(shí):8 本章內(nèi)容屬于概述性質(zhì),需要大家了解基本概念。這些概念在后續(xù)章節(jié)將逐漸展開(kāi),那時(shí)才讓大家熟悉直至掌握。 (四)本章練習(xí)題 說(shuō)明:如下練習(xí)題均來(lái)自本課程配套教材,這里僅給出題號(hào),請(qǐng)對(duì)照教材練習(xí)。 1.1 簡(jiǎn)答題(1、2、8、9、10) 1.2 判斷題(1、3、5、7、10) 1.3 填空題(2、3、4、5、6) 1.5 1.7 1.8 1.10 1.14 第2章 處理器結(jié)構(gòu) (一)本章學(xué)習(xí)目標(biāo) 本章以8位CPU、16位8086、32位80386和Pentium為例展開(kāi)處理器功能結(jié)構(gòu),重點(diǎn)學(xué)習(xí)IA-32處理器通用指令執(zhí)行環(huán)境中的通用整數(shù)寄存器、存儲(chǔ)器組
5、織和數(shù)據(jù)尋址方式,并熟悉匯編語(yǔ)言的語(yǔ)句格式、程序框架和開(kāi)發(fā)方法。 (二)本章學(xué)習(xí)重點(diǎn)和考試要求 了解處理器的基本結(jié)構(gòu),理解可編程、通用、專用寄存器的概念。了解8086、80386和Pentium處理器的結(jié)構(gòu),理解指令隊(duì)列、指令預(yù)取的概念。 掌握IA-32常用寄存器的名稱和作用。理解標(biāo)志的作用,掌握狀態(tài)標(biāo)志CF、OF、ZF、SF、PF的意義和判斷。熟悉指令指針EIP和段寄存器的作用。 理解IA-32的存儲(chǔ)器模型和工作方式,掌握基本段、邏輯地址和物理地址的概念,掌握邏輯地址轉(zhuǎn)換為物理地址的方法。 掌握匯編語(yǔ)言的兩種語(yǔ)句格式和正確書(shū)寫(xiě)(標(biāo)號(hào)與名字、分隔符),熟悉匯編語(yǔ)言的源程序格式,理解段
6、的簡(jiǎn)化定義、程序開(kāi)始執(zhí)行、執(zhí)行結(jié)束、結(jié)束匯編、子程序庫(kù)的意義。 熟悉匯編語(yǔ)言程序的開(kāi)發(fā)過(guò)程,掌握其開(kāi)發(fā)方法,理解匯編、連接、列表文件的作用。 掌握立即數(shù)、寄存器、存儲(chǔ)器的數(shù)據(jù)尋址概念,區(qū)別直接尋址、寄存器間接尋址、寄存器相對(duì)尋址、變址尋址、帶比例尋址,并掌握它們的書(shū)寫(xiě)形式。 (三)本章學(xué)習(xí)指導(dǎo) 本章學(xué)習(xí)課時(shí):12 對(duì)匯編語(yǔ)言部分的掌握,需要有上機(jī)編程的實(shí)踐環(huán)節(jié)。學(xué)生應(yīng)按照上機(jī)任務(wù)部分(參見(jiàn)本指導(dǎo)書(shū)后面)的要求完成基本的上機(jī)編程要求,同時(shí)爭(zhēng)取多進(jìn)行編程實(shí)踐;因?yàn)橹挥型ㄟ^(guò)實(shí)際編程才能發(fā)現(xiàn)程序設(shè)計(jì)中的許多問(wèn)題。請(qǐng)你不要直接拷貝源程序代碼,在你將一條一條語(yǔ)句的錄入編輯過(guò)程中,就是書(shū)寫(xiě)正確語(yǔ)句
7、、加深語(yǔ)句理解的絕好機(jī)會(huì)。 尋址方式學(xué)習(xí)思路操作數(shù)可以存在什么地方? 操作數(shù)存在于指令代碼中、處理器內(nèi)部寄存器中、主存中 存儲(chǔ)器尋址時(shí),段地址在默認(rèn)的或段超越前綴指令指定的段寄存器中 有多種獲得偏移地址的方法,分成多種尋址方式 有效地址直接給出,存在寄存器中,兩部分的和(寄存器和位移量),兩部分的和(基址寄存器和變址寄存器)、三部分的和(基址寄存器、變址寄存器和位移量) 區(qū)別各種尋址方式時(shí),注意各自的特點(diǎn) 匯編語(yǔ)句中的其他形式,需要理解相應(yīng)操作符才能做出正確判斷 (四)本章練習(xí)題 說(shuō)明:如下練習(xí)題均來(lái)自本課程配套教材,這里僅給出題號(hào),請(qǐng)對(duì)照教材練習(xí)。 2.1 簡(jiǎn)答題(2、5
8、、6、7、9) 2.2 判斷題(3、5、6、7、9) 2.3 填空題(1、3、4、5、7) 2.6 2.8 2.9 2.12 2.13 2.16 第3章 數(shù)據(jù)處理 (一)本章學(xué)習(xí)目標(biāo) 本章以數(shù)據(jù)在計(jì)算機(jī)中的表示介紹數(shù)制、數(shù)值編碼和字符編碼、以數(shù)據(jù)在匯編語(yǔ)言中的表達(dá)熟悉常量定義、變量應(yīng)用以及常用偽指令,以數(shù)據(jù)在處理器中的處理展開(kāi)IA-32處理器數(shù)據(jù)傳送和算術(shù)邏輯運(yùn)算等基本指令,并通過(guò)示例程序掌握指令功能和編程應(yīng)用。 (二)本章學(xué)習(xí)重點(diǎn)和考試要求 掌握二進(jìn)制、十六進(jìn)制及其與十進(jìn)制相互轉(zhuǎn)換。理解定點(diǎn)整數(shù)及無(wú)符號(hào)數(shù)、有符號(hào)數(shù)(補(bǔ)碼)的概念和表達(dá),掌握求補(bǔ)運(yùn)算。熟悉BCD(壓縮
9、BCD和非壓縮BCD)、ASCII碼及其編碼規(guī)律。 掌握匯編語(yǔ)言各種常量表達(dá)方法,理解字符、字符串的實(shí)質(zhì)。 掌握變量定義(BYTE、WORD、DWORD和QWORD)的方法(包括?和DUP操作符),理解字節(jié)、字、雙字和4字類型,以及變量存儲(chǔ)形式(包括多字節(jié)數(shù)據(jù)的小端、大端存儲(chǔ)方式),熟悉變量的地址和類型屬性,掌握常用地址([]、$、OFFSET)和類型操作符(PTR、LENGTHOF、SIZEOF)的使用。 掌握基本指令的功能及其應(yīng)用:MOV,XCHG,PUSH,POP,加法指令,減法指令,邏輯運(yùn)算指令,移位指令。熟悉常見(jiàn)指令的功能:XLAT,LEA,MUL,IMUL,DIV,IDIV,
10、MOVZX,MOVSX。 理解常見(jiàn)語(yǔ)法錯(cuò)誤、空操作指令NOP、堆棧操作、加減和邏輯運(yùn)算指令對(duì)狀態(tài)標(biāo)志的影響、零位擴(kuò)展和符號(hào)擴(kuò)展的意義。 (三)本章學(xué)習(xí)指導(dǎo) 本章學(xué)習(xí)課時(shí):16 本章是匯編語(yǔ)言部分的重點(diǎn),因?yàn)槌A勘磉_(dá)、變量表達(dá)、處理器指令構(gòu)成了匯編語(yǔ)言的基本語(yǔ)句。雖然指令很多,但注意重點(diǎn)掌握基本指令。這些指令是處理器指令系統(tǒng)的核心指令,也是后續(xù)章節(jié)主要使用的指令。 指令的學(xué)習(xí)過(guò)程中,大家應(yīng)該如下4個(gè)方面:① 指令的功能——該指令能夠?qū)崿F(xiàn)何種操作。通常指令助記符就是指令功能的英文單詞或其縮寫(xiě)形式。② 指令支持的尋址方式——該指令中的操作數(shù)可以采用何種尋址方式。③ 指令對(duì)標(biāo)志的影響——該指
11、令執(zhí)行后是否對(duì)各個(gè)標(biāo)志位有影響,以及如何影響。④ 其他方面——該指令其他需要特別注意的地方,如指令執(zhí)行時(shí)的約定設(shè)置、必須預(yù)置的參數(shù)、隱含使用的寄存器等。 (四)本章練習(xí)題 說(shuō)明:如下練習(xí)題均來(lái)自本課程配套教材,這里僅給出題號(hào),請(qǐng)對(duì)照教材練習(xí)。 3.1 簡(jiǎn)答題(1、2、3、8、9) 3.2 判斷題(2、4、6、8、9) 3.3 填空題(2、3、5、6、8) 3.7 3.10 3.12 3.14 3.15 3.20 3.23 3.30 第4章 匯編語(yǔ)言程序設(shè)計(jì) (一)本章學(xué)習(xí)目標(biāo) 本章以程序結(jié)構(gòu)為主線,先掌握基本的控制轉(zhuǎn)移指令,然后引出分支程序結(jié)構(gòu)、循環(huán)程序結(jié)構(gòu)和子
12、程序結(jié)構(gòu),同時(shí)結(jié)合數(shù)碼轉(zhuǎn)換、字符串處理、鍵盤(pán)輸入和顯示輸出等大量示例程序,掌握匯編語(yǔ)言程序設(shè)計(jì)方法。 (二)本章學(xué)習(xí)重點(diǎn)和考試要求 理解目標(biāo)地址的轉(zhuǎn)移范圍(短轉(zhuǎn)移SHORT、段內(nèi)近轉(zhuǎn)移NEAR和段間遠(yuǎn)轉(zhuǎn)移FAR)和尋址方式(相對(duì)尋址、直接尋址、間接尋址),掌握無(wú)條件轉(zhuǎn)移指令JMP。 掌握條件轉(zhuǎn)移指令Jcc的功能和正確應(yīng)用,理解條件和狀態(tài)標(biāo)志的關(guān)系,明確無(wú)符號(hào)和有符號(hào)數(shù)據(jù)大小的比較問(wèn)題。理解匯編語(yǔ)言的單分支、雙分支結(jié)構(gòu),掌握其編程。 掌握循環(huán)指令LOOP、JECXZ的功能和應(yīng)用,理解計(jì)數(shù)控制循環(huán)和條件控制循環(huán)結(jié)構(gòu),掌握其編程。 掌握子程序指令CALL、RET的功能和應(yīng)用,理解利用堆棧實(shí)
13、現(xiàn)返回的方法,掌握過(guò)程調(diào)用偽指令PROC/ENDP及子程序編程。熟悉子程序設(shè)計(jì)過(guò)程中,寄存器保護(hù)、堆棧平衡、參數(shù)傳遞等常見(jiàn)問(wèn)題,掌握寄存器傳遞參數(shù)的編程,熟悉共享變量和堆棧傳遞參數(shù)的方法。了解子程序模塊(PUBLIC、PRIVATE)、子程序庫(kù)、庫(kù)文件包含(INCLUDELIB)、宏匯編(MACRO/ENDM)、源文件包含(INCLUDE)的作用。 熟悉常見(jiàn)編程問(wèn)題:數(shù)組運(yùn)算,大小寫(xiě)轉(zhuǎn)換,奇偶校驗(yàn);字符或數(shù)據(jù)個(gè)數(shù)統(tǒng)計(jì),求最小值、最大值;二進(jìn)制、十六進(jìn)制數(shù)據(jù)相互轉(zhuǎn)換,二進(jìn)制、十六進(jìn)制數(shù)據(jù)的鍵盤(pán)輸入和顯示輸出(利用字符串輸入和顯示功能編程實(shí)現(xiàn))。 (三)本章學(xué)習(xí)指導(dǎo) 本章學(xué)習(xí)課時(shí):14 提
14、醒大家注意通過(guò)閱讀、記憶常見(jiàn)編程問(wèn)題的匯編語(yǔ)言程序片斷,復(fù)習(xí)前一章的核心內(nèi)容,并掌握匯編語(yǔ)言的程序設(shè)計(jì)。 利用匯編語(yǔ)言進(jìn)行程序設(shè)計(jì)的方法,與采用高級(jí)語(yǔ)言類似,如下是程序設(shè)計(jì)的一般步驟:① 分析題意,確定算法;② 根據(jù)算法,畫(huà)出程序流程圖;③ 參照流程圖,編寫(xiě)源程序; ④ 編輯源程序文件,匯編連接生成可執(zhí)行程序;⑤ 運(yùn)行程序。 (四)本章練習(xí)題 說(shuō)明:如下練習(xí)題均來(lái)自本課程配套教材,這里僅給出題號(hào),請(qǐng)對(duì)照教材練習(xí)。 4.1 簡(jiǎn)答題(1、2、3、4、7) 4.2 判斷題(2、3、4、6、8) 4.3 填空題(2、3、5、7、9) 4.6 4.8 4.11 4.12 4.13
15、 4.22 4.25 4.29 第5章 微機(jī)總線 (一)本章學(xué)習(xí)目標(biāo) 本章展開(kāi)微型機(jī)總線結(jié)構(gòu),介紹總線類型、數(shù)據(jù)傳輸、信號(hào)時(shí)序等總線基本技術(shù),以16位8086和32位Pentium為例學(xué)習(xí)處理器引腳信號(hào)和操作時(shí)序,以16位ISA、32位PCI和USB總線為例,學(xué)習(xí)系統(tǒng)總線和外設(shè)總線。 (二)本章學(xué)習(xí)重點(diǎn)和考試要求 理解單向和雙向總線、并行和串行總線、芯片總線、內(nèi)總線(系統(tǒng)總線)、外總線的概念。理解總線特點(diǎn),以及總線操作、總線仲裁、同步方式、傳輸類型、總線性能概念。掌握總線帶寬的計(jì)算方法。 從信號(hào)功能、信號(hào)流向、有效方式、三態(tài)能力等方面,掌握8086的地址數(shù)據(jù)引腳和讀寫(xiě)控制引腳,
16、了解中斷請(qǐng)求和響應(yīng)、總線請(qǐng)求和響應(yīng)、復(fù)位信號(hào)的作用,理解信號(hào)的分時(shí)復(fù)用、4種基本總線操作。 掌握指令周期、總線周期、時(shí)鐘周期、T狀態(tài)的概念。熟悉8086的寫(xiě)總線周期和讀總線周期時(shí)序,掌握各個(gè)T狀態(tài)的操作特點(diǎn),理解就緒引腳和等待狀態(tài)的作用。 熟悉Pentium處理器的數(shù)據(jù)、地址和讀寫(xiě)控制信號(hào)以及基本總線周期和猝發(fā)讀總線周期。 了解PC機(jī)總線發(fā)展,ISA總線、PCI總線和USB總線的特點(diǎn)。 (三)本章學(xué)習(xí)指導(dǎo) 本章學(xué)習(xí)課時(shí):8 本章概念較多,應(yīng)在理解的基礎(chǔ)上逐漸熟悉和掌握。 (四)本章練習(xí)題 說(shuō)明:如下練習(xí)題均來(lái)自本課程配套教材,這里僅給出題號(hào),請(qǐng)對(duì)照教材練習(xí)。 5.1 簡(jiǎn)答題(
17、1、3、4、5、7) 5.2 判斷題(2、3、4、6、7) 5.3 填空題(2、3、4、5、10) 5.4 5.5 5.6 5.8 5.10 5.11 第6章 存儲(chǔ)系統(tǒng) (一)本章學(xué)習(xí)目標(biāo) 本章以存儲(chǔ)層次結(jié)構(gòu)中的主存儲(chǔ)器為主體,學(xué)習(xí)各種半導(dǎo)體存儲(chǔ)器的類型、特點(diǎn)、地址譯碼,介紹Cache的工作原理、存儲(chǔ)管理的分段和分頁(yè)機(jī)制。 (二)本章學(xué)習(xí)重點(diǎn)和考試要求 理解存儲(chǔ)系統(tǒng)的層次結(jié)構(gòu),掌握存儲(chǔ)容量、存取速度和局部性原理。 熟悉讀寫(xiě)存儲(chǔ)器芯片的主要類型和各自特點(diǎn),掌握SRAM的存儲(chǔ)結(jié)構(gòu)和引腳,理解DRAM的引腳特點(diǎn)和刷新方法。熟悉只讀存儲(chǔ)器芯片的主要類型和各自特點(diǎn)。 理解地
18、址譯碼、門(mén)電路譯碼和138譯碼器,掌握地址譯碼和地址范圍之間的關(guān)系,熟悉全譯碼和部分譯碼的特點(diǎn)。了解8086和Pentium存儲(chǔ)結(jié)構(gòu),掌握地址對(duì)齊的概念和作用。 (三)本章學(xué)習(xí)指導(dǎo) 本章學(xué)習(xí)課時(shí):8 (四)本章練習(xí)題 說(shuō)明:如下練習(xí)題均來(lái)自本課程配套教材,這里僅給出題號(hào),請(qǐng)對(duì)照教材練習(xí)。 6.1 簡(jiǎn)答題(1、2、6、7、8) 6.2 判斷題(1、2、5、6、8) 6.3 填空題(3、4、5、6、7) 6.5 6.6 6.8 6.9 第7章 輸入輸出接口 (一)本章學(xué)習(xí)目標(biāo) 本章在熟悉I/O接口的特點(diǎn)、編址和指令基礎(chǔ)上,結(jié)合I/O接口電路展開(kāi)微型機(jī)與外設(shè)進(jìn)行無(wú)條件傳
19、送、查詢傳送、中斷傳送和DMA傳送的原理,并詳細(xì)介紹了處理器的中斷機(jī)制和編程方法。 (二)本章學(xué)習(xí)重點(diǎn)和考試要求 從內(nèi)部結(jié)構(gòu)的3類寄存器、外部特性的兩側(cè)信號(hào)、基本功能的數(shù)據(jù)緩沖和信號(hào)變換、可編程性方面,理解I/O接口典型結(jié)構(gòu)特點(diǎn)。掌握I/O端口的兩種編址方式及特點(diǎn)。掌握IA-32處理器的輸入輸出指令功能及應(yīng)用,理解I/O保護(hù)(I/O敏感指令)的意義。理解DOS平臺(tái)的匯編語(yǔ)言編程特點(diǎn)。 熟悉無(wú)條件傳送方式,掌握開(kāi)關(guān)輸入、LED輸出的電路和編程,理解I/O地址的讀寫(xiě)特點(diǎn)。掌握查詢傳送方式的特點(diǎn)和編程。 熟悉中斷傳送的工作過(guò)程,理解中斷類型、中斷請(qǐng)求和響應(yīng)、關(guān)中斷和開(kāi)中斷、斷點(diǎn)保護(hù)、現(xiàn)場(chǎng)保護(hù)
20、和恢復(fù)、中斷服務(wù)、中斷源識(shí)別(中斷向量、查詢識(shí)別)、中斷優(yōu)先權(quán)排隊(duì)、中斷嵌套等概念。熟悉IA-32處理器主要中斷類型(除法錯(cuò)異常、溢出異常、非屏蔽中斷、可屏蔽中斷及其響應(yīng)控制),理解IA-32處理器的中斷響應(yīng)過(guò)程、中斷向量表(中斷描述符表)的作用和結(jié)構(gòu)。 理解DMA傳送方式的特點(diǎn)和過(guò)程。 (三)本章學(xué)習(xí)指導(dǎo) 本章學(xué)習(xí)課時(shí):14 本章和下一章是本課程的有一個(gè)重點(diǎn)章節(jié),引出輸入輸出接口的諸多原理。由于概念較多,再次提醒大家應(yīng)在理解的基礎(chǔ)上逐漸熟悉和掌握。 (四)本章練習(xí)題 說(shuō)明:如下練習(xí)題均來(lái)自本課程配套教材,這里僅給出題號(hào),請(qǐng)對(duì)照教材練習(xí)。 7.1 簡(jiǎn)答題(1、2、3、8、10)
21、 7.2 判斷題(4、5、6、7、8) 7.3 填空題(2、3、6、7、9) 7.7 7.8 7.9 7.12 7.14 7.18 “微機(jī)原理及接口技術(shù)”上機(jī)任務(wù) “微機(jī)原理及接口技術(shù)”是一門(mén)實(shí)踐性很強(qiáng)的課程。實(shí)踐內(nèi)容主要包含兩方面:匯編語(yǔ)言程序設(shè)計(jì)的軟件上機(jī)和I/O接口應(yīng)用的硬件實(shí)驗(yàn)。本上機(jī)任務(wù)以普通32位PC機(jī)為唯一硬件條件,以匯編語(yǔ)言貫穿始終,即使是有關(guān)I/O接口也安排有通過(guò)PC機(jī)編程實(shí)驗(yàn)的實(shí)踐內(nèi)容。教材從構(gòu)建開(kāi)發(fā)環(huán)境開(kāi)始就可以安排上機(jī)實(shí)踐的任務(wù),隨著課堂教學(xué)的展開(kāi),逐漸進(jìn)行開(kāi)發(fā)環(huán)境的熟悉、MASM開(kāi)發(fā)方法的練習(xí)、開(kāi)發(fā)過(guò)程的熟練掌握、庫(kù)文件開(kāi)發(fā)以及小型項(xiàng)目的組織,
22、并隨著微機(jī)接口軟件編程或硬件實(shí)驗(yàn)進(jìn)行應(yīng)用,直到最后結(jié)束。 上機(jī)任務(wù)所述的習(xí)題和例題均來(lái)自本課程配套教材,習(xí)題例題的詳細(xì)內(nèi)容請(qǐng)參看教材。 上機(jī)任務(wù)1 數(shù)據(jù)尋址 ① 熟悉進(jìn)入和退出32位控制臺(tái)和16位DOS環(huán)境的方法。 ② 創(chuàng)建MASM目錄、復(fù)制開(kāi)發(fā)軟件,生成進(jìn)入開(kāi)發(fā)環(huán)境的快捷方式。 ③ 熟悉匯編語(yǔ)言的開(kāi)發(fā)過(guò)程,實(shí)現(xiàn)教材例題2-1程序。 ④ 掌握數(shù)據(jù)尋址方式,上機(jī)實(shí)現(xiàn)教材中的例題2-2程序。 上機(jī)任務(wù)2 數(shù)據(jù)表達(dá) 熟悉匯編語(yǔ)言中的數(shù)據(jù)表達(dá)、變量定義和屬性,驗(yàn)證教材例題3-1、例題3-3、例題3-5程序,實(shí)現(xiàn)習(xí)題3.14程序。 上機(jī)任務(wù)3 數(shù)據(jù)處理 ① 掌握常用傳送和運(yùn)算指
23、令,驗(yàn)證例題3-9和例題3-12程序。 ② 首先判斷習(xí)題3.20每條指令執(zhí)行后EAX的數(shù)值和相關(guān)標(biāo)志狀態(tài),寫(xiě)出結(jié)果。然后將其編輯成為一個(gè)完整的匯編語(yǔ)言源程序,匯編連接、生成可執(zhí)行文件??梢岳帽緯?shū)配套的I/O子程序庫(kù),在每條指令之后,調(diào)用其中的DISPRF(先調(diào)用)和DISPHD,顯示6個(gè)狀態(tài)標(biāo)志位和EAX內(nèi)容,并核對(duì)事先判斷的結(jié)果。 上機(jī)任務(wù)4 位操作 ① 掌握位操作類指令的應(yīng)用,驗(yàn)證例題3-14程序,實(shí)現(xiàn)習(xí)題3.28程序。 ② 理解串操作指令,驗(yàn)證例題3-16程序。 上機(jī)任務(wù)5 分支程序設(shè)計(jì) ① 掌握轉(zhuǎn)移指令和分支程序結(jié)構(gòu)。驗(yàn)證例題4-3程序,實(shí)現(xiàn)習(xí)題4.5程序。 ② 驗(yàn)
24、證例題4-7程序,實(shí)現(xiàn)習(xí)題4.11程序。 上機(jī)任務(wù)6 循環(huán)程序設(shè)計(jì) ① 掌握循環(huán)指令和循環(huán)程序結(jié)構(gòu)。驗(yàn)證例題4-12程序,實(shí)現(xiàn)習(xí)題4.13程序。 ② 驗(yàn)證例題4-10程序。實(shí)現(xiàn)如下程序:進(jìn)行自然數(shù)相加(1+2+3+……+N);如果(無(wú)符號(hào)整數(shù)的)累加和用一個(gè)32位寄存器存儲(chǔ),求出有效累加和的最大值及N的界限。 上機(jī)任務(wù)7 子程序設(shè)計(jì) ① 掌握子程序指令和子程序結(jié)構(gòu)。驗(yàn)證例題4-15程序,實(shí)現(xiàn)習(xí)題4.29程序。 ② 熟悉子程序的參數(shù)傳遞和子程序庫(kù)方法。驗(yàn)證例題4-18程序,然后分別使用子程序模塊、子程序庫(kù)和子程序庫(kù)包含方法生成最終可執(zhí)行文件。 上機(jī)任務(wù)8 DOS應(yīng)用程序 掌
25、握16位DOS應(yīng)用程序的編寫(xiě)。驗(yàn)證例題7-1和例題7-2程序,實(shí)現(xiàn)習(xí)題7.22程序。 考試模擬題 一、單項(xiàng)選擇題(10分) 1. 微機(jī)系統(tǒng)中各個(gè)功能部件通過(guò)__________相互連接。 A 處理器 B 存儲(chǔ)器 C 系統(tǒng)總線 D I/O接口 2. 堆棧的操作原則是_____________。 A 循環(huán) B 先進(jìn)先出 C 后進(jìn)后出 D 后進(jìn)先出 3. 微機(jī)中每個(gè)存儲(chǔ)單元具有一個(gè)地址,其中存放一個(gè)__________量。 A 比特(1位) B 字節(jié)(8位) C 字(16位) D 雙字(32位) 4. MASM中,下列符號(hào)作為標(biāo)識(shí)符中
26、_____________是不合語(yǔ)法的。 A WANG B MOV C F8 D AB3 5. 8253計(jì)數(shù)器引腳OUT的作用是__________。 A 指示計(jì)數(shù)過(guò)程結(jié)束 B 啟動(dòng)計(jì)數(shù)過(guò)程 C 控制計(jì)數(shù)過(guò)程 D 輸入時(shí)鐘信號(hào) 二、對(duì)錯(cuò)判斷題(10分) 1. 總線具有共用的特點(diǎn),某一時(shí)刻可由多個(gè)總線主控設(shè)備來(lái)控制總線。 ( ) 2. 讀取SRAM某個(gè)存儲(chǔ)單元的內(nèi)容后,該存儲(chǔ)單元的內(nèi)容就為空。 ( ) 3. DRAM必須定時(shí)刷新,否則所存信息就會(huì)丟失。 ( ) 4. 處理器并不直接連接外設(shè),而是通過(guò)I/O接口電路與外設(shè)連接。 (
27、 ) 5. DMA傳送時(shí),交換的數(shù)據(jù)要進(jìn)入DMA控制器。 ( ) 三、填空題(10分) 1. DMA的意思是___________,主要用于高速外設(shè)和主存間的數(shù)據(jù)傳送。 2. 存儲(chǔ)結(jié)構(gòu)為8K8位的EPROM芯片2764,共有__________個(gè)地址引腳。用它組成64KB的ROM存儲(chǔ)區(qū)共需__________片芯片。 3. IA-32處理器執(zhí)行指令I(lǐng)N是將數(shù)據(jù)從___________傳輸?shù)絖_________。 四、問(wèn)答題(30分) 1. 寫(xiě)出IA-32處理器8個(gè)32位通用寄存器的名稱、8086處理器支持的8個(gè)16位通用寄存器名稱、以及其中4個(gè)寄存器又可分成的8個(gè)8位通用
28、寄存器的名稱。 2. 說(shuō)明標(biāo)志ZF的含義,何時(shí)為0,何時(shí)為1? 3. 處理器有哪4種最基本的總線操作(周期)?處理器8086有3個(gè)基本讀寫(xiě)引腳:M/IO*、WR*和RD*(其中*號(hào)表示低電平有效),說(shuō)明它們?cè)谶M(jìn)行這4種基本總線操作時(shí)的高低電平狀態(tài)。 4. 解釋中斷概念:中斷識(shí)別、中斷優(yōu)先權(quán)、中斷嵌套。 5. 簡(jiǎn)述高性能存儲(chǔ)系統(tǒng)的層次結(jié)構(gòu)及各層存儲(chǔ)部件的特點(diǎn)。 五、程序閱讀題(20分) 1. 下段程序執(zhí)行后,EAX=______________,EBX=______________ mov eax,1357ah add eax,10h sub ebx,ebx 2. 如
29、下程序段將EAX和EBX中有符號(hào)數(shù)的較大值存放在DMAX變量中,請(qǐng)補(bǔ)充完整: cmp eax,ebx ___________ next _________________ next: mov dmax,eax 六、程序設(shè)計(jì)題(20分) 1. 以下5個(gè)小題,請(qǐng)分別用一條語(yǔ)句完成其要求。 ① 將45H,0F000H,89H存放在32位變量XYZ的存儲(chǔ)單元中。 ② 將寄存器EDX內(nèi)容與4578H相加,和存入EDX。 ③ 為BUFFER變量預(yù)留100個(gè)字節(jié)存儲(chǔ)單元。 ④ 將寄存器ESI最低位清0,其他位不變。 ⑤ 將堆棧頂部數(shù)據(jù)彈出,傳送給EDI寄存器。 2. 數(shù)據(jù)段保存
30、有如下字符串: string byte Do not give up!,0 ;以0結(jié)尾的字符串 請(qǐng)?jiān)诖a段,編寫(xiě)統(tǒng)計(jì)字符串中字符個(gè)數(shù)的程序片斷(不包括結(jié)尾標(biāo)志0)。 “微機(jī)原理及接口技術(shù)”練習(xí)題參考解答 第1章 微型計(jì)算機(jī)系統(tǒng)概述 1.1 簡(jiǎn)答題(1、2、8、9、10) ① 處理器每個(gè)單位時(shí)間可以處理的二進(jìn)制數(shù)據(jù)位數(shù)稱計(jì)算機(jī)字長(zhǎng)。 ② 總線信號(hào)分成三組,分別是數(shù)據(jù)總線、地址總線和控制總線。 ⑧ MASM是微軟開(kāi)發(fā)的宏匯編程序。 ⑨ 指令的處理過(guò)程。處理器的“取指—譯碼—執(zhí)行周期” 是指處理器從主存儲(chǔ)器讀取指令(簡(jiǎn)稱取指),翻譯指令代碼的功能(簡(jiǎn)稱譯碼),然后執(zhí)行指令所規(guī)定的
31、操作(簡(jiǎn)稱執(zhí)行)的過(guò)程。 ⑩ 機(jī)器語(yǔ)言層,即指令集結(jié)構(gòu)。 1.2 判斷題(1、3、5、7、10) ① 錯(cuò) ③ 對(duì) ⑤ 對(duì) ⑦ 錯(cuò) ⑩ 錯(cuò) 1.3 填空題(2、3、4、5、6) ② 1MB,4GB ③ 216,64KB ④ EXE,COM ⑤ Instruction Set Architecture ⑥ 目錄 1.5 通用微處理器:適合較廣的應(yīng)用領(lǐng)域的微處理器,例如裝在PC機(jī)、筆記本電腦、工作站、服務(wù)器上的微處理器。 單片機(jī):是指通常用于控制領(lǐng)域的微處理器芯片,其內(nèi)部除CPU外還集成了計(jì)算機(jī)的其他一些主要部件,只需配上少量的外部電路和設(shè)備,就可以構(gòu)成具體的應(yīng)用系統(tǒng)。 D
32、SP芯片:稱數(shù)字信號(hào)處理器,也是一種微控制器,其更適合處理高速的數(shù)字信號(hào),內(nèi)部集成有高速乘法器,能夠進(jìn)行快速乘法和加法運(yùn)算。 嵌入式系統(tǒng):利用微控制器、數(shù)字信號(hào)處理器或通用微處理器,結(jié)合具體應(yīng)用構(gòu)成的控制系統(tǒng)。 1.7 助記符:人們采用便于記憶、并能描述指令功能的符號(hào)來(lái)表示機(jī)器指令操作碼,該符號(hào)稱為指令助記符。 匯編語(yǔ)言:用助記符表示的指令以及使用它們編寫(xiě)程序的規(guī)則就形成匯編語(yǔ)言。 匯編語(yǔ)言程序:用匯編語(yǔ)言書(shū)寫(xiě)的程序就是匯編語(yǔ)言程序,或稱匯編語(yǔ)言源程序。 匯編程序:匯編語(yǔ)言源程序要翻譯成機(jī)器語(yǔ)言程序才可以由處理器執(zhí)行。這個(gè)翻譯的過(guò)程稱為“匯編”,完成匯編工作的程序就是匯編程序(As
33、sembler)。 1.8 路徑:操作系統(tǒng)以目錄形式管理磁盤(pán)上的文件,文件所在的分區(qū)和目錄就是該文件的路徑。 絕對(duì)路徑:從根目錄到文件所在目錄的完整路徑稱為“絕對(duì)路徑”。是保證文件唯一性的標(biāo)示方法。 相對(duì)路徑:從系統(tǒng)當(dāng)前目錄到文件所在目錄的路徑稱為相對(duì)路徑。 當(dāng)前目錄:用戶當(dāng)前所在的目錄就是當(dāng)前目錄。 指明的路徑不正確,或者執(zhí)行了另外一個(gè)同名的文件。 1.10 采用二進(jìn)制形式表示數(shù)據(jù)和指令。指令由操作碼和地址碼組成。 將程序和數(shù)據(jù)存放在存儲(chǔ)器中,計(jì)算機(jī)在工作時(shí)從存儲(chǔ)器取出指令加以執(zhí)行,自動(dòng)完成計(jì)算任務(wù)。這就是“存儲(chǔ)程序”和“程序控制”(簡(jiǎn)稱存儲(chǔ)程序控制)的概念。 指令的執(zhí)行
34、是順序的,即一般按照指令在存儲(chǔ)器中存放的順序執(zhí)行,程序分支由轉(zhuǎn)移指令實(shí)現(xiàn)。 計(jì)算機(jī)由存儲(chǔ)器、運(yùn)算器、控制器、輸入設(shè)備和輸出設(shè)備五大基本部件組成,并規(guī)定了5部分的基本功能。 1.14 高級(jí)語(yǔ)言與具體的計(jì)算機(jī)硬件無(wú)關(guān),其表達(dá)方式接近于所描述的問(wèn)題,易為人們接受和掌握,用高級(jí)語(yǔ)言編寫(xiě)程序要比低級(jí)語(yǔ)言容易得多,并大大簡(jiǎn)化了程序的編制和調(diào)試,使編程效率得到大幅度的提高。而匯編語(yǔ)言是為了便于理解與記憶,將機(jī)器指令用助記符代替而形成的一種語(yǔ)言。匯編語(yǔ)言的語(yǔ)句通常與機(jī)器指令對(duì)應(yīng),因此,匯編語(yǔ)言與具體的計(jì)算機(jī)有關(guān),屬于低級(jí)語(yǔ)言。它比機(jī)器語(yǔ)言直觀,容易理解和記憶,用匯編語(yǔ)言編寫(xiě)的程序也比機(jī)器語(yǔ)言易閱讀、易排
35、錯(cuò)。機(jī)器語(yǔ)言的每一條機(jī)器指令都是二進(jìn)制形式的指令代碼,計(jì)算機(jī)硬件可以直接識(shí)別。高級(jí)語(yǔ)言程序通常也需要翻譯成匯編語(yǔ)言程序,再進(jìn)一步翻譯成機(jī)器語(yǔ)言代碼。 第2章 處理器結(jié)構(gòu) 2.1 簡(jiǎn)答題(2、5、6、7、9) ② 取指是指從主存取出指令代碼通過(guò)總線傳輸?shù)教幚砥鲀?nèi)部指令寄存器的過(guò)程。8086分成總線接口單元和指令執(zhí)行單元,可以獨(dú)立操作。在執(zhí)行單元執(zhí)行一條指令的同時(shí),總線接口單元可以讀取下一條指令,等到執(zhí)行時(shí)不需要進(jìn)行取指了,所以稱為預(yù)取。 ⑤ 標(biāo)志寄存器主要保存反映指令執(zhí)行結(jié)果和控制指令執(zhí)行形式的有關(guān)狀態(tài)。 ⑥ 執(zhí)行了一條加法指令后,發(fā)現(xiàn)ZF=1,表明運(yùn)算結(jié)果為0。 ⑦ 沒(méi)有。 ⑨
36、不會(huì)。 2.2 判斷題(3、5、6、7、9) ③ 對(duì) ⑤ 錯(cuò) ⑥ 對(duì) ⑦ 對(duì) ⑨ 對(duì) 2.3 填空題(1、3、4、5、7) ① 32,DX,DH ③ 段地址,偏移地址,EIP,IP ④ 00100110,0 ⑤ 73C00H,73800H ⑦ 實(shí)地址,64KB 2.6 標(biāo)志:用于反映指令執(zhí)行結(jié)果或控制指令執(zhí)行形式的一個(gè)或多個(gè)二進(jìn)制數(shù)位。例如,有些指令執(zhí)行后會(huì)影響有關(guān)標(biāo)志位;有些指令的執(zhí)行要利用相關(guān)標(biāo)志。 狀態(tài)標(biāo)志:用來(lái)記錄程序運(yùn)行結(jié)果的狀態(tài)信息。 控制標(biāo)志:DF標(biāo)志,控制字符串操作的地址方向。 系統(tǒng)標(biāo)志:用于控制處理器執(zhí)行指令的方式。 狀態(tài)標(biāo)志在標(biāo)志寄存器E
37、FLAGS中的位置和含義如下: 31 11 10 9 8 7 6 5 4 3 2 1 0 …… OF SF ZF AF PF CF 2.8 物理地址:在處理器地址總線上輸出的地址稱為物理地址。每個(gè)存儲(chǔ)單元有一個(gè)唯一的物理地址。 邏輯地址:在處理器內(nèi)部、程序員編程時(shí)采用邏輯地址,采用“段地址:偏移地址“形式。某個(gè)存儲(chǔ)單元可以有多個(gè)邏輯地址,即處于不同起點(diǎn)的邏輯段中,但其物理地址是唯一的。 邏輯地址轉(zhuǎn)換成物理地址:邏輯地址由處理器在輸出之前轉(zhuǎn)換為物理地址。將邏輯地址中的段地址左移二進(jìn)制4位(對(duì)應(yīng)16進(jìn)制
38、是一位,即乘以16),加上偏移地址就得到20位物理地址。 ① FFFFH:0=FFFF0H ② 40H:17H=00417H ③ 2000H:4500H=24500H ④ B821H:4567H=BC777H 2.9 IA-32處理器有代碼段、數(shù)據(jù)段、堆棧段三類基本段。 代碼段:存放程序的指令代碼。程序的指令代碼必須安排在代碼段,否則將無(wú)法正常執(zhí)行。 數(shù)據(jù)段:存放當(dāng)前運(yùn)行程序所用的數(shù)據(jù)。程序中的數(shù)據(jù)默認(rèn)是存放在數(shù)據(jù)段,也可以存放在其他邏輯段中。 堆棧段:主存中堆棧所在的區(qū)域。程序使用的堆棧一定在堆棧段。 2.12 匯編語(yǔ)句有兩種:執(zhí)行性語(yǔ)句(處理器指令)、說(shuō)明性語(yǔ)句(偽指
39、令)。 每個(gè)語(yǔ)句有:標(biāo)號(hào)、指令助記符、操作數(shù)或參數(shù)、注釋4個(gè)部分組成。 2.13 匯編語(yǔ)言程序的開(kāi)發(fā)有4個(gè)步驟: 編輯:用文本編輯器形成一個(gè)以ASM為擴(kuò)展名的源程序文件。 匯編:用匯編程序?qū)SM文件轉(zhuǎn)換為OBJ模塊文件。 連接:用連接程序?qū)⒁粋€(gè)或多個(gè)目標(biāo)文件鏈接成一個(gè)EXE或COM可執(zhí)行文件。 調(diào)試:用調(diào)試程序排除錯(cuò)誤,生成正確的可執(zhí)行文件。 2.16 ① 立即數(shù) ② 直接 ③ 寄存器 ④ 寄存器間接 ⑤ 寄存器相對(duì) ⑥ 寄存器相對(duì) ⑦ 基址變址 ⑧ 相對(duì)基址變址 ⑨ 相對(duì)基址變址 ⑩ 帶比例尋址 第3章 數(shù)據(jù)處理 3.1 簡(jiǎn)答題(1、2、3、8、9)
40、 ① 沒(méi)有。使用二進(jìn)制8位表達(dá)無(wú)符號(hào)整數(shù),257沒(méi)有對(duì)應(yīng)的編碼。 ② 字符“F”的ASCII碼就是數(shù)值46H,所以沒(méi)有區(qū)別。 ③ 匯編程序在匯編過(guò)程中對(duì)數(shù)值表達(dá)式計(jì)算,得到一個(gè)確定的數(shù)值,故稱數(shù)值表達(dá)式為常量。 ⑧ 大小寫(xiě)字母轉(zhuǎn)換利用它們的ASCII碼相差20H。 ⑨ 加減法不區(qū)別無(wú)符號(hào)數(shù)和有符號(hào)數(shù),但根據(jù)運(yùn)算結(jié)果分別設(shè)置標(biāo)志寄存器的CF和OF標(biāo)志,可利用CF和OF進(jìn)行區(qū)別。 3.2 判斷題(2、4、6、8、9) ② 對(duì) ④ 錯(cuò) ⑥ 對(duì) ⑧ 錯(cuò) ⑨ 對(duì) 3.3 填空題(2、3、5、6、8) ② 97,61,小寫(xiě)字母a ③ 0DH(13),0AH(10) ⑤ DWOR
41、D,4,WORD PTR XYZ
⑥ 3
⑧ 0,0,0
3.7
① 00000000
② 01111111
③ 10000001
④ 11000111
3.10
my1b byte Personal Computer
my2b byte 20
my3b byte 14h
my4b byte 00010100b
my5w word 20 dup(?)
my6c = 100
my7c equ
42、4 04 10 00 FB FF 00 00 00 00 00 00 3.14 include io32.inc .data table byte |0 1 2 3 4 5 6 7 8 9 A B C D E F,13,10 byte ---+-------------------------------,13,10 byte 20 |,20h,20h,21h,20h,22h,20h,23h,20h,24h,20h,25h,20h,26h,20h,27h, 20h,28h,20h,29h,20h,2ah,20h,2bh,20h,2ch,20h,2dh,20h,2eh
43、,20h,2fh,20h,13,10 byte 30 |,30h,20h,31h,20h,32h,20h,33h,20h,34h,20h,35h,20h,36h,20h,37h, 20h,38h,20h,39h,20h,3ah,20h,3bh,20h,3ch,20h,3dh,20h,3eh,20h,3fh,20h,13,10 byte 40 |,40h,20h,41h,20h,42h,20h,43h,20h,44h,20h,45h,20h,46h,20h,47h, 20h,48h,20h,49h,20h,4ah,20h,4bh,20h,4ch,20h,4dh,20h,4eh,20h,4
44、fh,20h,13,10 byte 50 |,50h,20h,51h,20h,52h,20h,53h,20h,54h,20h,55h,20h,56h,20h,57h, 20h,58h,20h,59h,20h,5ah,20h,5bh,20h,5ch,20h,5dh,20h,5eh,20h,5fh,20h,13,10 byte 60 |,60h,20h,61h,20h,62h,20h,63h,20h,64h,20h,65h,20h,66h,20h,67h, 20h,68h,20h,69h,20h,6ah,20h,6bh,20h,6ch,20h,6dh,20h,6eh,20h,6fh,20h
45、,13,10 byte 70 |,70h,20h,71h,20h,72h,20h,73h,20h,74h,20h,75h,20h,76h,20h, 77h,20h,78h,20h,79h,20h,7ah,20h,7bh,20h,7ch,20h,7dh,20h,7eh,20h,7fh,20h,13,10 byte 0 .code start: mov eax,offset table call dispmsg exit 0 end start 3.15 小端方式采用“低對(duì)低、高對(duì)高”,即低字節(jié)數(shù)據(jù)存放在低地址存儲(chǔ)單元、高字節(jié)數(shù)據(jù)存放在高地址存儲(chǔ)單元。以字節(jié)為單位
46、按地址從低到高的順序,var變量的內(nèi)容:78H、56H、34H、12H。 ; EAX=12345678H ; BX=5678H ; CX=1234H ; DL=78H ; DH=12H 3.20 (1) ; EAX=80H ; EAX=83H,CF=0,SF=0 ; EAX=103H,CF=0,OF=0 ; EAX=106H,CF=0,ZF=0 (2) ; EAX=100 ; EAX=300,CF=0 (3) ; EAX=100 ; EAX=44,CF=1(包含256的進(jìn)位含義:256+44=300) (4) ; AL=7FH
47、 ; AL=77H,CF=0,SF=0 ; AL=F7H,CF=1,OF=1 ; AL=F3H,CF=0,ZF=0 3.23 (1) ; ESI=9CH ; ESI=80H ; ESI=FFH ; ESI=01H (2) ; EAX=1010B(可以有前導(dǎo)0,下同) ; EAX=0010B,CF=1 ; EAX=0100B,CF=0 ; EAX=0000B,CF=0 (3) ; EAX=1011B(可以有前導(dǎo)0,下同) ; EAX=101100B,CF=0 ; EAX=10110B,CF=0 ; EAX=10111B,CF=0
48、 (4) ; EAX=0,CF=0,OF=0 ; ZF=1,SF=0,PF=1 3.30 顯示結(jié)果:welldone EBX寄存器相對(duì)尋址: mov al,msg[ebx] mov msg[ebx],al 第4章 匯編語(yǔ)言程序設(shè)計(jì) 4.1 簡(jiǎn)答題(1、2、3、4、7) ① 當(dāng)同一個(gè)程序被操作系統(tǒng)安排到不同的存儲(chǔ)區(qū)域執(zhí)行時(shí),指令間的位移沒(méi)有改變,目標(biāo)地址采用相對(duì)尋址可方便操作系統(tǒng)的靈活調(diào)度。 ② 數(shù)據(jù)通信時(shí),數(shù)據(jù)的某一位用做傳輸數(shù)據(jù)的奇偶校驗(yàn)位,數(shù)據(jù)中包括校驗(yàn)位在內(nèi)的“1”的個(gè)數(shù)恒為奇數(shù),就是奇校驗(yàn);恒為偶數(shù),就是偶校驗(yàn)。 ③ 無(wú)符號(hào)數(shù)和有符號(hào)數(shù)的操作影響兩組不
49、同的標(biāo)志狀態(tài)位,故判斷兩個(gè)無(wú)符號(hào)數(shù)和有符號(hào)數(shù)的大小關(guān)系要利用不同的標(biāo)志位組合,所以有對(duì)應(yīng)的兩組指令。 ④ 雙分支結(jié)構(gòu)中兩個(gè)分支體之間的JMP指令,用于實(shí)現(xiàn)結(jié)束前一個(gè)分支回到共同的出口作用。 ⑦ “傳值”是傳遞參數(shù)的一個(gè)拷貝,被調(diào)用程序改變這個(gè)參數(shù)不影響調(diào)用程序;“傳址”時(shí),被調(diào)用程序可能修改通過(guò)地址引用的變量?jī)?nèi)容。 4.2 判斷題(2、3、4、6、8) ② 錯(cuò) ③ 錯(cuò) ④ 錯(cuò) ⑥ 對(duì) ⑧ 錯(cuò) 4.3 填空題(2、3、5、7、9) ② 1256H,3280H ③ 3721H,1 ⑤ 循環(huán)初始,循環(huán)控制 ⑦ TEST ENDP,ENDM ⑨ PUBLIC,EXTERN
50、 4.6 CF=1 ZF=0 SF=1 OF=0 PF=1 可以使得條件成立、發(fā)生轉(zhuǎn)移的指令有:JC JS JP JNZ JNO 4.8 ; 數(shù)據(jù)段 Rdata byte 57h ;保存接收的數(shù)據(jù) error byte Error !,0 ; 代碼段 mov al,Rdata and al,0ffh ;標(biāo)志PF反映“1”的個(gè)數(shù) jp done ;個(gè)數(shù)為偶數(shù),正確繼續(xù) mov eax,offset error ;個(gè)數(shù)為奇數(shù),顯示出錯(cuò) call dispmsg done: 4.11 ; 數(shù)據(jù)段 inmsg byte Inpu
51、t number(0~9): ,0 ermsg byte 0dh,0ah,Error! Input again: ,0 ; 代碼段 mov eax,offset inmsg ; 提示輸入數(shù)字 call dispmsg again: call readc ; 等待按鍵 cmp al,0 ; 數(shù)字 < 0? jb erdisp cmp al,9 ; 數(shù)字 > 9? ja erdisp call dispcrlf call dispc jmp done erdisp: mov eax,offset ermsg call dispmsg jmp a
52、gain done: 4.12 求這20個(gè)雙字的和,保存在TOTAL變量,不關(guān)進(jìn)心進(jìn)位和溢出。 4.13 ; 數(shù)據(jù)段 string byte Do you have fun with Assembly ?,0 ;以0結(jié)尾的字符串 space dword ? ; 代碼段 mov esi,offset string xor ebx,ebx ;EBX用于記錄空格數(shù) again: mov al,[esi] cmp al,0 jz done cmp al,20h ;空格的ASCII碼是20H jne next ;不相等、不是空格,轉(zhuǎn)移 inc ebx
53、;相等、是空格,空格個(gè)數(shù)加1 next: inc esi jmp again ;繼續(xù)循環(huán) done: mov space,ebx ;保存結(jié)果 4.22 ; 代碼段,主程序 mov eax,8F98FF00H call dispbd ; 調(diào)用子程序 ; 代碼段,子程序 dispbd proc ; 32位二進(jìn)制數(shù)的輸出 push ecx push edx mov ecx,32 ; 要輸出的字符個(gè)數(shù) dbd: rol eax,1 ; AL循環(huán)左移一位 push eax and al,01h ; 取AL最低位 add al,30h ; 轉(zhuǎn)化成相應(yīng)的
54、ASCLL碼值 call dispc ; 以二進(jìn)制的形式顯示 pop eax loop dbd pop edx pop ecx ret dispbd endp 4.25 ; 計(jì)算字節(jié)校驗(yàn)和的通用過(guò)程 ; 入口參數(shù):DS:EBX=數(shù)組的段地址:偏移地址,ECX=元素個(gè)數(shù) ; 出口參數(shù):AL=校驗(yàn)和 ; 說(shuō)明:除EAX/EBX/ECX外,不影響其他寄存器 checksum proc xor al,al ; 累加器清0 sum: add al,[ebx] ; 求和 inc ebx ; 指向下一個(gè)字節(jié) loop sum ret chec
55、ksum endp 4.29 include io32.inc .data var byte This is a test! .code start: ; 主程序 mov eax,offset var mov ecx,sizeof var call dispmem exit 0 ; 子程序 dispmem proc push ebx mov ebx,eax dispm1: mov al,[ebx] call disphb mov al, call dispc inc ebx loop dispm1 pop ebx
56、ret dispmem endp end start 第5章 微機(jī)總線 5.1 簡(jiǎn)答題(1、3、4、5、7) ① 數(shù)據(jù)總線承擔(dān)著處理器與存儲(chǔ)器、外設(shè)之間的數(shù)據(jù)交換,既可以輸入也可以輸出,故其是雙向的。 ③ 具有三態(tài)能力的引腳當(dāng)輸出呈現(xiàn)高阻狀態(tài)時(shí),相當(dāng)于連接了一個(gè)阻抗很高的外部器件,信號(hào)無(wú)法正常輸出;即放棄對(duì)該引腳的控制,與其他部件斷開(kāi)連接。 ④ 處理器的運(yùn)行速度遠(yuǎn)遠(yuǎn)快于存儲(chǔ)器和I/O端口。處理器檢測(cè)到存儲(chǔ)器或I/O端口不能按基本的總線周期進(jìn)行數(shù)據(jù)交換時(shí),插入一個(gè)等待狀態(tài)Tw。等待狀態(tài)實(shí)際上是一個(gè)保持總線信號(hào)狀態(tài)不變的時(shí)鐘周期。 ⑤ 猝發(fā)傳送是處理器只提供首地址、但可以從后續(xù)連
57、續(xù)的存儲(chǔ)單元中讀寫(xiě)多個(gè)數(shù)據(jù)。 ⑦ 異步時(shí)序是由總線握手(Handshake)聯(lián)絡(luò)(應(yīng)答)信號(hào)控制,不是由總線時(shí)鐘控制。故總線時(shí)鐘信號(hào)可有可無(wú)。 5.2 判斷題(2、3、4、6、7) ② 對(duì) ③ 錯(cuò) ④ 對(duì) ⑥ 錯(cuò) ⑦ 對(duì) 5.3 填空題(2、3、4、5、10) ② 讀,寫(xiě) ③ 存儲(chǔ)器讀,存儲(chǔ)器讀,存儲(chǔ)器寫(xiě) ④ 4,2,10ns ⑤ 低有效,,0010 ⑩ ,I/O CH RDY 5.4 存儲(chǔ)器讀、存儲(chǔ)器寫(xiě),I/O讀、I/O寫(xiě)。 5.5 RESET:復(fù)位輸入信號(hào),高電平有效。該引腳有效時(shí),將迫使處理器回到其初始狀態(tài);轉(zhuǎn)為無(wú)效時(shí),CPU重新開(kāi)始工作。 HOLD:總線請(qǐng)
58、求,是一個(gè)高電平有效的輸入信號(hào)。該引腳有效時(shí),表示其他總線主控設(shè)備向處理器申請(qǐng)使用原來(lái)由處理器控制的總線。 NMI:不可屏蔽中斷請(qǐng)求,是一個(gè)利用上升沿有效的輸入信號(hào)。該引腳信號(hào)有效時(shí),表示外界向CPU申請(qǐng)不可屏蔽中斷。 INTR:可屏蔽中斷請(qǐng)求,是一個(gè)高電平有效的輸入信號(hào)。該引腳信號(hào)有效時(shí),表示中斷請(qǐng)求設(shè)備向處理器申請(qǐng)可屏蔽中斷。 5.6 指令周期:一條指令從取指、譯碼到最終執(zhí)行完成的過(guò)程。 總線周期(機(jī)器周期):有數(shù)據(jù)交換的總線操作。 時(shí)鐘周期:處理器的基本工作節(jié)拍,由時(shí)鐘信號(hào)產(chǎn)生,一個(gè)高電平和一個(gè)低電平為一個(gè)周期。 題5.8圖 具有一個(gè)Tw的存儲(chǔ)器讀總線周期時(shí)序 Tw
59、T3 T2 T1 輸入數(shù)據(jù) A15~A0 CLK AD15~AD0 ALE /S7, A19/S6~A16/S3 A19~A06 S7~S0 READY 高阻 T4 高阻 T狀態(tài):完成特定操作的一個(gè)時(shí)鐘周期。由于時(shí)間上一個(gè)T狀態(tài)等于一個(gè)時(shí)鐘周期,所以常常將兩者混為一談。 5.8 CLK:時(shí)鐘輸入。 A19/S6~A16/S3:地址/狀態(tài)分時(shí)復(fù)用引腳。 AD15~AD0:地址/數(shù)據(jù)分時(shí)復(fù)用引腳。 ALE:地址鎖存允許。 :訪問(wèn)存儲(chǔ)器或者I/O。 :讀控制。 :寫(xiě)控制。 5.10 同步時(shí)序:總線操作的各個(gè)過(guò)程由共用的總線時(shí)鐘信號(hào)控制。 半
60、同步時(shí)序:總線操作仍由共用的總線時(shí)鐘信號(hào)控制,但慢速模塊可以通過(guò)等待信號(hào)讓快速模塊等待。 異步時(shí)序:總線操作需要握手(Handshake)聯(lián)絡(luò)(應(yīng)答)信號(hào)控制,總線時(shí)鐘信號(hào)可有可無(wú)。 5.11 (328)(28)=16MBps 第6章 存儲(chǔ)器系統(tǒng) 6.1 簡(jiǎn)答題(1、2、6、7、8) ① 因?yàn)楦鞣N存儲(chǔ)器件在容量、速度和價(jià)格方面存在矛盾。速度快,則單位價(jià)格高;容量大,單位價(jià)格低,但存取速度慢。故存儲(chǔ)系統(tǒng)不能采用一種存儲(chǔ)器件。 ② Cache中復(fù)制著主存的部分內(nèi)容。當(dāng)處理器試圖讀取主存的某個(gè)字時(shí),Cache控制器首先檢查Cache中是否已包含有這個(gè)字。若有,則處理器直接讀取Cache
61、,這種情況稱為高速命中;若無(wú),則稱為高速缺失。 ⑥ 存取時(shí)間是指從讀/寫(xiě)命令發(fā)出,到數(shù)據(jù)傳輸操作完成所經(jīng)歷的時(shí)間;存取周期表示兩次存儲(chǔ)器訪問(wèn)所允許的最小時(shí)間間隔。存取周期大于等于存取時(shí)間。 ⑦ 虛擬存儲(chǔ)器是由操作系統(tǒng)利用輔助存儲(chǔ)器、以磁盤(pán)文件形式建立的、在主存儲(chǔ)器與輔助存儲(chǔ)器之間的一個(gè)存儲(chǔ)器。 ⑧ DRAM芯片容量大、芯片小,高集成度,引腳數(shù)量少。故DRAM芯片將地址引腳分時(shí)復(fù)用,即用一組地址引腳傳送兩批地址。第一批地址稱行地址,第二批地址稱列地址。 6.2 判斷題(1、2、5、6、8) ① 錯(cuò) ② 對(duì) ⑤ 對(duì) ⑥ 錯(cuò) ⑧ 對(duì) 6.3 填空題(3、4、5、6、7) ③ 隨機(jī)
62、存取存儲(chǔ)器,丟失,只讀存儲(chǔ)器,讀取,不會(huì)丟失 ④ 8,13,8 ⑤ 2 ⑥(UV-)EPROM,F(xiàn)lash Memory ⑦ 58000H,5FFFFH,32KB 6.5 為解決容量、速度和價(jià)格的矛盾,存儲(chǔ)系統(tǒng)采用金字塔型層次結(jié)構(gòu),單位價(jià)格和速度自上而下逐層減少,容量自上而下逐層增加。 存儲(chǔ)系統(tǒng)的各層存儲(chǔ)部件自上而下依次是:CPU寄存器、高速緩存、主存存儲(chǔ)器(RAM/ROM),輔助存儲(chǔ)器如磁盤(pán)、光盤(pán)等。CPU寄存器、高速緩存器集成在CPU芯片上,對(duì)用戶來(lái)說(shuō),是透明的,它們用于暫存主存和處理器交互的數(shù)據(jù),以減少頻繁讀取主存而影響處理器速度;主存儲(chǔ)器則可和處理器直接交換數(shù)據(jù),而輔助存
63、儲(chǔ)器必須經(jīng)過(guò)主存存儲(chǔ)器,才可與處理器進(jìn)行數(shù)據(jù)交換。 6.6 SRAM是靜態(tài)讀寫(xiě)存儲(chǔ)器芯片,它以觸發(fā)器為基本存儲(chǔ)單元,以其兩種穩(wěn)定狀態(tài)表示邏輯0和邏輯1。 DRAM是動(dòng)態(tài)讀寫(xiě)存儲(chǔ)器芯片,它以單個(gè)MOS管為基本存儲(chǔ)單元,以極間電容充放電表示兩種邏輯狀態(tài),需要不斷刷新保持信息正確。 NVRAM多指帶有后備電池的SRAM芯片,這種芯片采用CMOS制造工藝設(shè)計(jì)以減少用電。 6.8 DRAM以單個(gè)MOS管為基本存儲(chǔ)單元,以極間電容充放電表示兩種邏輯狀態(tài)。由于極間電容的容量很小,充電電荷自然泄漏會(huì)很快導(dǎo)致信息丟失,所以要不斷對(duì)它進(jìn)行刷新操作、即讀取原內(nèi)容、放大再寫(xiě)入。 存儲(chǔ)系統(tǒng)的刷新控制電路提
64、供刷新行地址,將存儲(chǔ)DRAM芯片中的某一行選中刷新。實(shí)際上,刷新控制電路是將刷新行地址同時(shí)送達(dá)存儲(chǔ)系統(tǒng)中所有DRAM芯片,所有DRAM芯片都在同時(shí)進(jìn)行一行的刷新操作。 刷新控制電路設(shè)置每次行地址增量,并在一定時(shí)間間隔內(nèi)啟動(dòng)一次刷新操作,就能夠保證所有DRAM芯片的所有存儲(chǔ)單元得到及時(shí)刷新。 6.9 掩膜ROM:通過(guò)掩膜工藝、將要保存的信息直接制作在芯片當(dāng)中,以后再也不能更改。 OTP-ROM:該類芯片出廠時(shí)存儲(chǔ)的信息為全“1”,允許用戶進(jìn)行一次性編程,此后便不能更改。 EPROM:一般指可用紫外光擦除、并可重復(fù)編程的ROM。 EEPROM:也常表達(dá)為E2PROM,其擦除和編程(即擦
65、寫(xiě))通過(guò)加電的方法來(lái)進(jìn)行,可實(shí)現(xiàn)“在線編程”和“在應(yīng)用編程” Flash ROM:是一種新型的電擦除可編程ROM芯片,能夠很快擦除整個(gè)芯片內(nèi)容。 第7章 輸入輸出接口 7.1 簡(jiǎn)答題(1、2、3、8、10) ① 外部設(shè)備,在工作原理、驅(qū)動(dòng)方式、信息格式、以及工作速度等方面彼此差別很大,與處理器的工作方式也大相徑庭。所以,外設(shè)不能像存儲(chǔ)器芯片那樣直接與處理器相連,必須經(jīng)過(guò)一個(gè)中間電路。 ② 數(shù)據(jù)緩沖用于匹配快速的處理器與相對(duì)慢速的外設(shè)或兩個(gè)功能部件速度不匹配的數(shù)據(jù)交換。 ③ 處理器向接口芯片相應(yīng)端口寫(xiě)入特定的數(shù)據(jù),用于選擇I/O芯片的工作方式或控制外設(shè)工作,該數(shù)據(jù)稱命令字或控制字。
66、 ⑧ 在查詢程序中,當(dāng)查詢超過(guò)了規(guī)定的時(shí)間,設(shè)備仍未就緒時(shí),就引發(fā)超時(shí)錯(cuò)誤。 ⑩ 外部中斷是由處理器外部提出中斷請(qǐng)求引起的程序中斷。相對(duì)于處理器來(lái)說(shuō),外部中斷是隨機(jī)產(chǎn)生的,所以是真正意義上的中斷。 7.2 判斷題(4、5、6、7、8) ④ 錯(cuò) ⑤ 錯(cuò) ⑥ 錯(cuò) ⑦ 對(duì) ⑧ 錯(cuò) 7.3 填空題(2、3、6、7、9) ② I/O獨(dú)立,輸入輸出(I/O)指令,直接尋址,DX寄存器間接尋址 ③ I/O端口(接口,外設(shè)),處理器(主機(jī)),I/O讀 ⑥ 直接存儲(chǔ)器存取,DMA請(qǐng)求,總線請(qǐng)求,總線響應(yīng),高阻,DMAC(DMA控制器) ⑦ 除法錯(cuò),2 ⑨ 1KB,20H,4,F(xiàn)010H∶2300H 7.7 again: mov dx,8000h in al,dx cmp al,0feh ; D7~D0=11111110B ? jz next1 ; 單獨(dú)按下K0,轉(zhuǎn)移到next1 cmp al,0fdh ; D7~D0=11111101B ? jz next2 ; 單獨(dú)按下K1
- 溫馨提示:
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. 裝配圖網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 6.煤礦安全生產(chǎn)科普知識(shí)競(jìng)賽題含答案
- 2.煤礦爆破工技能鑒定試題含答案
- 3.爆破工培訓(xùn)考試試題含答案
- 2.煤礦安全監(jiān)察人員模擬考試題庫(kù)試卷含答案
- 3.金屬非金屬礦山安全管理人員(地下礦山)安全生產(chǎn)模擬考試題庫(kù)試卷含答案
- 4.煤礦特種作業(yè)人員井下電鉗工模擬考試題庫(kù)試卷含答案
- 1 煤礦安全生產(chǎn)及管理知識(shí)測(cè)試題庫(kù)及答案
- 2 各種煤礦安全考試試題含答案
- 1 煤礦安全檢查考試題
- 1 井下放炮員練習(xí)題含答案
- 2煤礦安全監(jiān)測(cè)工種技術(shù)比武題庫(kù)含解析
- 1 礦山應(yīng)急救援安全知識(shí)競(jìng)賽試題
- 1 礦井泵工考試練習(xí)題含答案
- 2煤礦爆破工考試復(fù)習(xí)題含答案
- 1 各種煤礦安全考試試題含答案