版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
-.z.微機(jī)原理及應(yīng)用試題庫(kù)第1章微型計(jì)算機(jī)系統(tǒng)21.1選擇題21.2判斷題31.3填空題31.4簡(jiǎn)答題4第2章處理器構(gòu)造52.1選擇題52.2名詞解釋題62.3填空題72.4簡(jiǎn)答題7第3章數(shù)據(jù)處理9第4章指令系統(tǒng)12第5章匯編語(yǔ)言程序設(shè)計(jì)14第6章微機(jī)總線23第7章存儲(chǔ)系統(tǒng)26第8章無(wú)條件與查詢傳送方式31第9章中斷與DMA傳送方式35第10章常用接口技術(shù)39第1章微型計(jì)算機(jī)系統(tǒng)1.1選擇題1.計(jì)算機(jī)的開展階段通常是按計(jì)算機(jī)所采用的〔〕來(lái)劃分的。 A.內(nèi)存容量B.電子器件C.程序設(shè)計(jì)D.操作系統(tǒng)2.一個(gè)完整的計(jì)算機(jī)系統(tǒng)通常應(yīng)包括〔〕。A、系統(tǒng)軟件和應(yīng)用軟件B、計(jì)算機(jī)及其外部設(shè)備C、硬件系統(tǒng)和軟件系統(tǒng)D、系統(tǒng)硬件和系統(tǒng)軟件3. PC機(jī)硬件系統(tǒng)從邏輯上看主要由CPU、內(nèi)存儲(chǔ)器、外存儲(chǔ)器、輸入設(shè)備、輸出設(shè)備以及〔〕組成。 A.運(yùn)算器B.鍵盤C.顯示器D.總線4.以下表達(dá)正確的選項(xiàng)是〔〕。 A.微機(jī)的字長(zhǎng)可以是8、16、24、32位B.微機(jī)的字長(zhǎng)可以是8、16、32、64位 C.微機(jī)的字長(zhǎng)可以是8、16、24、32KD.字長(zhǎng)是指計(jì)算機(jī)處理數(shù)據(jù)的精度5.BIOS是"根本輸入輸出系統(tǒng)〞,在現(xiàn)代的微機(jī)系統(tǒng)中,BIOS中代碼〔〕。 A.是不能升級(jí)的B.是可以升級(jí)的 C.更換BIOS芯片后才可以升級(jí)D.以上說(shuō)法都不正確6.以下有關(guān)CPU的說(shuō)法不正確的選項(xiàng)是〔〕。 A.CPU也稱作運(yùn)算控制單元B.CPU也稱作微處理器 C.CPU是微型機(jī)的核心部件。D.CPU也稱作運(yùn)算處理單元7.?諾依曼計(jì)算機(jī)的根本思想主要是指〔〕。A.二進(jìn)制編碼和存儲(chǔ)程序控制B.二進(jìn)制數(shù)和存儲(chǔ)器 C.CPU和存儲(chǔ)器D.存儲(chǔ)器和輸入輸出設(shè)備8.?諾依曼計(jì)算機(jī)的硬件由〔〕大根本部件組成。 A.3B.4C.5D.69.?諾依曼計(jì)算機(jī)的硬件由〔〕等大根本部件組成。A.運(yùn)算器、控制器、存儲(chǔ)器和輸入輸出設(shè)備B.存放器、運(yùn)算器、控制器、存儲(chǔ)器 C.存放器、CPU和存儲(chǔ)器D.存儲(chǔ)器和輸入輸出設(shè)備10.在現(xiàn)代的微機(jī)系統(tǒng)中,描述CPU主頻常用的單位是〔〕。 A.HzB.KHzC.MHzD.GHz11.在現(xiàn)代的微機(jī)系統(tǒng)中,描述內(nèi)存容量常用的單位是〔〕。A.BB.KBC.MBD.GB12.微型計(jì)算機(jī)和各個(gè)外部設(shè)備之間用〔〕連接起來(lái),再配上軟件,就構(gòu)成了微機(jī)系統(tǒng)。A.系統(tǒng)總線B.通信總線 C.?dāng)?shù)據(jù)總線D.片內(nèi)總線13.所謂微機(jī)的字長(zhǎng)是指〔〕。 A.CPU內(nèi)部數(shù)據(jù)總線的位數(shù)。B.CPU外部數(shù)據(jù)總線的位數(shù)。 C.CPU地址總線的位數(shù)。D.CPU中運(yùn)算器一次能處理二進(jìn)制數(shù)的最大位數(shù)。14.()是以CPU為核心,加上存儲(chǔ)器,I/O接口和系統(tǒng)總線構(gòu)成的. A.微處理器B.微型計(jì)算機(jī)C.微型計(jì)算機(jī)系統(tǒng)D.計(jì)算機(jī).15.微型計(jì)算機(jī)是以超大規(guī)模集成電路為主要部件,以集成了控制器和〔〕的微處理器為核心,所構(gòu)造出的計(jì)算機(jī) A.存貯器B.存放器C.運(yùn)算器D.計(jì)數(shù)器16.存儲(chǔ)器是計(jì)算機(jī)系統(tǒng)的記憶設(shè)備,它用來(lái)〔〕 A.存放數(shù)據(jù)B.存放程序C.存放數(shù)據(jù)和程序D.存放微程序17.通常所說(shuō)的32位計(jì)算機(jī)是指()。A.CPU字長(zhǎng)為32位B.通用存放器數(shù)目為32個(gè) C.可處理的數(shù)據(jù)長(zhǎng)度為32位D.地址總線的寬度為32位1.2判斷題1.軟件與硬件的等價(jià)性原理說(shuō)明軟硬件在功能、性能和本錢等方面是等價(jià)的。F2.IA-64構(gòu)造是IA-32構(gòu)造的64位擴(kuò)展,也就是Intel64構(gòu)造。F3.8086的數(shù)據(jù)總線為16位,也就是說(shuō)8086的數(shù)據(jù)總線的個(gè)數(shù)、或說(shuō)條數(shù)、位數(shù)是16。F4.微機(jī)主存只要使用RAM芯片就可以了。F5.處理器并不直接連接外設(shè),而是通過I/O接口電路與外設(shè)連接。T6.處理器是微機(jī)的控制中心,內(nèi)部只包括5大功能部件的控制器。F7.Windows的模擬DOS環(huán)境與控制臺(tái)環(huán)境是一樣的。F8.16位IBMPC/AT機(jī)采用ISA系統(tǒng)總線。T9.IA-32處理器吸取了RISC技術(shù)特長(zhǎng)。RISC是指復(fù)雜指令集計(jì)算機(jī)。F精簡(jiǎn)指令集計(jì)算機(jī)10.處理器進(jìn)展讀操作,就是把數(shù)據(jù)從處理器內(nèi)部讀出傳送給主存或外設(shè)。F11.IA-32處理器上不能運(yùn)行Linu*。F12.IA-32處理器地址總線是雙向的。T13.BIOS是"根本輸入輸出系統(tǒng)〞,在現(xiàn)代的微機(jī)系統(tǒng)中,BIOS是不能升級(jí)的。F14.匯編語(yǔ)言就是機(jī)器語(yǔ)言的符號(hào)化。F15.匯編語(yǔ)言程序就是匯編程序。F1.3填空題1..CPU是英文Centralprocessingunit的縮寫,中文譯為中央處理單元。2.Intel8086支持1MB容量主存空間,80486支持4GB容量主存空間。3..二進(jìn)制16位共有216個(gè)編碼組合,如果一位對(duì)應(yīng)處理器一個(gè)地址信號(hào),16位地址信號(hào)共能尋址64KB容量主存空間。4.DOS主要支持兩種可執(zhí)行文件,它們的擴(kuò)展名分別是E*E和。5.關(guān)于總線的英文縮寫ISA原文是industrystandardarchitecture,PCI原文是peripheralponentinterconnection。6.Windows的文件夾對(duì)應(yīng)的專業(yè)術(shù)語(yǔ)是目錄,英文是directory。7.Pentium系列處理器的多媒體指令有MM*,SSE,SSE2和SSE3類指令。8.Pentium處理器采用64位數(shù)據(jù)總線,32位地址總線與主存相連。9.最初由IBM公司采用Intel8088處理器和DOS操作系統(tǒng)推出PC機(jī)。10.當(dāng)前32位PC機(jī)主要采用PCI總線連接I/O接口電路卡,鍵盤、鼠標(biāo)等則采用PS/2總線連接。11.描述CPU的主要技術(shù)參數(shù)有_字長(zhǎng)_,時(shí)鐘頻率,集成度等。12.系統(tǒng)總線一般可分為地址總線,數(shù)據(jù)總線和控制總線。13.在計(jì)算機(jī)系統(tǒng)的層次構(gòu)造中,匯編語(yǔ)言位于第4層,而高級(jí)語(yǔ)言位于第5層。14.在計(jì)算機(jī)系統(tǒng)的層次構(gòu)造中,操作系統(tǒng)位于第3層,而機(jī)器語(yǔ)言位于第2層。15.在計(jì)算機(jī)系統(tǒng)的層次構(gòu)造中,數(shù)字電路位于第0層,而用戶位于第6層。1.4簡(jiǎn)答題1.計(jì)算機(jī)字長(zhǎng)指的是什么?處理器單位時(shí)間處理二進(jìn)制數(shù)據(jù)的位數(shù)2.簡(jiǎn)述微型計(jì)算機(jī)系統(tǒng)的硬件組成及各局部作用。1微處理器:處理器及其支持的電路構(gòu)成了微機(jī)系統(tǒng)的控制中心,對(duì)系統(tǒng)的各個(gè)部件進(jìn)展統(tǒng)一的協(xié)調(diào)和控制2存儲(chǔ)器:存放程序和數(shù)據(jù)3I/O設(shè)備和I/O接口:實(shí)現(xiàn)用戶和微機(jī)的交互4系統(tǒng)總線:多部件相互連接、傳遞信息的公共通道3.ROM-BIOS是什么?根本輸入輸出系統(tǒng),操作系統(tǒng)通過對(duì)BIOS的調(diào)用驅(qū)動(dòng)各硬件設(shè)備,用戶也可以在應(yīng)用程序中調(diào)用BIOS中的許多功能。4.什么是通用微處理器、單片機(jī)?通用為處理器:適合較廣的應(yīng)用領(lǐng)域的微處理器,如裝在PC機(jī)、筆記本電腦等的微處理器單片機(jī):通常用于控制領(lǐng)域的微處理器芯片,期內(nèi)部除CPU外還集成了計(jì)算機(jī)的其他一些主要部件,只需配上少量的外部電路和設(shè)備,就可以構(gòu)成具體的應(yīng)用系統(tǒng)。5.什么是DSP芯片、嵌入式系統(tǒng)?DSP:數(shù)字信號(hào)處理器,更適合于處理高速的數(shù)字信號(hào),內(nèi)部集成有高速乘法器,可進(jìn)展快速乘法加法運(yùn)算。嵌入式系統(tǒng):利用微處理器,數(shù)字信號(hào)處理器或通用微處理器,結(jié)合具體應(yīng)用構(gòu)成的控制系統(tǒng)。6.?諾依曼計(jì)算機(jī)的根本設(shè)計(jì)思想是什么?采用二進(jìn)制表達(dá)數(shù)據(jù)和指令,將數(shù)據(jù)和指令事先保存在存儲(chǔ)器中;按順序執(zhí)行程序來(lái)控制計(jì)算機(jī)工作7.計(jì)算機(jī)系統(tǒng)通常劃分為哪幾個(gè)層次?普通計(jì)算機(jī)用戶和軟件開發(fā)人員對(duì)計(jì)算機(jī)系統(tǒng)的認(rèn)識(shí)一樣嗎?最上層是用戶層;第五層是高級(jí)語(yǔ)言層;第四層是匯編語(yǔ)言層;第三層是操作系統(tǒng)層;第二層是機(jī)器語(yǔ)言層;第一層是控制層;第零層是數(shù)字電路層。不一樣,普通計(jì)算機(jī)用戶看到的計(jì)算機(jī)屬于用戶層,而軟件人員看到的屬于高級(jí)語(yǔ)言層或是匯編語(yǔ)言層。8.什么是系列機(jī)和兼容機(jī)?系列機(jī):同一廠家生產(chǎn)的具有一樣計(jì)算機(jī)構(gòu)造,但具有不同組成和實(shí)現(xiàn)的一系列不同檔次不同型號(hào)的機(jī)器兼容機(jī):不同廠家生產(chǎn)的具有一樣計(jì)算機(jī)構(gòu)造的計(jì)算機(jī)。第2章處理器構(gòu)造2.1選擇題1.一條計(jì)算機(jī)指令中規(guī)定其執(zhí)行動(dòng)作的局部稱為〔〕。 A.源地址碼B.操作碼C.目標(biāo)地址碼D.數(shù)據(jù)碼2.標(biāo)志存放器中的溢出標(biāo)志OF=1時(shí)表示的含義,以下說(shuō)法中正確的選項(xiàng)是。A.表示運(yùn)算結(jié)果溢出B.表示最高位有進(jìn)位C.兩個(gè)符號(hào)位一樣的操作數(shù)的運(yùn)算結(jié)果的符號(hào)位與參與運(yùn)算的操作數(shù)符號(hào)位相反D.以上說(shuō)法都不對(duì)3.VAR是數(shù)據(jù)段中定義的字變量,指令MOVVAR[EB*][EDI],A*中目的操作數(shù)的尋址方式是〔〕。A.存放器相對(duì)尋址B.直接尋址 C.相對(duì)基址變址尋址D.間接尋址4.VAR是數(shù)據(jù)段中定義的字變量,指令MOVA*,VAR[EB*]中源的操作數(shù)的尋址方式是〔〕。A.存放器相對(duì)尋址B.直接尋址 C.相對(duì)基址變址尋址D.間接尋址5.VAR是數(shù)據(jù)段中定義的字變量,指令MOVA*,VAR中源的操作數(shù)的尋址方式是〔〕。A.存放器相對(duì)尋址B.直接尋址C.相對(duì)基址變址尋址D.存放器間接尋址6.以下80*6CPU標(biāo)志存放器的標(biāo)志位中,不屬于狀態(tài)標(biāo)志位的是() A.OFB.IFC.AFD.PF7.以下80*6CPU標(biāo)志存放器的標(biāo)志位中,不屬于狀態(tài)標(biāo)志位的是() A.OFB.TFC.AFD.PF8.計(jì)算機(jī)能直接識(shí)別、理解和執(zhí)行的程序是()。A匯編語(yǔ)言程序B.機(jī)器語(yǔ)言程序C.高級(jí)語(yǔ)言程序D.?dāng)?shù)據(jù)庫(kù)語(yǔ)言程序9.存放器()不能被分割為高字節(jié)和低字節(jié)。 A.A*B.D*C.B*D.CS10.VAR是數(shù)據(jù)段中定義的字變量,指令MOVEB*,OFFSETVAR源操作數(shù)的尋址方式是〔〕。 A.直接尋址B.存放器間接尋址C.立即數(shù)尋址D.存貯器尋址11.當(dāng)使用EBP存放器作基址尋址時(shí),默認(rèn)在()段內(nèi)尋址。 A.代碼B.堆棧C.數(shù)據(jù)D.附加12.當(dāng)使用EDI存放器作基址尋址時(shí),默認(rèn)在()段內(nèi)尋址。 A.代碼B.堆棧C.數(shù)據(jù)D.附加13.運(yùn)算器由很多部件組成,其核心局部是〔〕。 A.數(shù)據(jù)總線B.算術(shù)邏輯單元C.累加器D.多路開關(guān)14.IA-32處理器在保護(hù)模式下可以直接最大物理地址空間是〔〕。 A.1MBB.64KBC.4GBD.4TB15.IA-32處理器在復(fù)位后自動(dòng)進(jìn)入〔〕方式。 A.保護(hù)B.實(shí)地址C.系統(tǒng)管理D.虛擬80862.2名詞解釋題1.ALU:ArithmeticLogicUnit算術(shù)邏輯單元,是計(jì)算機(jī)的運(yùn)算器,負(fù)責(zé)處理器所能進(jìn)展的各種運(yùn)算,主要是算術(shù)運(yùn)算和邏輯運(yùn)算。2.Offsetaddress偏移地址以段基地址為起點(diǎn),段內(nèi)位置可以用距離該起點(diǎn)的位移量表示。3.Addressingmode尋址方式對(duì)理解處理器工作原理和指令功能,以及進(jìn)展匯編語(yǔ)言程序設(shè)計(jì)都至關(guān)重要4.BusInterfaceUnitBIU總線接口單元負(fù)責(zé)處理器對(duì)存儲(chǔ)器和外設(shè)進(jìn)展5.CodePrefetchUnit指令預(yù)取單元,利用總線的空閑時(shí)間通過總線接口單元按順序與取指令,放在指令預(yù)取隊(duì)列中。6.InstructionDecodeUnit指令譯碼單元,從指令預(yù)取隊(duì)列中取來(lái)指令,譯碼成微指令代碼,經(jīng)譯碼后的指令存放在指令隊(duì)列中。7.Protectedmode保護(hù)方式,IA-32處理器在保護(hù)方式下能發(fā)揮其全部功能,充分利用其強(qiáng)大的段頁(yè)式存儲(chǔ)管理以及特權(quán)與保護(hù)能力8.Real-addressmode實(shí)地址方式通電復(fù)位后IA-32櫥余實(shí)地址方式,實(shí)現(xiàn)了與8086一樣的程序設(shè)計(jì)環(huán)境,但有所擴(kuò)展。9.Systemmanagementmode系統(tǒng)管理方式,為操作系統(tǒng)和核心程序提供節(jié)能管理和系統(tǒng)平安管理機(jī)制。10.Virtual-8086mode虛擬8086方式并不是處理器的一種工作方式,只是提供了一種在保護(hù)方式下類似于實(shí)地址方式的運(yùn)行環(huán)境。11.Generalpurposeregisters通用存放器一般指處理器最長(zhǎng)使用的證書通用存放器,可用于保存整數(shù)數(shù)據(jù)、地址等。12.FlatMemoryModel平展存儲(chǔ)模式,平展存儲(chǔ)模式下,對(duì)程序來(lái)說(shuō)存儲(chǔ)器是一個(gè)連續(xù)的地址空間13.IndirectAddressing間接尋址,有效地址存放在存放器中,利用存放器間接尋址,可以方便的對(duì)數(shù)組的元素或字符串的字符進(jìn)展操作。14.Accumulator累加器,是專門存放算術(shù)或邏輯運(yùn)算的一個(gè)操作數(shù)和運(yùn)算結(jié)果的存放器15.Instructionpointer指令指針,用于記錄將要執(zhí)行指令的主存地址,標(biāo)志存放器用于保存指令執(zhí)行的輔助信息。等同于PC的功能。三.判斷1.程序計(jì)數(shù)器PC或指令指針EIP存放器屬于通用存放器。F2.處理器的指令譯碼是將指令代碼翻譯成它代表的功能的過程,與數(shù)字電路的譯碼器是不同的概念。T3.EA*也被稱為累加器,因?yàn)樗褂米铑l繁。T4.處理器的傳送指令MOV屬于匯編語(yǔ)言的執(zhí)行性語(yǔ)句。T5.匯編語(yǔ)言的語(yǔ)句由明顯的4局部組成,不需要分隔符區(qū)別。F6.80減90〔80-90〕需要借位,所以執(zhí)行完畢后,進(jìn)位標(biāo)志CF=1。T7.MASM匯編語(yǔ)言的注釋用分號(hào)開場(chǎng),但不能用中文分號(hào)。T8.IA-32處理器在實(shí)地址方式下,不能使用32位存放器。F9.存儲(chǔ)器尋址方式的操作數(shù)當(dāng)然在主存了。T10.保護(hù)方式下,段基地址加偏移地址就是線性地址或物理地址。T11.IA-32處理器中的8個(gè)32位通用12.存放器變量的存取速度遠(yuǎn)高于內(nèi)存變量。T13.指令中的目的操作數(shù)可以采用立即尋址方式。F14.指令中的源操作數(shù)與目的操作數(shù)的尋址方式不能同為內(nèi)存尋址方式。T15.不能用EB*作為基址指針堆棧段中的數(shù)據(jù)。F2.3填空題1.存放器ED*是32位的,其中低16位的名稱是D*,還可以分成兩個(gè)8位的通用存放器,其中D8~D15局部可以用名稱DH表示。2.IA-32處理器的段存放器是16位的,指令指針EIP是32位的。3.邏輯地址由段基地址和偏移地址兩局部組成。4.進(jìn)展8位二進(jìn)制數(shù)加法:10111010+01101100,8位結(jié)果是[1]00100110,標(biāo)志CF=1。5.在實(shí)地址工作方式下,邏輯地址"7380H∶400H〞表示的物理地址是73C00H,并且該段起始于73800物理地址。6.IA-32處理器有8個(gè)32位通用存放器,其中EA*,EB*,EC*和ED*,可以分成16位和8位操作。7.IA-32處理器復(fù)位后,首先進(jìn)入是實(shí)地址工作方式。該工作方式分段最大不超過64KB。8.MASM要求匯編語(yǔ)言源程序文件的擴(kuò)展名是.ASM,匯編產(chǎn)生擴(kuò)展名為OBJ的文件被稱為目標(biāo)模塊文件。9.除外設(shè)數(shù)據(jù)外的數(shù)據(jù)尋址方式有3類,分別被稱為立即數(shù)尋址、存放器尋址和存儲(chǔ)器尋址。10.用EB*做基地址指針,默認(rèn)采用DS段存放器指向的數(shù)據(jù)段;如果采用EBP或ESP作為基地址指針,則默認(rèn)使用SS段存放器指向堆棧段。11.代碼段中下一條要執(zhí)行的指令由EIP存放器和__ESP______存放器指示。12.IA-32處理器有8個(gè)32位通用存放器,其中ESI,EDI,EBP和ESP,不可以分解成16位和8位操作。13.IA-32處理器在保護(hù)模式MASM采用平展或段式存儲(chǔ)模型,而在實(shí)地址模式下則采用實(shí)地址存儲(chǔ)模型。14.除I/O指令外,具有雙操作數(shù)的指令中,目的操作數(shù)只能采用存放器尋址方式或存儲(chǔ)器尋址方式。15.計(jì)算機(jī)存儲(chǔ)信息的最小單位是byte,1個(gè)字節(jié)等于8個(gè)二進(jìn)制位。2.4簡(jiǎn)答題1.舉例說(shuō)明CF和OF標(biāo)志的差異。進(jìn)位標(biāo)志CF表示無(wú)符號(hào)數(shù)運(yùn)算結(jié)果是否超出范圍,超出范圍后加上進(jìn)位或借位,運(yùn)算結(jié)果仍然正確;溢出標(biāo)志OF表示有符號(hào)數(shù)運(yùn)算結(jié)果是否超出范圍,如果超出范圍,運(yùn)算結(jié)果已經(jīng)不正確。2.IA-32處理器有哪三類根本段,各是什么用途?代碼段:存放程序的指令代碼。程序的指令代碼必須安排在代碼段,否則將無(wú)法正常執(zhí)行。數(shù)據(jù)段:存放當(dāng)前運(yùn)行程序所用的數(shù)據(jù)。程序中的數(shù)據(jù)默認(rèn)是存放在數(shù)據(jù)段,也可以存放在其他邏輯段中。堆棧段:主存中堆棧所在的區(qū)域。程序使用的堆棧一定在堆棧段。3.什么是實(shí)地址方式、保護(hù)方式和虛擬8086方式?它們分別使用什么存儲(chǔ)模型?實(shí)地址方式:與8086具有一樣的根本構(gòu)造,只能尋址1MB物理存儲(chǔ)器空間,邏輯段最大不超過64KB;但可以使用32位存放器、32位操作數(shù)和32位尋址方式;相當(dāng)于可以進(jìn)展32位處理的快速8086。實(shí)地址工作方式只能支持實(shí)地址存儲(chǔ)模型。保護(hù)方式:具有強(qiáng)大的段頁(yè)式存儲(chǔ)管理和特權(quán)與保護(hù)能力,使用全部32條地址總線,可尋址4GB物理存儲(chǔ)器。保護(hù)方式通過描述符實(shí)現(xiàn)分段存儲(chǔ)管理,每個(gè)邏輯段可達(dá)4GB。處理器工作在保護(hù)方式時(shí),可以使用平展或段式存儲(chǔ)模型。虛擬8086方式:在保護(hù)方式下運(yùn)行的類似實(shí)方式的運(yùn)行環(huán)境,只能在1MB存儲(chǔ)空間下使用"16位段〞。處理器工作在虛擬8086方式時(shí),只能使用實(shí)地址存儲(chǔ)模型。4.什么是平展存儲(chǔ)模型、段式存儲(chǔ)模型和實(shí)地址存儲(chǔ)模型?平展存儲(chǔ)模型下,對(duì)程序來(lái)說(shuō)存儲(chǔ)器是一個(gè)連續(xù)的地址空間,稱為線性地址空間。程序需要的代碼、數(shù)據(jù)和堆棧都包含在這個(gè)地址空間中。段式存儲(chǔ)模型下,對(duì)程序來(lái)說(shuō)存儲(chǔ)器由一組獨(dú)立的地址空間組成,獨(dú)立的地址空間稱為段。通常,代碼、數(shù)據(jù)和堆棧位于分開的段中。實(shí)地址存儲(chǔ)模型是8086處理器的存儲(chǔ)模型。它是段式存儲(chǔ)模型的特例,其線性地址空間最大為1MB容量,由最大為64KB的多個(gè)段組成。5.匯編語(yǔ)句有哪兩種,每個(gè)語(yǔ)句由哪4個(gè)局部組成?匯編語(yǔ)句有兩種:執(zhí)行性語(yǔ)句〔處理器指令〕、說(shuō)明性語(yǔ)句〔偽指令〕。每個(gè)語(yǔ)句有:標(biāo)號(hào)、指令助記符、操作數(shù)或參數(shù)、注釋4個(gè)局部組成。6.給出IA-32處理器的32位尋址方式的組成公式,并說(shuō)明各局部作用。32位存儲(chǔ)器尋址方式的組成公式32位有效地址=基址存放器+〔變址存放器×比例〕+位移量其中的4個(gè)組成局部是:·基址存放器任何8個(gè)32位通用存放器之一;·變址存放器除ESP之外的任何32位通用存放器之一;·比例可以是1,2,4或8〔因?yàn)椴僮鲾?shù)的長(zhǎng)度可以是1,2,4或8字節(jié)〕;·位移量可以是8或32位有符號(hào)值。7.Pentium的片上Cache采用統(tǒng)一構(gòu)造還是別離構(gòu)造?Pentium芯片中有兩個(gè)8KB容量的Cache,一個(gè)用于高速緩沖指令的指令Cache,另一個(gè)用于高速緩沖數(shù)據(jù)的數(shù)據(jù)Cache,即別離的Cache構(gòu)造。8.為什么將查找操作數(shù)的方法稱為數(shù)據(jù)尋"址〞方式?主存和外設(shè)在匯編語(yǔ)言中被抽象為存儲(chǔ)器的地址或I/O地址,而存放器雖然以名稱表達(dá),但機(jī)器代碼中同樣用地址編碼區(qū)別存放器,所以指令的操作數(shù)需要通過地址指示。這樣,通過地址才能查到數(shù)據(jù)本身,這就是數(shù)據(jù)尋址方式。第3章數(shù)據(jù)處理一.選擇1.BUFDWORD10hDUP(3DUP(2,5),3,4,5)語(yǔ)句為變量BUF分配的內(nèi)存空間的字節(jié)數(shù)是〔〕。 A.50hB.90hC.240hD.120h2.BUFDW10HDUP〔3DUP〔2,?〕,1,2DUP〔?〕,100〕為變量BUF分配的內(nèi)存空間的字節(jié)數(shù)是〔〕。 A.160B.22C.80D.3203.類型操作符PTR用于〔〕。 A.定義內(nèi)存變量的類型B.重新指定內(nèi)存變量的類型 C.定義存放器變量的類型D.重新指定存放器變量的類型4.用來(lái)定義雙字變量的偽指令是〔〕。A.DBB.DWC.DDD.DQ5.用來(lái)定義字變量的偽指令是〔〕。A.DBB.DWC.DDD.DQ6.用來(lái)定義字節(jié)變量的偽指令是〔?!矨.BYTEB.WORD C.DWORDD.QWORD7.執(zhí)行AND指令后,OF和CF標(biāo)志位的值是〔〕。A.OF=CF=0B.OF=0,CF=1 C.OF=1,CF=0D.OF=1,CF=18.執(zhí)行INC指令除對(duì)于SF、ZF有影響外,還要影響的標(biāo)志位是〔〕。A.AF,PF,CFB.OF,AF,CF C.OF,PF,CFD.OF,AF,PF9.執(zhí)行DEC指令除對(duì)于SF、ZF有影響外,還要影響的標(biāo)志位是〔〕。 A.AF,PF,CFB.OF,AF,CF C.OF,PF,CFD.OF,AF,PF10.執(zhí)行指令*OREA*,EA*后則() A.AL=1,ZF=1B.AL=0,ZF=0 C.AL=1,ZF=0D.AL=0,ZF=111.以下指令執(zhí)行后,不影響標(biāo)志位的指令是〔〕。。A.ADDEA*,1B.DECD* C.*ORC*,A*D.LEAED*,MSG12.能夠表示指令存放地址的是〔〕 A符號(hào)名B變量名C標(biāo)號(hào)D常量名13.8位二進(jìn)制無(wú)符號(hào)數(shù)所能表示的數(shù)值范圍是〔〕。A.0~255B.0~256 C.0~128D.0~12714.16位二進(jìn)制補(bǔ)碼所能表示的帶符號(hào)數(shù)的數(shù)值范圍是〔〕。 A.0~65535B.0~65536C.-32768~+32767D.-65536~+6653615.8位二進(jìn)制補(bǔ)碼所能表示的帶符號(hào)數(shù)的數(shù)值范圍是〔〕。 A.0~255B.0~256C.-128~+127D.-128~+128二.名詞解釋1.Two'splement二進(jìn)制補(bǔ)碼2.NestedProcedureCalls嵌套程序調(diào)用3.ConditionalJump條件轉(zhuǎn)移4.E*tendedASCII擴(kuò)大美國(guó)信息交換標(biāo)準(zhǔn)碼5.Integerconstants整數(shù)常量6.JumpsBasedonSignedparisons無(wú)符號(hào)數(shù)條件轉(zhuǎn)移比擬7.LittleEndianOrder小端方式8.IntrinsicDataTypes內(nèi)部數(shù)據(jù)類型三.判斷1.對(duì)一個(gè)正整數(shù),它的原碼、反碼和補(bǔ)碼都一樣,也都與無(wú)符號(hào)數(shù)的編碼一樣。T2.常用的BCD碼為8421BCD碼,其中的8表示D3位的權(quán)重。T3.IA-32處理器采用小端方式存儲(chǔ)多字節(jié)數(shù)據(jù)。T4.空操作NOP指令其實(shí)根本沒有指令。F5.堆棧的操作原則是"先進(jìn)后出〞,所以堆棧段的數(shù)據(jù)除PUSH和POP指令外,不允許其他方法讀寫。F6.雖然ADD指令和SUB指令執(zhí)行后會(huì)影響標(biāo)志狀態(tài),但執(zhí)行前的標(biāo)志并不影響它們的執(zhí)行果。T7.指令"INCEC*〞和"ADDEC*,1〞的實(shí)現(xiàn)功能完全一樣,可以互相替換。F8.無(wú)符號(hào)數(shù)在前面加零擴(kuò)展,數(shù)值不變;有符號(hào)數(shù)前面進(jìn)展符號(hào)擴(kuò)展,位數(shù)加長(zhǎng)一位、數(shù)值增加一倍。F9.邏輯運(yùn)算沒有進(jìn)位或溢出問題,此時(shí)CF和OF沒有作用,所以邏輯運(yùn)算指令如AND、OR等將CF和OF設(shè)置為0。T10.CMP指令是目的操作數(shù)減去源操作數(shù),CMPS指令是源操作數(shù)減去目的操作數(shù)T11.指令"DECEC*〞和"SUBEC*,1〞的實(shí)現(xiàn)功能完全一樣,可以互相替換。F12.指令"TEST〞和"AND〞的實(shí)現(xiàn)功能完全一樣,可以互相替換。F13.指令"CMPEA*,EC*〞和"SUBEA*,EC*〞的實(shí)現(xiàn)功能完全一樣,可以互相替換。F14.CPU在實(shí)施加減運(yùn)算時(shí)不區(qū)分有符號(hào)數(shù)和無(wú)符號(hào)數(shù)。T15.VAR是數(shù)據(jù)段中定義的字變量,指令MOVAL,VAR是正確的。T四.填空1.〔1〕定義字節(jié)變量的偽指令助記符是_BYTE,獲取變量名所具有的偏移地址的操作符是_OFFSET。2.〔2〕計(jì)算機(jī)中有一個(gè)"01100001〞編碼。如果把它認(rèn)為是無(wú)符號(hào)數(shù),它是10進(jìn)制數(shù)__97;如果它是*個(gè)ASCII碼,則代表字符__a。3.C語(yǔ)言用"\n〞表示讓光標(biāo)回到下一行首位,在匯編語(yǔ)言中需要輸出兩個(gè)控制字符:一個(gè)是回車,其ASCII碼是_0DH,它將光標(biāo)移動(dòng)到當(dāng)前所在行的首位;另一個(gè)是換行,其ASCII碼是_0AH,它將光標(biāo)移到下一行。4.數(shù)據(jù)段有語(yǔ)句"H8843DWORD99008843H〞,代碼段指令"MOVC*,WORDPTRH8843〞執(zhí)行后,C*=__8843H;代碼段指令"MOVCL,BYTEPTRH8843〞執(zhí)行后,C*=_____________。5.數(shù)據(jù)段有語(yǔ)句"*YZDWORD?〞,則*YZ的類型是_DWORD,用"TYPE*YZ〞會(huì)得到數(shù)值為__4。6.數(shù)據(jù)段有語(yǔ)句"ABCBYTE3DUP(1,2,3)〞,代碼段指令"MOVCL,ABC+3〞執(zhí)行后,CL=_4;"MOVCL,ABC+8〞執(zhí)行后,CL=_9。7.數(shù)據(jù)段有語(yǔ)句"ABCBYTE3DUP(1,2,3)〞,代碼段指令"MOVA*,WORDPTRABC〞執(zhí)行后,A*=_;"MOVEA*,DWORDPTRABC〞執(zhí)行后,EA*=_________。8.順序執(zhí)行指令"*OREA*,EA*〞和"SUBEA*,EA*〞后,EA*=_0,OF=_0。9.順序執(zhí)行指令"*OREA*,EA*〞和"DECEA*〞后,EA*=_0,CF=_0。10.欲將ED*內(nèi)的無(wú)符號(hào)數(shù)除以16,使用指令"SHRED*,_4〞;欲將EA*內(nèi)的有符號(hào)數(shù)除以16,使用指令"____________________〞。11.:*補(bǔ)=10101100B,Y補(bǔ)=11000110B,則:[*+Y]補(bǔ)=[1]01110010, [*-Y]補(bǔ)=_01100110。12.設(shè)字長(zhǎng)為八位,有*=-1,y=124,則有:[*+y]補(bǔ)=__123,[*-y]補(bǔ)=__-125。13.:存放器A*=7836H,指令:ADDA*,9A5EH執(zhí)行后,A*=__1295H CF=_1。14.:存放器A*=7836H,指令:ADDA*,9A5EH執(zhí)行后,OF=_0,SF=_1_。15."0"~"9"的ASCII碼值是__30H~39H,"A"~"Z"的ASCII碼值是__41H~5AH。.五.簡(jiǎn)答題1.使用二進(jìn)制8位表達(dá)無(wú)符號(hào)整數(shù),257有對(duì)應(yīng)的編碼嗎?沒有。使用二進(jìn)制8位表達(dá)無(wú)符號(hào)整數(shù),257沒有對(duì)應(yīng)的編碼。2.字符"'F'〞和數(shù)值46H作為MOV指令的源操作數(shù)有區(qū)別嗎?字符"'F'〞的ASCII碼就是數(shù)值46H,所以沒有區(qū)別。3.為什么可以把指令"MOVA*,(34+67H)*3〞中的數(shù)值表達(dá)式看成是常量?匯編程序在匯編過程中對(duì)數(shù)值表達(dá)式計(jì)算,得到一個(gè)確定的數(shù)值,故稱數(shù)值表達(dá)式為常量。4.數(shù)值500,能夠作為字節(jié)變量的初值嗎?不能。數(shù)值500大于一個(gè)字節(jié)所能表達(dá)的數(shù)據(jù)量,所以不能為字節(jié)變量賦值。5.為什么說(shuō)"*CHGED*,C*〞是一條錯(cuò)誤的指令?源、目標(biāo)存放器位數(shù)不同,不能用該指令進(jìn)展數(shù)據(jù)交換。6.都是獲取偏移地址,為什么指令"LEAEB*,[ESI]〞正確,而指令"MOVEB*,OFFSET[ESI]〞就錯(cuò)誤?前者在指令執(zhí)行時(shí)獲得偏移地址,是正確的;但后者的OFFSET只能在匯編階段獲得偏移地址,但此時(shí)存放器內(nèi)容是不可知的,所以無(wú)法獲得偏移地址。7.INC,DEC,NEG和NOT都是單操作數(shù)指令,這個(gè)操作數(shù)應(yīng)該是源操作數(shù)還是目的操作數(shù)?INC,DEC,NEG和NOT指令的操作數(shù)既是源操作數(shù)也是目的操作數(shù)。8.大小寫字母轉(zhuǎn)換的規(guī)律是什么?給出轉(zhuǎn)換的公式。大小寫字母轉(zhuǎn)換利用它們的ASCII碼相差20H。第4章指令系統(tǒng)一.選擇1.11.計(jì)算機(jī)內(nèi)的"溢出〞是指其運(yùn)算的結(jié)果()。 A.無(wú)窮大或無(wú)窮小B.超出了內(nèi)存單元所能存儲(chǔ)的數(shù)值范圍 C.超出了存放器能存儲(chǔ)數(shù)值的范圍D.超出了該指令所指定的結(jié)果能存儲(chǔ)的數(shù)值范圍2.計(jì)算機(jī)內(nèi)的"溢出〞是指其運(yùn)算的結(jié)果()。 A.無(wú)窮大或無(wú)窮小B.超出了內(nèi)存單元所能存儲(chǔ)的數(shù)值范圍 C.超出了存放器能存儲(chǔ)數(shù)值的范圍D.超出了該指令所指定的結(jié)果能存儲(chǔ)的數(shù)值范圍3.16位二進(jìn)制無(wú)符號(hào)數(shù)的數(shù)值范圍是〔〕。A.0~65535B.0~65536 C.0~32767D.0~327684.最大的10位無(wú)符號(hào)二進(jìn)制整數(shù)轉(zhuǎn)換成十進(jìn)制數(shù)是。 A.51B.512C.1023D.10245.ADD指令不能影響標(biāo)志存放器的()位。 A.ZFB.SFC.CFD.TF6.INC指令不能影響標(biāo)志存放器的()位。 A.ZFB.SFC.CFD.DF7.DEC指令不能影響標(biāo)志存放器的()位。 A.ZFB.SFC.CFD.IF8.在執(zhí)行DIV或IDIV指令發(fā)生錯(cuò)誤時(shí)會(huì)產(chǎn)生〔〕中斷。 A.線路故障B.內(nèi)部C.外部D.單步9.在執(zhí)行ADD或SUB指令發(fā)生溢出錯(cuò)誤時(shí)〔〕。A.不產(chǎn)生任何中斷B.會(huì)產(chǎn)生內(nèi)部中斷 C.會(huì)產(chǎn)生外部中斷D.會(huì)產(chǎn)生單步中斷10.完成同指令*CHGA*,B*一樣功能的指令或指令序列是〔〕。 A.MOVA*,B*B.MOVB*,A* C.PUSHA*D.MOVC*,A* POPB*MOVA*,B*MOVB*,C*11.順序執(zhí)行PUSHEA*和POPEB*兩條指令,其功能等同于〔〕 A.MOVEA*,EB*B.MOVEB*,EA* C.*CHGEA*,EB*D.*CHGEB*,EA*12.目前在微機(jī)中最普遍采用的字符的編碼是〔〕。 A.BCD碼B.ASCII碼C.余三碼D.格雷碼13.*、Y的補(bǔ)碼分別為11101011B、00001010B,求*+Y的補(bǔ)碼等于()。 A.10100001BB.11011111B C.11110101BD.溢出14.計(jì)算機(jī)中()不能直接表示有符號(hào)數(shù)。 A.原碼B.補(bǔ)碼C.反碼D.BCD碼15.以下字母中,ASCII碼值最小的是()。A.KB.YC.aD.i16.當(dāng)執(zhí)行完以下指令序列后,標(biāo)志位CF和SF的值為()。 MOVAL,0C4H ADDAL,9DH A.0,0B.0,1C.1,0D.1,1二.名詞解釋1.Programflowcontrolinstructions程序流程控制指令2.OFFSETOperator:在匯編階段取得變量的偏移地址。3.LoopCounter循環(huán)計(jì)數(shù)器,一般為EC*4..PseudoCode:偽代碼,又稱虛擬代碼,是高層次描述算法的一種。5.SingleDimensionArray:一位數(shù)組6.ConditionalLoopInstructions:條件循環(huán)指令利,用條件轉(zhuǎn)移指令決定是否進(jìn)展循環(huán)。7.Arithmeticinstructions:算數(shù)指令8.JumpsBasedonUnsignedparisons:無(wú)條件轉(zhuǎn)移比擬三.判斷1.VAR是數(shù)據(jù)段中定義的字變量,指令MOVA*,VAR+2是正確的。T2.VAR1和VAR2是數(shù)據(jù)段中定義的字變量,指令MOVA*,VAR1-VAR2是正確的。T3.VAR1和VAR2是數(shù)據(jù)段中定義的字變量,指令MOVA*,VAR1+VAR2是正確的。F4.執(zhí)行乘法指令I(lǐng)MULsrc時(shí),運(yùn)算結(jié)果不會(huì)產(chǎn)生溢出。5.執(zhí)行乘法指令I(lǐng)MULREG,src時(shí),運(yùn)算結(jié)果不會(huì)產(chǎn)生溢出。6.定義符號(hào)常量時(shí),使用"=〞與"EQU〞沒有區(qū)別。F7.地址操作符OFFSET可以獲取任何尋址方式的內(nèi)存變量的有效地址。F8.指令"SHL〞與"SAL〞的功能是等價(jià)的。T9.指令"SHR〞與"SAR〞的功能是等價(jià)的。T10.指令"LOOPLable〞與"DECEC* JNZLable〞的功能是等價(jià)的。T11.32位機(jī)不能完成64位整數(shù)加法運(yùn)算。F12.只有補(bǔ)碼才能表示有符號(hào)數(shù)。F13.指令"LEA〞可以獲取任何尋址方式的內(nèi)存變量的有效地址。T14.指令"LEA〞可以實(shí)現(xiàn)求兩個(gè)存放器與一個(gè)立即數(shù)三個(gè)數(shù)之和的功能。T15.堆棧內(nèi)部中的數(shù)據(jù)是無(wú)法修改的。F四.填空1.順序執(zhí)行指令"*OREA*,EA*〞和"SUBEA*,1〞后,EA*=_0_,CF=_0_。2.數(shù)據(jù)段有語(yǔ)句"BUFDWORD10hDUP(3DUP(2,"),3,4,5)〞,則用"LENGTHOFBUF〞會(huì)得到數(shù)值為_576_,用"SIZEOFBUF〞會(huì)得到數(shù)值為_144_。3.AL=01100001B,執(zhí)行指令"ANDAL,5FH〞后,AL=_41H_;如果AL的內(nèi)容是*個(gè)ASCII碼,則代表字符_!_。4.AL=01000001B,執(zhí)行指令"ORAL,20H〞后,AL=_71H_;如果AL的內(nèi)容是*個(gè)ASCII碼,則代表字符_q_。5.設(shè)字長(zhǎng)為八位,-128補(bǔ)=_80_H,-1補(bǔ)=_ff_H。6.:存放器A*=7836H,指令:TESTA*,9A5EH執(zhí)行后,OF=_0_,SF=_0_。7.:存放器A*=7836H,指令:CMPA*,9A5EH執(zhí)行后,A*=_7836H_,OF=__。8.要測(cè)試A*的第五位是否為1,使用指令__;假設(shè)要將AL的第五位置為1,使用指令____?!舱f(shuō)明:最低位為第0位?!?.:存放器A*=9A5EH,指令:NEGA*執(zhí)行后,OF=_0_,SF=_0。10.:存放器EA*=65536,EB*=32768,指令:DIVEB*執(zhí)行后,EA*=2。則指令:DIVEB*執(zhí)行前ED*的值應(yīng)為_,指令:DIVEB*執(zhí)行后ED*=_______。11.:存放器AL=-1,指令:MOVS*B*,AL執(zhí)行后,B*=________H;指令:MOVZ*C*,AL執(zhí)行后,C*=________H。12.順序執(zhí)行指令序列"*OREA*,EA*,DECEA*,ADCEA*,0〞后,CF=___,ZF=____。13.順序執(zhí)行指令序列"*OREA*,EA*,SUBEA*,1,ADCEA*,0〞后,CF=___,ZF=____。14.:存放器AL=10,BL=-10,指令:MULBL執(zhí)行后,A*=________H;而假設(shè)將指令改為:IMULBL則執(zhí)行后A*=________H;15.假設(shè)要將A*的第五位和第九位置為0,使用指令____________________;假設(shè)要將A*的第五位和第九位置反,使用指令____________________?!舱f(shuō)明:最低位為第0位。〕五.簡(jiǎn)答題1.乘除法運(yùn)算針對(duì)無(wú)符號(hào)數(shù)和有符號(hào)數(shù),有兩種不同的指令。只有一種指令的加減法如何區(qū)別無(wú)符號(hào)數(shù)和有符號(hào)數(shù)運(yùn)算?加減法不區(qū)別無(wú)符號(hào)數(shù)和有符號(hào)數(shù),但根據(jù)運(yùn)算結(jié)果分別設(shè)置標(biāo)志存放器的CF和OF標(biāo)志,可利用CF和OF進(jìn)展區(qū)別。2.邏輯與運(yùn)算為什么也稱為邏輯乘?邏輯與運(yùn)算規(guī)則類似二進(jìn)制的乘法,所以稱其為邏輯乘。3.簡(jiǎn)述邏輯運(yùn)算指令怎么實(shí)現(xiàn)復(fù)位、置位和求反功能?4.在處理一維數(shù)組時(shí),通常可以采用哪些尋址方式?各自的特點(diǎn)是什么?5.通常在什么情況下需要使用MOVS*、MOVZ*指令?對(duì)無(wú)符號(hào)數(shù),在前面加零實(shí)現(xiàn)零位擴(kuò)展。對(duì)應(yīng)指令MOVZ*;對(duì)有符號(hào)數(shù)進(jìn)展符號(hào)擴(kuò)展,即用一個(gè)操作數(shù)的符號(hào)位〔最高位〕形成另一個(gè)操作數(shù),對(duì)應(yīng)指令MOVS*6.通常在什么情況下需要使用PTR類型操作符?舉例說(shuō)明。如在指令"MOVEA*,DWORDPTRARRAY〞,EA*是雙字,變量ARRAY被定義為字量,兩者類型不同,MOV指令不允許不同類型的數(shù)據(jù)傳送,利用PTR改變ARRAY的類型,將其傳送給EA*.7.ESP是通用存放器,是否可以隨意的修改ESP的值?不可以,堆棧段的范圍由堆棧執(zhí)政存放器ESP的初值確定,這個(gè)位置就是堆棧的底部〔不再變化〕,因此不能隨意改變ESP的值。8.大小寫字母轉(zhuǎn)換的規(guī)律是什么?給出轉(zhuǎn)換的公式。大小寫字母轉(zhuǎn)換利用它們的ASCII碼相差20H。SUBBL20H:實(shí)現(xiàn)小寫字母轉(zhuǎn)換為大寫;ADDBL20H:實(shí)現(xiàn)大寫字母轉(zhuǎn)換為小寫9.ESP是通用存放器,是否可以隨意的修改ESP的值?第5章匯編語(yǔ)言程序設(shè)計(jì)一.選擇1.循環(huán)指令LOOP終止循環(huán)的條件是〔〕。A.EC*=0B.EC*=0,且ZF=0 CEC*≠0,且ZF=0D.EC*≠0,或ZF=12.循環(huán)指令LOOPNZ終止循環(huán)的條件是〔〕。A.EC*=0,或ZF=1B.EC*=0,且ZF=0 C.EC*≠0,且ZF=0D.EC*≠0,或ZF=13.LOOP指令執(zhí)行時(shí),隱含計(jì)數(shù)器是〔〕。 A.ESPB.EB*C.EC*D.EDI4.當(dāng)A>B時(shí)轉(zhuǎn)移的條件轉(zhuǎn)移指令為〔A、B為無(wú)符號(hào)數(shù)〕〔〕。A.JAB.JAEC.JGD.JGE5.當(dāng)A>=B時(shí)轉(zhuǎn)移的條件轉(zhuǎn)移指令為〔A、B為有符號(hào)數(shù)〕〔〕。A.JAB.JAEC.JGD.JGE6.條件轉(zhuǎn)移指令JCLabel的測(cè)試條件是〔〕。 A.ZF=1B.SF=1C.OF=1D.CF=17.假設(shè)主程序通過堆棧向子程序傳遞了3個(gè)參數(shù),子程序返回主程序時(shí),在子程序中去除堆棧中3個(gè)參數(shù)正確的RET指令是〔〕。A.RET3*1B.RET3*2C.RET3*3D.RET3*48.主程序通過堆棧向子程序傳遞了3個(gè)參數(shù),子程序調(diào)用完畢后,在主程序中去除堆棧中3個(gè)參數(shù)正確的指令是〔〕。A.ADDESP,3*2B.ADDESP,3*4C.ADDEBP,3*2D.ADDEBP,3*49.條件轉(zhuǎn)移指令JZLabel的測(cè)試條件是〔〕。A.ZF=1B.SF=1C.OF=1D.CF=110.利用堆棧傳遞子程序參數(shù)的方法是固定的,假設(shè)主程序通過堆棧向子程序傳遞了3個(gè)參數(shù),則在子程序中,主程序中最后一個(gè)被壓入棧中的參數(shù)可以用〔〕的形式來(lái)。 A.[EBP-4]B.[EBP-8]C.[EBP+4]D.[EBP+8]11.通過堆棧傳遞參數(shù),在子程序中使用EBP間址取得參數(shù)的原因是〔〕。A.EBP沒有被占用B.EBP間址速度較快C.EBP間址默認(rèn)的段是堆棧段D.EBP是基址指針12.通過存放器傳遞參數(shù)比通過堆棧傳遞參數(shù)的優(yōu)點(diǎn)是〔〕。 A.能傳遞更多得參數(shù)B.存取效率高C.能確保正確調(diào)用D.沒有副作用13.利用堆棧傳遞子程序參數(shù)的方法是固定的,在子程序中,修改參數(shù)〔〕可以改變子程序的返回地址。 A.[EBP-4]B.[EBP-8]C.[EBP+4]D.[EBP+8]14.在用LOOPLabel指令構(gòu)成的循環(huán)中,假設(shè)EC*的初值為-10,則循環(huán)體將被執(zhí)行〔〕次。 A.10B.0C.100D.>10015.在用LOOPLabel指令構(gòu)成的循環(huán)中,假設(shè)EC*的初值為10,在LOOPLabel指令前有一條"SUBEC*,2〞指令,則循環(huán)體將被執(zhí)行〔〕次。 A.10B.5C.4D.>10000二.名詞解釋三.判斷1.指令指針或者還包括代碼段存放器值的改變將引起程序流程的改變。T2.JMP指令對(duì)應(yīng)高級(jí)語(yǔ)言的GOTO語(yǔ)句,所以不能使用。F3.因?yàn)闂l件轉(zhuǎn)移指令Jcc要利用標(biāo)志作為條件,所以也影響標(biāo)志。F4.JA和JG指令的條件都是"大于〞,所以是同一個(gè)指令的兩個(gè)助記符。F5.控制循環(huán)是否完畢只能在一次循環(huán)完畢之后進(jìn)展。F6.介紹LOOP指令時(shí),常說(shuō)它相當(dāng)于DECEC*和JNZ兩條指令。但考慮對(duì)狀態(tài)標(biāo)志的影響,它們有差異。LOOP指令不影響標(biāo)志,而DEC指令卻會(huì)影響除CF之外的其他狀態(tài)標(biāo)志。T7.CALL指令用在調(diào)用程序中,如果被調(diào)用程序中也有CALL指令,說(shuō)明出現(xiàn)了嵌套。T8.子程序需要保護(hù)存放器,包括保護(hù)傳遞入口參數(shù)和出口參數(shù)的通用存放器。F9.利用存放器在主子程序間傳遞參數(shù),其實(shí)質(zhì)就是利用全局變量來(lái)傳遞參數(shù)。F10.子程序采用堆棧傳遞參數(shù)時(shí),只能在主程序中修改ESP方可保持堆棧的平衡。F11.匯編語(yǔ)言中不允許遞歸調(diào)用子程序。F12.與高級(jí)語(yǔ)言中的自定義函數(shù)不同,匯編語(yǔ)言中的子程序不能將計(jì)算的結(jié)果返給主程序F13.匯編語(yǔ)言中,子程序嵌套調(diào)用就是遞歸調(diào)用。F14.在LOOP指令構(gòu)成的循環(huán)構(gòu)造中,允許修改EC*的值。T15.指令CALL或RET的執(zhí)行,不改變程序執(zhí)行的流程。T16.在軟件中只使用一次的功能編寫成子程序完全沒有必要。F17.在執(zhí)行CALL指令時(shí),硬件自動(dòng)將斷點(diǎn)地址壓入堆棧中。F18.在高級(jí)語(yǔ)言中,假設(shè)多重循環(huán)出現(xiàn)"穿插〞的錯(cuò)誤,編譯系統(tǒng)通常會(huì)給出提示來(lái)。假設(shè)匯編語(yǔ)言程序中也出現(xiàn)"穿插〞錯(cuò)誤時(shí),匯編程序也會(huì)給出提示來(lái)。T四.填空1.JMP指令根據(jù)目標(biāo)地址的尋址方式,可以分成三種類型:相對(duì)尋址、直接尋址和間接尋址。2.假設(shè)在平展存儲(chǔ)模型下,EB*=1256H,雙字變量TABLE的偏移地址是20A1H,線性地址32F7H處存放3280H,執(zhí)行指令"JMPEB*〞后EIP=1256H,執(zhí)行指令"JMPTABLE[EB*]〞后EIP=3280H。3."CMPEA*,3721H〞指令之后是JZ指令,發(fā)生轉(zhuǎn)移的條件是EA*=3721H,此時(shí)ZF=1。4.JMP指令根據(jù)目標(biāo)地址的尋址方式,可以分成三種類型:相對(duì)尋址、間接尋址和直接尋址,通常相對(duì)尋址方式使用的最多。5.循環(huán)構(gòu)造程序一般有三個(gè)局部組成,它們是循環(huán)初始,循環(huán)體和循環(huán)控制局部。6.條件轉(zhuǎn)移指令JELabel的測(cè)試標(biāo)志位是ZF,條件轉(zhuǎn)移指令JNOLabel的測(cè)試標(biāo)志位是_OF__。7..過程定義開場(chǎng)是"TESTPROC〞語(yǔ)句,則過程定義完畢的語(yǔ)句是TESTENDP。宏定義開場(chǎng)是"DISPMACRO〞語(yǔ)句,則宏定義完畢的語(yǔ)句是ENDM。8.利用堆棧傳遞子程序參數(shù)的方法是固定的,在子程序中通常是利用存放器EBP來(lái)?xiàng)V械膮?shù),采用的尋址方式是間接尋址。9.調(diào)用程序和子程序之間的信息傳送稱為__參數(shù)__,而當(dāng)傳遞的信息很大時(shí)通常通過地址來(lái)進(jìn)展傳遞。10.在LOOPLabel指令構(gòu)成的循環(huán)中,假設(shè)EC*的初值為0,則循環(huán)體將被執(zhí)行__232_次;假設(shè)EC*的初值為—100,則循環(huán)體將被執(zhí)行〔232-100〕次。11.只要堆??臻g允許,子程序嵌套調(diào)用的層次_無(wú)限制_,子程序也可調(diào)用本身,這稱為__遞歸調(diào)用_。12.通常在子程序的開場(chǎng)局部要保護(hù)__入口參數(shù)___存放器,但用做出口參數(shù)的通用存放器則__不能保護(hù)和恢復(fù)__。13.通常在子程序中的參數(shù)分為兩種類型,分別稱為_入口參數(shù)__和__出口參數(shù)__。14.通常在子程序中至少要有一條_返回__指令用于返回主程序,而匯編程序在匯編時(shí)并不檢測(cè)__返回_指令是否存在。15.在主程序中,采用"JMPsubName〞指令可以_轉(zhuǎn)到_子程序subName,但子程序完畢后需返回。五.簡(jiǎn)答題1.是什么特點(diǎn)決定了目標(biāo)地址的相對(duì)尋址方式應(yīng)用最多?當(dāng)同一個(gè)程序被操作系統(tǒng)安排到不同的存儲(chǔ)區(qū)域執(zhí)行時(shí),指令間的位移沒有改變,目標(biāo)地址采用相對(duì)尋址可方便操作系統(tǒng)的靈活調(diào)度。2.將下面C語(yǔ)言程序的代碼片段轉(zhuǎn)換為功能等價(jià)的匯編語(yǔ)言代碼片段,其中sign與sinteger均為雙字變量。 if(sinteger==0) sign==0; elseIf(siteger>0) sign=1; else sign=-1;3.將下面C語(yǔ)言程序的代碼片段轉(zhuǎn)換為功能等價(jià)的匯編語(yǔ)言代碼片段,其中ch1與caps均為字節(jié)變量。 if(ch1>=’a’&&ch1<=’z’) caps==0; if(ch1>=’A’&&ch1<=’Z’) caps==1;4.將下面C語(yǔ)言程序的代碼片段轉(zhuǎn)換為功能等價(jià)的匯編語(yǔ)言代碼片段,其中sum與i變量均為雙字變量。 sum=0; for(i=1;i<=100;i++) if(i%2==0) sum=sum+i;5.在N分支構(gòu)造中,至少要使用N—1條JMP指令,它的作用是什么?用于實(shí)現(xiàn)完畢前一個(gè)分支回到共同的出口作用。不使用CALL指令是否可以實(shí)現(xiàn)子程序的調(diào)用?假設(shè)可以,舉例說(shuō)明。調(diào)用系統(tǒng)效勞子程序一般不使用CALL指令,而是使用中斷調(diào)用指令7.寫出3條以上的可以改變程序執(zhí)行流程的指令,并簡(jiǎn)述其用途。1〕JMP指令;無(wú)任何先決條件下,就能使程序改變執(zhí)行順序;2〕Jcc指令;根據(jù)指定條件,確定程序是否發(fā)生轉(zhuǎn)移;3〕LOOP指令;作為計(jì)數(shù)器,控制循環(huán);4〕CALL指令;在主程序中實(shí)現(xiàn)子程序的調(diào)用。8.在子程序中,可否改變子程序的返回地址?假設(shè)可以,則舉例說(shuō)明。RETN該指令允許返回地址出棧后修改堆棧的指針。9.為什么特別強(qiáng)調(diào)為子程序加上必要的注釋?完整的子程序注釋可方便程序員調(diào)用該子程序,子程序注釋包括子程序名、子程序功能、入口參數(shù)和出口參數(shù)、調(diào)用考前須知和其他說(shuō)明等。六.應(yīng)用題1.能被4整除但不能被100整除,或者年被400整除的年份是閏年。編程寫一個(gè)完整的程序,求出2012年~2099年中的所有閏年年份,并把它們存放在數(shù)組Lyear中。includeio32.inc.datayeardword" prompt byte 'Entertheyear:',0 msg byte 'isleapyear.',0 msg1 byte 'isnotleapyear.',0.code main proc;主程序開場(chǎng) mov ea*,offsetprompt call dispmsg call readsid ;讀入一個(gè)年份 mov year,ea* call dispsid ;輸出年份 *or ed*,ed* mov eb*,400 div eb* cmp ed*,0 jz leap ;ifyearmod400=0thengotoleap mov ea*,year *or ed*,ed* mov eb*,4 div eb* cmp ed*,0 jnz noleap ;ifyearmod4<>0thengotonoleap mov ea*,year *or ed*,ed* mov eb*,100 div eb* cmp ed*,0 jnz leap ;ifyearmod100<>0thengotoleapnoleap: mov ea*,offset msg1 jmp displayleap: mov ea*,offset msg display: call dispmsg call dispcrlf ret ;返回操作系統(tǒng) main endp;主程序完畢endmain;endofassembly2.編程寫一個(gè)完整的程序,求出2~100之間的所有素?cái)?shù),并將它們存入Prime數(shù)組中,素?cái)?shù)的個(gè)數(shù)存入變量Pcounter中。includeio32.inc.data msg byte 'Listofprimenumber',13,10,0 blank byte '',0.codemain proc;主程序開場(chǎng) mov ea*,offsetmsg call dispmsg mov eb*,2iLoop: cmp eb*,100;i循環(huán)入口 ja done mov ec*,eb* shr ec*,1 ;j=i/2jLoop: cmp ec*,2;j循環(huán)入口 print mov ea*,eb* cdq ;*ored*,ed* div ec* ;被除數(shù)送ea*,32位除法 or ed*,ed*;cmped*,0 jz ne*ti ;ifimodj=0thengotone*ti dec ec* jmp jLoopprint: mov ea*,eb* call dispuid ;顯示素?cái)?shù)i的值 mov ea*,offsetblank call dispmsg ;顯示空格ne*ti: inc eb* ;i=i+1 jmp iLoopdone: call dispcrlf ret ;返回操作系統(tǒng)main endp;主程序完畢endmain;endofassembly3.編程寫一個(gè)完整的程序,將數(shù)組aray中的元素按逆序存放,要求程序中附加的變量最少。數(shù)據(jù)段的定義如下: .data araydword12,4,168,122,-33,56,78,99,345,66,-54.編程寫一個(gè)完整的程序,求數(shù)組aray中的最大值與最小值,并將它們分別存入ma*和min單元中。數(shù)據(jù)段的定義如下: .data araydword12,4,-168,122,-33,56,78,99,345,-66,-5 mindword" ma*dword".code main proc;主程序開場(chǎng) mov ea*,offsetmsg call dispmsg ;顯示字符串 mov ec*,lengthofarray;數(shù)組元素的個(gè)數(shù)送ec* *or esi,esi ;esi間址指針 mov a*,array[esi*typearray];注意比例因子!again: cmp a*,array[esi*typearray] jge ne*t ;注意區(qū)分有符號(hào)數(shù)和無(wú)符號(hào)數(shù)! mov a*,array[esi*typearray]ne*t: inc esi ;esi指向下一個(gè)元素 loop again movs* ea*,a* ;注意符號(hào)位的擴(kuò)展! call dispsid call dispcrlf ret ;返回操作系統(tǒng) main endp;主程序完畢endmain;endofassembly〔最大值〕5.編程寫一個(gè)完整的程序統(tǒng)計(jì)msg中的空格的個(gè)數(shù)與小寫字母的個(gè)數(shù),并分別將它們存入space單元與char單元中。數(shù)據(jù)段的定義如下: .data msgbyte'Ilove*UT!',13,10,0 spacedword" chardword"6.編程寫一個(gè)完整的程序,將字符串msg中所有的小寫字母轉(zhuǎn)換為大寫字母。數(shù)據(jù)段的定義如下: .data msgbyte'Ilove*UT!',13,10,07.array是一無(wú)符號(hào)數(shù)數(shù)組,數(shù)據(jù)段的定義如下。要求:編程寫一個(gè)完整的程序求出數(shù)組元素中偶數(shù)的和,并將它存入esum單元中。 .data arraydword12,34,123,78,43,234,79,86,98,20 esumdword"8."回文串〞是一個(gè)正讀和反讀都一樣的字符串,比方"eye〞、"level〞、"noon〞等。請(qǐng)寫一個(gè)程序測(cè)試一字符串是否是"回文〞,是"回文〞則顯示"Y〞,否則顯示"N〞。顯示一個(gè)字符的子程序?yàn)椋篸ispc,入口參數(shù):AL=要顯示個(gè)字符的SACII碼。9.回文是指正讀和反讀都一樣的數(shù)或文本。例如:11、121、12321等,編寫程序,求10到10000之間所有回文數(shù)并輸出。顯示一個(gè)無(wú)符號(hào)數(shù)的子程序?yàn)椋篸ispuid,入口參數(shù):EA*=要顯示無(wú)符號(hào)數(shù)的值。includeio32.inc.data blank byte '',0charbyte" anyKeybyte13,10,'pressanykeytocontinue...',0 ;字符串.codemain proc;主程序開場(chǎng) mov ec*,10 mov eb*,ec* .repeat *or esi,esi mov ea*,ec* .while(ea*!=0) *or ed*,ed*div eb* imul esi,10 add esi,ed* .endw cmp esi,ec* jne ne*tmov ea*,ec* call dispuid call dispcrlfne*t: inc ec* .until(ec*>10000) ret ;返回操作系統(tǒng)main endp;主程序完畢end main;endofassembly10.編程寫一個(gè)名為Prime的子程序,用于測(cè)試一個(gè)整數(shù)是否是素?cái)?shù),主子程序間的參數(shù)傳遞通過堆棧完成。調(diào)用Prime子程序求出2~100之間的所有素?cái)?shù),并將它們存入Parray數(shù)組中,素?cái)?shù)的個(gè)數(shù)存入變量Pcounter中。includeio32.inc.data msg byte 'Listofprimenumber',13,10,0 blank byte '',0.codemain proc;主程序開場(chǎng) mov ea*,offsetmsg call dispmsg mov eb*,2iLoop: cmp eb*,100;i循環(huán)入口 ja done mov ec*,eb* shr ec*,1 ;j=i/2jLoop: cmp ec*,2;j循環(huán)入口 print mov ea*,eb* cdq ;*ored*,ed* div ec* ;被除數(shù)送ea*,32位除法 or ed*,ed*;cmped*,0 jz ne*ti ;ifimodj=0thengotone*ti dec ec* jmp jLoopprint: mov ea*,eb* call dispuid ;顯示素?cái)?shù)i的值 mov ea*,offsetblank call dispmsg ;顯示空格ne*ti: inc eb* ;i=i+1 jmp iLoopdone: call dispcrlf ret ;返回操作系統(tǒng)main endp;主程序完畢endmain;endofassembly11.編程寫一個(gè)名為Gcd的求兩個(gè)數(shù)最大公約數(shù)子程序,主子程序間的參數(shù)傳遞通過堆棧完成。調(diào)用Gcd子程序求出三個(gè)雙自變量:dvar1、dvar2與dvar3的最大公約數(shù)并輸出。顯示一個(gè)無(wú)符號(hào)數(shù)的子程序?yàn)椋篸ispuid,入口參數(shù):EA*=要顯示無(wú)符號(hào)數(shù)的值。12.在一個(gè)長(zhǎng)度的字符串中查找是否包含"BUG〞子字符串。如果存在,顯示"Y〞,否則顯示"N〞。顯示一個(gè)字符的子程序?yàn)椋篸ispc,入口參數(shù):AL=要顯示個(gè)字符的SACII碼。13.一個(gè)字符串的長(zhǎng)度,剔除其中所有的空格字符。請(qǐng)從字符串最后一個(gè)字符開場(chǎng)逐個(gè)向前判斷、并進(jìn)展處理。14.編寫一子程序,將一個(gè)32位二進(jìn)制數(shù)用8位十六進(jìn)制形式在屏幕上顯示出來(lái)。采用堆棧方法傳遞這個(gè)32位二進(jìn)制數(shù),并寫主程序驗(yàn)證它。顯示一個(gè)字符的子程序?yàn)椋篸ispc,入口參數(shù):AL=要顯示個(gè)字符的SACII碼。15.編程寫一個(gè)名為Bubble的冒泡排序子程序,主子程序間的參數(shù)傳遞通過堆棧完成;并寫主程
溫馨提示
- 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年個(gè)人二手車置換服務(wù)合同范本
- 二零二五年度酒店廚房設(shè)備翻新與定期檢修合同范本4篇
- 二零二四年度智能物流系統(tǒng)建設(shè)合同
- 二零二五年度別墅租賃合同:年度別墅租賃及文化活動(dòng)服務(wù)協(xié)議3篇
- 2025版鋁板防雷接地安裝服務(wù)合同4篇
- 2025年農(nóng)產(chǎn)品電商平臺(tái)物流配送合同4篇
- 2025年度門窗安裝工程安全文明施工及標(biāo)準(zhǔn)化建設(shè)合同3篇
- 二零二四年宿舍樓房出租與租賃合同解除條件合同3篇
- 2025年智能家居設(shè)備拍攝制作服務(wù)合同3篇
- 藝術(shù)文化行業(yè)員工入職合同范文
- 專題24 短文填空 選詞填空 2024年中考英語(yǔ)真題分類匯編
- 再生障礙性貧血課件
- 產(chǎn)后抑郁癥的護(hù)理查房
- 2024年江蘇護(hù)理職業(yè)學(xué)院高職單招(英語(yǔ)/數(shù)學(xué)/語(yǔ)文)筆試歷年參考題庫(kù)含答案解析
- 電能質(zhì)量與安全課件
- 醫(yī)藥營(yíng)銷團(tuán)隊(duì)建設(shè)與管理
- 工程項(xiàng)目設(shè)計(jì)工作管理方案及設(shè)計(jì)優(yōu)化措施
- 圍場(chǎng)滿族蒙古族自治縣金匯螢石開采有限公司三義號(hào)螢石礦礦山地質(zhì)環(huán)境保護(hù)與土地復(fù)墾方案
- 小升初幼升小擇校畢業(yè)升學(xué)兒童簡(jiǎn)歷
- 資金支付審批單
- 介入導(dǎo)管室護(hù)士述職報(bào)告(5篇)
評(píng)論
0/150
提交評(píng)論